diff options
author | Jerry Huang <Chang-Ming.Huang@freescale.com> | 2012-01-16 01:13:04 -0500 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2012-02-13 20:38:59 -0500 |
commit | 147c3b338d1029b6624b7dbe7f7bb98f14236f3b (patch) | |
tree | 2728cc3ddb9e85867986120d714200ca9c0af90b /drivers | |
parent | 81e499224a7ef02e1889736ebb6b432da1735ab6 (diff) |
mmc: esdhc: set the timeout to the max value
When accessing the card on some FSL platform boards (e.g p2020, p1010,
mpc8536), the following error is reported with the timeout value calculated:
mmc0: Got data interrupt 0x00000020 even though no data operation was
in progress.
mmc0: Got data interrupt 0x00000020 even though no data operation was
in progress.
So we skip the calculation of timeout and use the max value to fix it.
Signed-off-by: Jerry Huang <Chang-Ming.Huang@freescale.com>
Signed-off-by: Gao Guanhua <B22826@freescale.com>
Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>
Acked-by: Anton Vorontsov <cbouatmailru@gmail.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/host/sdhci-pltfm.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c index 67b9ab075dee..c5c2a48bdd94 100644 --- a/drivers/mmc/host/sdhci-pltfm.c +++ b/drivers/mmc/host/sdhci-pltfm.c | |||
@@ -74,6 +74,11 @@ void sdhci_get_of_property(struct platform_device *pdev) | |||
74 | if (of_device_is_compatible(np, "fsl,p2020-rev1-esdhc")) | 74 | if (of_device_is_compatible(np, "fsl,p2020-rev1-esdhc")) |
75 | host->quirks |= SDHCI_QUIRK_BROKEN_DMA; | 75 | host->quirks |= SDHCI_QUIRK_BROKEN_DMA; |
76 | 76 | ||
77 | if (of_device_is_compatible(np, "fsl,p2020-esdhc") || | ||
78 | of_device_is_compatible(np, "fsl,p1010-esdhc") || | ||
79 | of_device_is_compatible(np, "fsl,mpc8536-esdhc")) | ||
80 | host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL; | ||
81 | |||
77 | clk = of_get_property(np, "clock-frequency", &size); | 82 | clk = of_get_property(np, "clock-frequency", &size); |
78 | if (clk && size == sizeof(*clk) && *clk) | 83 | if (clk && size == sizeof(*clk) && *clk) |
79 | pltfm_host->clock = be32_to_cpup(clk); | 84 | pltfm_host->clock = be32_to_cpup(clk); |