<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/mmc, branch v3.2.38</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/mmc?h=v3.2.38</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/mmc?h=v3.2.38'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-01-03T03:32:54Z</updated>
<entry>
<title>Revert misapplied "mmc: sh-mmcif: avoid oops on spurious interrupts"</title>
<updated>2013-01-03T03:32:54Z</updated>
<author>
<name>Chris Ball</name>
<email>cjb@laptop.org</email>
</author>
<published>2012-12-03T14:17:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d8c2239fcc2c65572d199b010f7903d05a839502'/>
<id>urn:sha1:d8c2239fcc2c65572d199b010f7903d05a839502</id>
<content type='text'>
commit 6984f3c31bb57cb7491dbec1be44b74bd00f4648 upstream.

This reverts commit 8464dd52d3198dd05, which was a misapplied debugging
version of the patch, not the final patch itself.

Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mmc: sdhci-s3c: fix the wrong number of max bus clocks</title>
<updated>2012-10-17T02:49:43Z</updated>
<author>
<name>Jaehoon Chung</name>
<email>jh80.chung@samsung.com</email>
</author>
<published>2012-09-19T06:43:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=664f857bc07bf8e327b0f1271d3490c7af4a5195'/>
<id>urn:sha1:664f857bc07bf8e327b0f1271d3490c7af4a5195</id>
<content type='text'>
commit 5feb54a1ab91a237e247c013b8c4fb100ea347b1 upstream.

We can use up to four bus-clocks; but on module remove, we didn't
disable the fourth bus clock.

Signed-off-by: Jaehoon Chung &lt;jh80.chung@samsung.com&gt;
Signed-off-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mmc: sh-mmcif: avoid oops on spurious interrupts</title>
<updated>2012-10-17T02:49:28Z</updated>
<author>
<name>Guennadi Liakhovetski</name>
<email>g.liakhovetski@gmx.de</email>
</author>
<published>2012-09-18T06:42:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cf06b5a1c78a13ff25d8b2d367770b2936316006'/>
<id>urn:sha1:cf06b5a1c78a13ff25d8b2d367770b2936316006</id>
<content type='text'>
commit 8464dd52d3198dd05cafb005371d76e5339eb842 upstream.

On some systems, e.g., kzm9g, MMCIF interfaces can produce spurious
interrupts without any active request. To prevent the Oops, that results
in such cases, don't dereference the mmc request pointer until we make
sure, that we are indeed processing such a request.

Reported-by: Tetsuyuki Kobayashi &lt;koba@kmckk.co.jp&gt;
Signed-off-by: Guennadi Liakhovetski &lt;g.liakhovetski@gmx.de&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mmc: omap_hsmmc: Pass on the suspend failure to the PM core</title>
<updated>2012-10-17T02:49:27Z</updated>
<author>
<name>Vaibhav Bedia</name>
<email>vaibhav.bedia@ti.com</email>
</author>
<published>2012-09-13T06:31:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b1f9cafbf2313768160d3d2587deba1f099fc5f5'/>
<id>urn:sha1:b1f9cafbf2313768160d3d2587deba1f099fc5f5</id>
<content type='text'>
commit c4c8eeb4df00aabb641553d6fbcd46f458e56cd9 upstream.

In some cases mmc_suspend_host() is not able to claim the
host and proceed with the suspend process. The core returns
-EBUSY to the host controller driver. Unfortunately, the
host controller driver does not pass on this information
to the PM core and hence the system suspend process continues.

	ret = mmc_suspend_host(host-&gt;mmc);
	if (ret) {
		host-&gt;suspended = 0;
		if (host-&gt;pdata-&gt;resume) {
			ret = host-&gt;pdata-&gt;resume(dev, host-&gt;slot_id);

The return status from mmc_suspend_host() is overwritten by return
status from host-&gt;pdata-&gt;resume. So the original return status is lost.

In these cases the MMC core gets to an unexpected state
during resume and multiple issues related to MMC crop up.
1. Host controller driver starts accessing the device registers
before the clocks are enabled which leads to a prefetch abort.
2. A file copy thread which was launched before suspend gets
stuck due to the host not being reclaimed during resume.

To avoid such problems pass on the -EBUSY status to the PM core
from the host controller driver. With this change, MMC core
suspend might still fail but it does not end up making the
system unusable. Suspend gets aborted and the user can try
suspending the system again.

Signed-off-by: Vaibhav Bedia &lt;vaibhav.bedia@ti.com&gt;
Signed-off-by: Hebbar, Gururaja &lt;gururaja.hebbar@ti.com&gt;
Acked-by: Venkatraman S &lt;svenkatr@ti.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
[bwh: Backported to 3.2:
 - Adjust context, indentation
 - s/dev/\&amp;pdev-&gt;dev/]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mmc: Prevent 1.8V switch for SD hosts that don't support UHS modes.</title>
<updated>2012-10-10T02:31:11Z</updated>
<author>
<name>Al Cooper</name>
<email>acooper@gmail.com</email>
</author>
<published>2012-03-16T19:54:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=26fb1ba1baf9fe555ff2918e027cef78ee3f54d0'/>
<id>urn:sha1:26fb1ba1baf9fe555ff2918e027cef78ee3f54d0</id>
<content type='text'>
commit 4188bba0e9e7ba58d231b528df495666f2742b74 upstream.

The driver should not try to switch to 1.8V when the SD 3.0 host
controller does not have any UHS capabilities bits set (SDR50, DDR50
or SDR104). See page 72 of "SD Specifications Part A2 SD Host
Controller Simplified Specification Version 3.00" under
"1.8V Signaling Enable". Instead of setting SDR12 and SDR25 in the host
capabilities data structure for all V3.0 host controllers, only set them
if SDR104, SDR50 or DDR50 is set in the host capabilities register. This
will prevent the switch to 1.8V later.

Signed-off-by: Al Cooper &lt;acooper@gmail.com&gt;
Acked-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Acked-by: Philip Rakity &lt;prakity@marvell.com&gt;
Acked-by: Girish K S &lt;girish.shivananjappa@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mmc: card: Skip secure erase on MoviNAND; causes unrecoverable corruption.</title>
<updated>2012-09-19T14:04:40Z</updated>
<author>
<name>Ian Chen</name>
<email>ian.cy.chen@samsung.com</email>
</author>
<published>2012-08-29T06:05:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3b75588b26cc22a16ff812e38ba7720b3e2d9b38'/>
<id>urn:sha1:3b75588b26cc22a16ff812e38ba7720b3e2d9b38</id>
<content type='text'>
commit 3550ccdb9d8d350e526b809bf3dd92b550a74fe1 upstream.

For several MoviNAND eMMC parts, there are known issues with secure
erase and secure trim.  For these specific MoviNAND devices, we skip
these operations.

Specifically, there is a bug in the eMMC firmware that causes
unrecoverable corruption when the MMC is erased with MMC_CAP_ERASE
enabled.

References:

http://forum.xda-developers.com/showthread.php?t=1644364
https://plus.google.com/111398485184813224730/posts/21pTYfTsCkB#111398485184813224730/posts/21pTYfTsCkB

Signed-off-by: Ian Chen &lt;ian.cy.chen@samsung.com&gt;
Reviewed-by: Namjae Jeon &lt;linkinjeon@gmail.com&gt;
Acked-by: Jaehoon Chung &lt;jh80.chung@samsung.com&gt;
Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mmc: sdhci-esdhc: break out early if clock is 0</title>
<updated>2012-09-19T14:04:39Z</updated>
<author>
<name>Shawn Guo</name>
<email>shawn.guo@linaro.org</email>
</author>
<published>2012-08-22T15:10:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a0d9ef18e6578ebce77372896fa8fb1ba19e1612'/>
<id>urn:sha1:a0d9ef18e6578ebce77372896fa8fb1ba19e1612</id>
<content type='text'>
commit 74f330bceaa7b88d06062e1cac3d519a3dfc041e upstream.

Since commit 30832ab56 ("mmc: sdhci: Always pass clock request value
zero to set_clock host op") was merged, esdhc_set_clock starts hitting
"if (clock == 0)" where ESDHC_SYSTEM_CONTROL has been operated.  This
causes SDHCI card-detection function being broken.  Fix the regression
by moving "if (clock == 0)" above ESDHC_SYSTEM_CONTROL operation.

Signed-off-by: Shawn Guo &lt;shawn.guo@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mmc: mxs-mmc: fix deadlock caused by recursion loop</title>
<updated>2012-09-19T14:04:39Z</updated>
<author>
<name>Lauri Hintsala</name>
<email>lauri.hintsala@bluegiga.com</email>
</author>
<published>2012-07-17T14:16:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3a0ae8e18c188a90c8a54fd26d18d6da5a084892'/>
<id>urn:sha1:3a0ae8e18c188a90c8a54fd26d18d6da5a084892</id>
<content type='text'>
commit fc108d24d3a6da63576a460e122fa1df0cbdea20 upstream.

Release the lock before mmc_signal_sdio_irq is called by
mxs_mmc_enable_sdio_irq.

Backtrace:
[   65.470000] =============================================
[   65.470000] [ INFO: possible recursive locking detected ]
[   65.470000] 3.5.0-rc5 #2 Not tainted
[   65.470000] ---------------------------------------------
[   65.470000] ksdioirqd/mmc0/73 is trying to acquire lock:
[   65.470000]  (&amp;(&amp;host-&gt;lock)-&gt;rlock#2){-.-...}, at: [&lt;bf054120&gt;] mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]
[   65.470000]
[   65.470000] but task is already holding lock:
[   65.470000]  (&amp;(&amp;host-&gt;lock)-&gt;rlock#2){-.-...}, at: [&lt;bf054120&gt;] mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]
[   65.470000]
[   65.470000] other info that might help us debug this:
[   65.470000]  Possible unsafe locking scenario:
[   65.470000]
[   65.470000]        CPU0
[   65.470000]        ----
[   65.470000]   lock(&amp;(&amp;host-&gt;lock)-&gt;rlock#2);
[   65.470000]   lock(&amp;(&amp;host-&gt;lock)-&gt;rlock#2);
[   65.470000]
[   65.470000]  *** DEADLOCK ***
[   65.470000]
[   65.470000]  May be due to missing lock nesting notation
[   65.470000]
[   65.470000] 1 lock held by ksdioirqd/mmc0/73:
[   65.470000]  #0:  (&amp;(&amp;host-&gt;lock)-&gt;rlock#2){-.-...}, at: [&lt;bf054120&gt;] mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]
[   65.470000]
[   65.470000] stack backtrace:
[   65.470000] [&lt;c0014990&gt;] (unwind_backtrace+0x0/0xf4) from [&lt;c005ccb8&gt;] (__lock_acquire+0x14f8/0x1b98)
[   65.470000] [&lt;c005ccb8&gt;] (__lock_acquire+0x14f8/0x1b98) from [&lt;c005d3f8&gt;] (lock_acquire+0xa0/0x108)
[   65.470000] [&lt;c005d3f8&gt;] (lock_acquire+0xa0/0x108) from [&lt;c02f671c&gt;] (_raw_spin_lock_irqsave+0x48/0x5c)
[   65.470000] [&lt;c02f671c&gt;] (_raw_spin_lock_irqsave+0x48/0x5c) from [&lt;bf054120&gt;] (mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc])
[   65.470000] [&lt;bf054120&gt;] (mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]) from [&lt;bf0541d0&gt;] (mxs_mmc_enable_sdio_irq+0xc8/0xdc [mxs_mmc])
[   65.470000] [&lt;bf0541d0&gt;] (mxs_mmc_enable_sdio_irq+0xc8/0xdc [mxs_mmc]) from [&lt;c0219b38&gt;] (sdio_irq_thread+0x1bc/0x274)
[   65.470000] [&lt;c0219b38&gt;] (sdio_irq_thread+0x1bc/0x274) from [&lt;c003c324&gt;] (kthread+0x8c/0x98)
[   65.470000] [&lt;c003c324&gt;] (kthread+0x8c/0x98) from [&lt;c00101ac&gt;] (kernel_thread_exit+0x0/0x8)
[   65.470000] BUG: spinlock lockup suspected on CPU#0, ksdioirqd/mmc0/73
[   65.470000]  lock: 0xc3358724, .magic: dead4ead, .owner: ksdioirqd/mmc0/73, .owner_cpu: 0
[   65.470000] [&lt;c0014990&gt;] (unwind_backtrace+0x0/0xf4) from [&lt;c01b46b0&gt;] (do_raw_spin_lock+0x100/0x144)
[   65.470000] [&lt;c01b46b0&gt;] (do_raw_spin_lock+0x100/0x144) from [&lt;c02f6724&gt;] (_raw_spin_lock_irqsave+0x50/0x5c)
[   65.470000] [&lt;c02f6724&gt;] (_raw_spin_lock_irqsave+0x50/0x5c) from [&lt;bf054120&gt;] (mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc])
[   65.470000] [&lt;bf054120&gt;] (mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]) from [&lt;bf0541d0&gt;] (mxs_mmc_enable_sdio_irq+0xc8/0xdc [mxs_mmc])
[   65.470000] [&lt;bf0541d0&gt;] (mxs_mmc_enable_sdio_irq+0xc8/0xdc [mxs_mmc]) from [&lt;c0219b38&gt;] (sdio_irq_thread+0x1bc/0x274)
[   65.470000] [&lt;c0219b38&gt;] (sdio_irq_thread+0x1bc/0x274) from [&lt;c003c324&gt;] (kthread+0x8c/0x98)
[   65.470000] [&lt;c003c324&gt;] (kthread+0x8c/0x98) from [&lt;c00101ac&gt;] (kernel_thread_exit+0x0/0x8)

Reported-by: Attila Kinali &lt;attila@kinali.ch&gt;
Signed-off-by: Lauri Hintsala &lt;lauri.hintsala@bluegiga.com&gt;
Acked-by: Shawn Guo &lt;shawn.guo@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
[bwh: Backported to 3.2:
 - Adjust context
 - HW_SSP_STATUS is a simple rather than function-like macro]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mmc: mxs-mmc: fix deadlock in SDIO IRQ case</title>
<updated>2012-09-19T14:04:39Z</updated>
<author>
<name>Lauri Hintsala</name>
<email>lauri.hintsala@bluegiga.com</email>
</author>
<published>2012-07-17T14:16:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2fa07abbe88fa0452121d13c44c95595b19ed67d'/>
<id>urn:sha1:2fa07abbe88fa0452121d13c44c95595b19ed67d</id>
<content type='text'>
commit 1af36b2a993dddfa3d6860ec4879c9e8abc9b976 upstream.

Release the lock before mmc_signal_sdio_irq is called by mxs_mmc_irq_handler.

Backtrace:
[   79.660000] =============================================
[   79.660000] [ INFO: possible recursive locking detected ]
[   79.660000] 3.4.0-00009-g3e96082-dirty #11 Not tainted
[   79.660000] ---------------------------------------------
[   79.660000] swapper/0 is trying to acquire lock:
[   79.660000]  (&amp;(&amp;host-&gt;lock)-&gt;rlock#2){-.....}, at: [&lt;c026ea3c&gt;] mxs_mmc_enable_sdio_irq+0x18/0xd4
[   79.660000]
[   79.660000] but task is already holding lock:
[   79.660000]  (&amp;(&amp;host-&gt;lock)-&gt;rlock#2){-.....}, at: [&lt;c026f744&gt;] mxs_mmc_irq_handler+0x1c/0xe8
[   79.660000]
[   79.660000] other info that might help us debug this:
[   79.660000]  Possible unsafe locking scenario:
[   79.660000]
[   79.660000]        CPU0
[   79.660000]        ----
[   79.660000]   lock(&amp;(&amp;host-&gt;lock)-&gt;rlock#2);
[   79.660000]   lock(&amp;(&amp;host-&gt;lock)-&gt;rlock#2);
[   79.660000]
[   79.660000]  *** DEADLOCK ***
[   79.660000]
[   79.660000]  May be due to missing lock nesting notation
[   79.660000]
[   79.660000] 1 lock held by swapper/0:
[   79.660000]  #0:  (&amp;(&amp;host-&gt;lock)-&gt;rlock#2){-.....}, at: [&lt;c026f744&gt;] mxs_mmc_irq_handler+0x1c/0xe8
[   79.660000]
[   79.660000] stack backtrace:
[   79.660000] [&lt;c0014bd0&gt;] (unwind_backtrace+0x0/0xf4) from [&lt;c005f9c0&gt;] (__lock_acquire+0x1948/0x1d48)
[   79.660000] [&lt;c005f9c0&gt;] (__lock_acquire+0x1948/0x1d48) from [&lt;c005fea0&gt;] (lock_acquire+0xe0/0xf8)
[   79.660000] [&lt;c005fea0&gt;] (lock_acquire+0xe0/0xf8) from [&lt;c03a8460&gt;] (_raw_spin_lock_irqsave+0x44/0x58)
[   79.660000] [&lt;c03a8460&gt;] (_raw_spin_lock_irqsave+0x44/0x58) from [&lt;c026ea3c&gt;] (mxs_mmc_enable_sdio_irq+0x18/0xd4)
[   79.660000] [&lt;c026ea3c&gt;] (mxs_mmc_enable_sdio_irq+0x18/0xd4) from [&lt;c026f7fc&gt;] (mxs_mmc_irq_handler+0xd4/0xe8)
[   79.660000] [&lt;c026f7fc&gt;] (mxs_mmc_irq_handler+0xd4/0xe8) from [&lt;c006bdd8&gt;] (handle_irq_event_percpu+0x70/0x254)
[   79.660000] [&lt;c006bdd8&gt;] (handle_irq_event_percpu+0x70/0x254) from [&lt;c006bff8&gt;] (handle_irq_event+0x3c/0x5c)
[   79.660000] [&lt;c006bff8&gt;] (handle_irq_event+0x3c/0x5c) from [&lt;c006e6d0&gt;] (handle_level_irq+0x90/0x110)
[   79.660000] [&lt;c006e6d0&gt;] (handle_level_irq+0x90/0x110) from [&lt;c006b930&gt;] (generic_handle_irq+0x38/0x50)
[   79.660000] [&lt;c006b930&gt;] (generic_handle_irq+0x38/0x50) from [&lt;c00102fc&gt;] (handle_IRQ+0x30/0x84)
[   79.660000] [&lt;c00102fc&gt;] (handle_IRQ+0x30/0x84) from [&lt;c000f058&gt;] (__irq_svc+0x38/0x60)
[   79.660000] [&lt;c000f058&gt;] (__irq_svc+0x38/0x60) from [&lt;c0010520&gt;] (default_idle+0x2c/0x40)
[   79.660000] [&lt;c0010520&gt;] (default_idle+0x2c/0x40) from [&lt;c0010a90&gt;] (cpu_idle+0x64/0xcc)
[   79.660000] [&lt;c0010a90&gt;] (cpu_idle+0x64/0xcc) from [&lt;c04ff858&gt;] (start_kernel+0x244/0x2c8)
[   79.660000] BUG: spinlock lockup on CPU#0, swapper/0
[   79.660000]  lock: c398cb2c, .magic: dead4ead, .owner: swapper/0, .owner_cpu: 0
[   79.660000] [&lt;c0014bd0&gt;] (unwind_backtrace+0x0/0xf4) from [&lt;c01ddb1c&gt;] (do_raw_spin_lock+0xf0/0x144)
[   79.660000] [&lt;c01ddb1c&gt;] (do_raw_spin_lock+0xf0/0x144) from [&lt;c03a8468&gt;] (_raw_spin_lock_irqsave+0x4c/0x58)
[   79.660000] [&lt;c03a8468&gt;] (_raw_spin_lock_irqsave+0x4c/0x58) from [&lt;c026ea3c&gt;] (mxs_mmc_enable_sdio_irq+0x18/0xd4)
[   79.660000] [&lt;c026ea3c&gt;] (mxs_mmc_enable_sdio_irq+0x18/0xd4) from [&lt;c026f7fc&gt;] (mxs_mmc_irq_handler+0xd4/0xe8)
[   79.660000] [&lt;c026f7fc&gt;] (mxs_mmc_irq_handler+0xd4/0xe8) from [&lt;c006bdd8&gt;] (handle_irq_event_percpu+0x70/0x254)
[   79.660000] [&lt;c006bdd8&gt;] (handle_irq_event_percpu+0x70/0x254) from [&lt;c006bff8&gt;] (handle_irq_event+0x3c/0x5c)
[   79.660000] [&lt;c006bff8&gt;] (handle_irq_event+0x3c/0x5c) from [&lt;c006e6d0&gt;] (handle_level_irq+0x90/0x110)
[   79.660000] [&lt;c006e6d0&gt;] (handle_level_irq+0x90/0x110) from [&lt;c006b930&gt;] (generic_handle_irq+0x38/0x50)
[   79.660000] [&lt;c006b930&gt;] (generic_handle_irq+0x38/0x50) from [&lt;c00102fc&gt;] (handle_IRQ+0x30/0x84)
[   79.660000] [&lt;c00102fc&gt;] (handle_IRQ+0x30/0x84) from [&lt;c000f058&gt;] (__irq_svc+0x38/0x60)
[   79.660000] [&lt;c000f058&gt;] (__irq_svc+0x38/0x60) from [&lt;c0010520&gt;] (default_idle+0x2c/0x40)
[   79.660000] [&lt;c0010520&gt;] (default_idle+0x2c/0x40) from [&lt;c0010a90&gt;] (cpu_idle+0x64/0xcc)
[   79.660000] [&lt;c0010a90&gt;] (cpu_idle+0x64/0xcc) from [&lt;c04ff858&gt;] (start_kernel+0x244/0x2c8)

Signed-off-by: Lauri Hintsala &lt;lauri.hintsala@bluegiga.com&gt;
Acked-by: Shawn Guo &lt;shawn.guo@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mmc: sdhci-pci: CaFe has broken card detection</title>
<updated>2012-08-02T13:37:57Z</updated>
<author>
<name>Daniel Drake</name>
<email>dsd@laptop.org</email>
</author>
<published>2012-07-03T22:13:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=99a779227aef0e93a77f7b962b266416f0ead9a6'/>
<id>urn:sha1:99a779227aef0e93a77f7b962b266416f0ead9a6</id>
<content type='text'>
commit 55fc05b7414274f17795cd0e8a3b1546f3649d5e upstream.

At http://dev.laptop.org/ticket/11980 we have determined that the
Marvell CaFe SDHCI controller reports bad card presence during
resume. It reports that no card is present even when it is.
This is a regression -- resume worked back around 2.6.37.

Around 400ms after resuming, a "card inserted" interrupt is
generated, at which point it starts reporting presence.

Work around this hardware oddity by setting the
SDHCI_QUIRK_BROKEN_CARD_DETECTION flag.
Thanks to Chris Ball for helping with diagnosis.

Signed-off-by: Daniel Drake &lt;dsd@laptop.org&gt;
[stable@: please apply to 3.0+]
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
</feed>
