diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2014-09-09 02:44:51 -0400 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2014-09-09 08:10:42 -0400 |
commit | afd8c29d254d7fddbae454f217fa5facefe8f5b0 (patch) | |
tree | 96775485444919d67f47e07da95e187b04bf96a5 /drivers | |
parent | b7574bad80f773dcc4c17950181cde9fb6701501 (diff) |
mmc: use .multi_io_quirk on omap_hsmmc
Now, omap_hsmmc can use .multi_io_quirk callback
instead of MMC_CAP2_NO_MULTI_READ flags.
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/host/omap_hsmmc.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index ece163493a54..df27bb4fc098 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c | |||
@@ -1829,7 +1829,17 @@ static int omap_hsmmc_disable_fclk(struct mmc_host *mmc) | |||
1829 | return 0; | 1829 | return 0; |
1830 | } | 1830 | } |
1831 | 1831 | ||
1832 | static const struct mmc_host_ops omap_hsmmc_ops = { | 1832 | static int omap_hsmmc_multi_io_quirk(struct mmc_card *card, |
1833 | unsigned int direction, int blk_size) | ||
1834 | { | ||
1835 | /* This controller can't do multiblock reads due to hw bugs */ | ||
1836 | if (direction == MMC_DATA_READ) | ||
1837 | return 1; | ||
1838 | |||
1839 | return blk_size; | ||
1840 | } | ||
1841 | |||
1842 | static struct mmc_host_ops omap_hsmmc_ops = { | ||
1833 | .enable = omap_hsmmc_enable_fclk, | 1843 | .enable = omap_hsmmc_enable_fclk, |
1834 | .disable = omap_hsmmc_disable_fclk, | 1844 | .disable = omap_hsmmc_disable_fclk, |
1835 | .post_req = omap_hsmmc_post_req, | 1845 | .post_req = omap_hsmmc_post_req, |
@@ -2101,7 +2111,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev) | |||
2101 | 2111 | ||
2102 | if (host->pdata->controller_flags & OMAP_HSMMC_BROKEN_MULTIBLOCK_READ) { | 2112 | if (host->pdata->controller_flags & OMAP_HSMMC_BROKEN_MULTIBLOCK_READ) { |
2103 | dev_info(&pdev->dev, "multiblock reads disabled due to 35xx erratum 2.1.1.128; MMC read performance may suffer\n"); | 2113 | dev_info(&pdev->dev, "multiblock reads disabled due to 35xx erratum 2.1.1.128; MMC read performance may suffer\n"); |
2104 | mmc->caps2 |= MMC_CAP2_NO_MULTI_READ; | 2114 | omap_hsmmc_ops.multi_io_quirk = omap_hsmmc_multi_io_quirk; |
2105 | } | 2115 | } |
2106 | 2116 | ||
2107 | pm_runtime_enable(host->dev); | 2117 | pm_runtime_enable(host->dev); |