|
@@ -1514,8 +1514,17 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
|
|
ctrl_2 &= ~SDHCI_CTRL_DRV_TYPE_MASK;
|
|
|
if (ios->drv_type == MMC_SET_DRIVER_TYPE_A)
|
|
|
ctrl_2 |= SDHCI_CTRL_DRV_TYPE_A;
|
|
|
+ else if (ios->drv_type == MMC_SET_DRIVER_TYPE_B)
|
|
|
+ ctrl_2 |= SDHCI_CTRL_DRV_TYPE_B;
|
|
|
else if (ios->drv_type == MMC_SET_DRIVER_TYPE_C)
|
|
|
ctrl_2 |= SDHCI_CTRL_DRV_TYPE_C;
|
|
|
+ else if (ios->drv_type == MMC_SET_DRIVER_TYPE_D)
|
|
|
+ ctrl_2 |= SDHCI_CTRL_DRV_TYPE_D;
|
|
|
+ else {
|
|
|
+ pr_warn("%s: invalid driver type, default to "
|
|
|
+ "driver type B\n", mmc_hostname(mmc));
|
|
|
+ ctrl_2 |= SDHCI_CTRL_DRV_TYPE_B;
|
|
|
+ }
|
|
|
|
|
|
sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2);
|
|
|
} else {
|