kernel-fxtec-pro1x/drivers/mmc/core
Trey Ramsay 8fee476b21 mmc: core: Fix some driver hangs when dealing with broken devices
There are infinite loops in the mmc code that can be caused by bad
hardware.  The code will loop forever if the device never comes back
from program mode, R1_STATE_PRG, and it is not ready for data,
R1_READY_FOR_DATA.

A long timeout is added to prevent the code from looping forever.
The timeout will occur if the device never comes back from program
state or the device never becomes ready for data.

It's not clear whether the timeout will do more than log a pr_err()
and then start a fresh hang all over again.  We may need to extend
this patch later to perform some kind of reset of the device (is
that possible?) or rejection of new I/O to the device.

Signed-off-by: Trey Ramsay <tramsay@linux.vnet.ibm.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2012-12-06 13:54:42 -05:00
..
bus.c mmc: core: check PM_SLEEP for mmc_bus_suspend/resume callbacks 2012-04-23 08:11:28 -04:00
bus.h mmc: rename dev_to_mmc_card() to mmc_dev_to_card() 2010-10-23 21:11:12 +08:00
core.c mmc: core: Fix some driver hangs when dealing with broken devices 2012-12-06 13:54:42 -05:00
core.h Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
debugfs.c mmc: core: debugfs: Add signal_voltage to ios dump 2012-12-06 13:54:36 -05:00
host.c workqueue: deprecate system_nrt[_freezable]_wq 2012-08-20 14:51:24 -07:00
host.h mmc: start removing enable / disable API 2012-03-27 12:20:03 -04:00
Kconfig mmc: Aggressive clock gating framework 2011-01-08 22:48:03 -05:00
Makefile mmc: extend and rename cd-gpio helpers to handle more slot GPIO functions 2012-07-10 23:04:04 -04:00
mmc.c mmc: core: Fixup broken suspend and eMMC4.5 power off notify 2012-10-07 17:41:45 -04:00
mmc_ops.c mmc: core: Fix some driver hangs when dealing with broken devices 2012-12-06 13:54:42 -05:00
mmc_ops.h mmc: core: support HPI send command 2011-10-26 16:32:29 -04:00
quirks.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sd.c mmc: core: reset signal voltage on power up 2012-07-22 15:25:53 -04:00
sd.h mmc: sd: add support for driver type selection 2011-05-24 23:53:24 -04:00
sd_ops.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sd_ops.h mmc: add erase, secure erase, trim and secure trim operations 2010-08-12 08:43:30 -07:00
sdio.c mmc: fix comment typos 2012-09-01 09:52:48 -07:00
sdio_bus.c mmc: sdio: Fix PM_SLEEP related build warnings 2012-09-19 16:29:43 +08:00
sdio_bus.h mmc: basic SDIO device model 2007-09-23 19:45:31 +02:00
sdio_cis.c mmc: sdio: Change pr_warning to pr_warn_ratelimited 2012-07-22 15:25:48 -04:00
sdio_cis.h sdio: split up common and function CIS parsing 2007-09-23 20:44:22 +02:00
sdio_io.c mmc: sdio: Fix to support any block size optimally 2012-01-11 23:58:40 -05:00
sdio_irq.c mmc: sdio: avoid spurious calls to interrupt handlers 2012-04-22 11:17:28 -04:00
sdio_ops.c mmc: sdio: Fix to support any block size optimally 2012-01-11 23:58:40 -05:00
sdio_ops.h sdio: recognize io card without powercycle 2010-03-12 15:52:28 -08:00
slot-gpio.c mmc: slot-gpio: Fix missing assignment to ctx->ro_gpio 2012-09-11 10:55:20 -04:00