aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mmc/host/omap_hsmmc.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index b032828c6126..a0c8515cb3b9 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2096,10 +2096,23 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
2096 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | 2096 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
2097 MMC_CAP_WAIT_WHILE_BUSY; 2097 MMC_CAP_WAIT_WHILE_BUSY;
2098 2098
2099 if (mmc_slot(host).wires >= 8) 2099 switch (mmc_slot(host).wires) {
2100 case 8:
2100 mmc->caps |= MMC_CAP_8_BIT_DATA; 2101 mmc->caps |= MMC_CAP_8_BIT_DATA;
2101 else if (mmc_slot(host).wires >= 4) 2102 /* Fall through */
2103 case 4:
2102 mmc->caps |= MMC_CAP_4_BIT_DATA; 2104 mmc->caps |= MMC_CAP_4_BIT_DATA;
2105 break;
2106 case 1:
2107 /* Nothing to crib here */
2108 case 0:
2109 /* Assuming nothing was given by board, Core use's 1-Bit */
2110 break;
2111 default:
2112 /* Completely unexpected.. Core goes with 1-Bit Width */
2113 dev_crit(mmc_dev(host->mmc), "Invalid width %d\n used!"
2114 "using 1 instead\n", mmc_slot(host).wires);
2115 }
2103 2116
2104 if (mmc_slot(host).nonremovable) 2117 if (mmc_slot(host).nonremovable)
2105 mmc->caps |= MMC_CAP_NONREMOVABLE; 2118 mmc->caps |= MMC_CAP_NONREMOVABLE;