} else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) {
                        u32 v = readl(host->ioaddr + SDHCI_ACMD12_ERR);
                        u32 m = readl(host->ioaddr + ESDHC_MIX_CTRL);
-                       u32 tuning_ctrl;
                        if (val & SDHCI_CTRL_TUNED_CLK) {
                                v |= ESDHC_MIX_CTRL_SMPCLK_SEL;
                        } else {
                                v |= ESDHC_MIX_CTRL_EXE_TUNE;
                                m |= ESDHC_MIX_CTRL_FBCLK_SEL;
                                m |= ESDHC_MIX_CTRL_AUTO_TUNE_EN;
-                               tuning_ctrl = readl(host->ioaddr + ESDHC_TUNING_CTRL);
-                               tuning_ctrl |= ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP_DEFAULT;
-                               if (imx_data->boarddata.tuning_start_tap) {
-                                       tuning_ctrl &= ~ESDHC_TUNING_START_TAP_MASK;
-                                       tuning_ctrl |= imx_data->boarddata.tuning_start_tap;
-                               }
-
-                               if (imx_data->boarddata.tuning_step) {
-                                       tuning_ctrl &= ~ESDHC_TUNING_STEP_MASK;
-                                       tuning_ctrl |= imx_data->boarddata.tuning_step << ESDHC_TUNING_STEP_SHIFT;
-                               }
-                               writel(tuning_ctrl, host->ioaddr + ESDHC_TUNING_CTRL);
                        } else {
                                v &= ~ESDHC_MIX_CTRL_EXE_TUNE;
                        }
 {
        struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
        struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
+       int tmp;
 
        if (esdhc_is_usdhc(imx_data)) {
                /*
 
                /* disable DLL_CTRL delay line settings */
                writel(0x0, host->ioaddr + ESDHC_DLL_CTRL);
+
+               if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) {
+                       tmp = readl(host->ioaddr + ESDHC_TUNING_CTRL);
+                       tmp |= ESDHC_STD_TUNING_EN |
+                               ESDHC_TUNING_START_TAP_DEFAULT;
+                       if (imx_data->boarddata.tuning_start_tap) {
+                               tmp &= ~ESDHC_TUNING_START_TAP_MASK;
+                               tmp |= imx_data->boarddata.tuning_start_tap;
+                       }
+
+                       if (imx_data->boarddata.tuning_step) {
+                               tmp &= ~ESDHC_TUNING_STEP_MASK;
+                               tmp |= imx_data->boarddata.tuning_step
+                                       << ESDHC_TUNING_STEP_SHIFT;
+                       }
+                       writel(tmp, host->ioaddr + ESDHC_TUNING_CTRL);
+               }
        }
 }
 
                sdhci_esdhc_ops.platform_execute_tuning =
                                        esdhc_executing_tuning;
 
-       if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING)
-               writel(readl(host->ioaddr + ESDHC_TUNING_CTRL) |
-                       ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP_DEFAULT,
-                       host->ioaddr + ESDHC_TUNING_CTRL);
-
        if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536)
                host->quirks |= SDHCI_QUIRK_BROKEN_ADMA;