|
@@ -915,10 +915,15 @@ static void sdhci_set_transfer_mode(struct sdhci_host *host,
|
|
struct mmc_data *data = cmd->data;
|
|
struct mmc_data *data = cmd->data;
|
|
|
|
|
|
if (data == NULL) {
|
|
if (data == NULL) {
|
|
|
|
+ if (host->quirks2 &
|
|
|
|
+ SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD) {
|
|
|
|
+ sdhci_writew(host, 0x0, SDHCI_TRANSFER_MODE);
|
|
|
|
+ } else {
|
|
/* clear Auto CMD settings for no data CMDs */
|
|
/* clear Auto CMD settings for no data CMDs */
|
|
- mode = sdhci_readw(host, SDHCI_TRANSFER_MODE);
|
|
|
|
- sdhci_writew(host, mode & ~(SDHCI_TRNS_AUTO_CMD12 |
|
|
|
|
|
|
+ mode = sdhci_readw(host, SDHCI_TRANSFER_MODE);
|
|
|
|
+ sdhci_writew(host, mode & ~(SDHCI_TRNS_AUTO_CMD12 |
|
|
SDHCI_TRNS_AUTO_CMD23), SDHCI_TRANSFER_MODE);
|
|
SDHCI_TRNS_AUTO_CMD23), SDHCI_TRANSFER_MODE);
|
|
|
|
+ }
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|