Quoting Loic Poulain (2018-11-30 00:15:55) > @@ -1525,6 +1554,19 @@ static int __sdhci_msm_check_write(struct sdhci_host *host, u16 val, int reg) > case SDHCI_POWER_CONTROL: > req_type = !val ? REQ_BUS_OFF : REQ_BUS_ON; > break; > + case SDHCI_TRANSFER_MODE: > + msm_host->transfer_mode = val; > + break; > + case SDHCI_COMMAND: > + if (!msm_host->use_cdr) > + break; > + if ((msm_host->transfer_mode & SDHCI_TRNS_READ) && > + (SDHCI_GET_CMD(val) != MMC_SEND_TUNING_BLOCK_HS200) && > + (SDHCI_GET_CMD(val) != MMC_SEND_TUNING_BLOCK)) Nitpick: Why so many parenthesis here for these last two checks? > + sdhci_msm_set_cdr(host, true); > + else > + sdhci_msm_set_cdr(host, false); > + break; > }