sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DT2FF,
                       priv->scc_tappos_hs400);
 
+       /* Gen3 can't do automatic tap correction with HS400, so disable it */
+       if (sd_ctrl_read16(host, CTL_VERSION) == SDHI_VER_GEN3_SDMMC)
+               sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL,
+                              ~SH_MOBILE_SDHI_SCC_RVSCNTL_RVSEN &
+                              sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL));
+
        sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TMPPORT2,
                       (SH_MOBILE_SDHI_SCC_TMPPORT2_HS400EN |
                        SH_MOBILE_SDHI_SCC_TMPPORT2_HS400OSEL) |