<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/mmc, branch v3.4.40</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.4.40</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.4.40'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2013-02-28T14:59:05Z</updated>
<entry>
<title>mmc: sdhci-esdhc-imx: fix host version read</title>
<updated>2013-02-28T14:59:05Z</updated>
<author>
<name>Shawn Guo</name>
<email>shawn.guo@linaro.org</email>
</author>
<published>2013-01-15T15:30:27Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=6a924a76039689fd260ee311b85fb2202bcd4910'/>
<id>urn:sha1:6a924a76039689fd260ee311b85fb2202bcd4910</id>
<content type='text'>
commit ef4d0888bb7e1b963880f086575081c3d39cad2d upstream.

When commit 95a2482 (mmc: sdhci-esdhc-imx: add basic imx6q usdhc
support) works around host version issue on imx6q, it gets the
register address fixup "reg ^= 2" lost for imx25/35/51/53 esdhc.
Thus, the controller version on these SoCs is wrongly identified
as v1 while it's actually v2.

Add the address fixup back and take a different approach to correct
imx6q host version, so that the host version read gets back to work
for all SoCs.

Signed-off-by: Shawn Guo &lt;shawn.guo@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: sh-mmcif: avoid oops on spurious interrupts (second try)</title>
<updated>2012-12-17T18:37:43Z</updated>
<author>
<name>Guennadi Liakhovetski</name>
<email>g.liakhovetski@gmx.de</email>
</author>
<published>2012-08-22T06:49:47Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=47dc7057a276a3394c94803dd66b395664ebc8f0'/>
<id>urn:sha1:47dc7057a276a3394c94803dd66b395664ebc8f0</id>
<content type='text'>
commit 91ab252ac5a5c3461dd6910797611e9172626aed 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;
Tested-by: Tetsuyuki Kobayashi &lt;koba@kmckk.co.jp&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Revert misapplied "mmc: sh-mmcif: avoid oops on spurious interrupts"</title>
<updated>2012-12-17T18:37:43Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e07aa3cc22bef722b29b247287d8e47d4c6c2b22'/>
<id>urn:sha1:e07aa3cc22bef722b29b247287d8e47d4c6c2b22</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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: sdhci-s3c: fix the wrong number of max bus clocks</title>
<updated>2012-12-03T19:47:23Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=fc6058e1a4cc1f76aab5c580322e109cf448ec9b'/>
<id>urn:sha1:fc6058e1a4cc1f76aab5c580322e109cf448ec9b</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;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: sdhci: fix NULL dereference in sdhci_request() tuning</title>
<updated>2012-11-17T21:16:33Z</updated>
<author>
<name>Chris Ball</name>
<email>cjb@laptop.org</email>
</author>
<published>2012-11-05T19:29:49Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=f1e729c67400d3a766befa6f739f971021788878'/>
<id>urn:sha1:f1e729c67400d3a766befa6f739f971021788878</id>
<content type='text'>
commit 14efd957209461bbdf285bf0d67e931955d04a4c upstream.

Commit 473b095a72a9 ("mmc: sdhci: fix incorrect command used in tuning")
introduced a NULL dereference at resume-time if an SD 3.0 host controller
raises the SDHCI_NEEDS_TUNING flag while no card is inserted.  Seen on an
OLPC XO-4 with sdhci-pxav3, but presumably affects other controllers too.

Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: sh-mmcif: avoid oops on spurious interrupts</title>
<updated>2012-10-12T20:38:59Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=719740d5deffe22dfdb2bbb06717c1763ebf178e'/>
<id>urn:sha1:719740d5deffe22dfdb2bbb06717c1763ebf178e</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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: omap_hsmmc: Pass on the suspend failure to the PM core</title>
<updated>2012-10-12T20:38:59Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3883e2826411675a47cab6e8e8f49288c4452e34'/>
<id>urn:sha1:3883e2826411675a47cab6e8e8f49288c4452e34</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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: card: Skip secure erase on MoviNAND; causes unrecoverable corruption.</title>
<updated>2012-10-02T17:29:54Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d409354d1b8a1e47b8f29887179949ec951ffe83'/>
<id>urn:sha1:d409354d1b8a1e47b8f29887179949ec951ffe83</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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: sdhci-esdhc: break out early if clock is 0</title>
<updated>2012-10-02T17:29:54Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e66a381518f9ebf98cdc583d20ae706aa5d1dc28'/>
<id>urn:sha1:e66a381518f9ebf98cdc583d20ae706aa5d1dc28</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: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: mxs-mmc: fix deadlock in SDIO IRQ case</title>
<updated>2012-10-02T17:29:54Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3a4781e12d0e6264c76bfd110783321450138169'/>
<id>urn:sha1:3a4781e12d0e6264c76bfd110783321450138169</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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
