diff options
author | Alexander Shiyan <shc_work@mail.ru> | 2013-04-06 02:13:31 -0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2013-04-12 14:12:50 -0400 |
commit | abd4190f0c820b7f118450b52bb95c0be3a441bd (patch) | |
tree | 53393928a9c3ad160a521f054739a9f28009bc65 /drivers/mmc | |
parent | 0d3e3350d5871c53464be4c92d57198744247005 (diff) |
mmc: mxcmmc: Fix bug when card is present during boot
This patch fixes bug when card is present during boot.
Bug was introduced due commit "mmc: mxcmmc: fix bug that may block a
data transfer forever". When a card is present "mxcmci_setup_data"
function is executed, but the timer is not initialized.
...
i.MX SDHC driver
mmc0: SD Status: Invalid Allocation Unit size.
mmc0: new SD card at address b368
mmcblk0: mmc0:b368 SDC 1.91 GiB
------------[ cut here ]------------
kernel BUG at kernel/timer.c:729!
Internal error: Oops - BUG: 0 [#1] PREEMPT ARM
CPU: 0 Not tainted (3.9.0-rc5-next-20130404 #2)
PC is at mod_timer+0x168/0x198
LR is at mxcmci_request+0x21c/0x328
...
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/host/mxcmmc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mmc/host/mxcmmc.c b/drivers/mmc/host/mxcmmc.c index a72936eea6fa..28e527ebde75 100644 --- a/drivers/mmc/host/mxcmmc.c +++ b/drivers/mmc/host/mxcmmc.c | |||
@@ -1052,12 +1052,12 @@ static int mxcmci_probe(struct platform_device *pdev) | |||
1052 | goto out_free_irq; | 1052 | goto out_free_irq; |
1053 | } | 1053 | } |
1054 | 1054 | ||
1055 | mmc_add_host(mmc); | ||
1056 | |||
1057 | init_timer(&host->watchdog); | 1055 | init_timer(&host->watchdog); |
1058 | host->watchdog.function = &mxcmci_watchdog; | 1056 | host->watchdog.function = &mxcmci_watchdog; |
1059 | host->watchdog.data = (unsigned long)mmc; | 1057 | host->watchdog.data = (unsigned long)mmc; |
1060 | 1058 | ||
1059 | mmc_add_host(mmc); | ||
1060 | |||
1061 | return 0; | 1061 | return 0; |
1062 | 1062 | ||
1063 | out_free_irq: | 1063 | out_free_irq: |