<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/mmc/host, branch v3.0.86</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/mmc/host?h=v3.0.86</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/mmc/host?h=v3.0.86'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-12-03T20:59:16Z</updated>
<entry>
<title>mmc: sdhci-s3c: fix the wrong number of max bus clocks</title>
<updated>2012-12-03T20:59:16Z</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=49a66fd8444253f71635a39a2be0cc70f1565d79'/>
<id>urn:sha1:49a66fd8444253f71635a39a2be0cc70f1565d79</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: Prevent 1.8V switch for SD hosts that don't support UHS modes.</title>
<updated>2012-10-02T16:47:54Z</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=cfa379de3ffabed3dd9715144804535484e51f4e'/>
<id>urn:sha1:cfa379de3ffabed3dd9715144804535484e51f4e</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: 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-02T16:47:24Z</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=0afe8813641fda8e31a24add2f753488a8dd7c8a'/>
<id>urn:sha1:0afe8813641fda8e31a24add2f753488a8dd7c8a</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-02T16:47:24Z</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=2df2bfdbb4136e7051d12787dd2966cffc2a0eaa'/>
<id>urn:sha1:2df2bfdbb4136e7051d12787dd2966cffc2a0eaa</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>
<entry>
<title>mmc: sdhci-pci: CaFe has broken card detection</title>
<updated>2012-08-09T15:27:33Z</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=4067ad7b53cd5ba2699286620a2c645bb56542fa'/>
<id>urn:sha1:4067ad7b53cd5ba2699286620a2c645bb56542fa</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;
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: unbreak sdhci-esdhc-imx on i.MX25</title>
<updated>2012-05-07T15:56:35Z</updated>
<author>
<name>Eric Bénard</name>
<email>eric@eukrea.com</email>
</author>
<published>2012-04-27T22:31:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dbe7f938e41ed62242b4dfc1fc77f918646fad5c'/>
<id>urn:sha1:dbe7f938e41ed62242b4dfc1fc77f918646fad5c</id>
<content type='text'>
commit b89152824f993a9572b47eb31f4579feadeac34c upstream.

This was broken by me in 37865fe91582582a6f6c00652f6a2b1ff71f8a78
("mmc: sdhci-esdhc-imx: fix timeout on i.MX's sdhci") where more
extensive tests would have shown that read or write of data to the
card were failing (even if the partition table was correctly read).

Signed-off-by: Eric Bénard &lt;eric@eukrea.com&gt;
Acked-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>mmc: atmel-mci: correct data timeout computation</title>
<updated>2012-04-13T15:14:07Z</updated>
<author>
<name>Ludovic Desroches</name>
<email>ludovic.desroches@atmel.com</email>
</author>
<published>2012-03-28T10:28:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=52a77de9f23e3b3d88354ee59a8923d566935abd'/>
<id>urn:sha1:52a77de9f23e3b3d88354ee59a8923d566935abd</id>
<content type='text'>
commit 66292ad92c6d3f2f1c137a1c826b331ca8595dfd upstream.

The HSMCI operates at a rate of up to Master Clock divided by two.
Moreover previous calculation can cause overflows and so wrong
timeouts.

Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@atmel.com&gt;
Acked-by: Nicolas Ferre &lt;nicolas.ferre@atmel.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: sdhci-esdhc-imx: fix for mmc cards on i.MX5</title>
<updated>2012-03-12T17:32:55Z</updated>
<author>
<name>Sascha Hauer</name>
<email>s.hauer@pengutronix.de</email>
</author>
<published>2012-02-17T10:51:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d5d292475ce5ed9d9cbc3630e0a5fbed8155bb3a'/>
<id>urn:sha1:d5d292475ce5ed9d9cbc3630e0a5fbed8155bb3a</id>
<content type='text'>
commit 5b6b0ad6e572b32a641116aaa5f897ffebe31e44 upstream.

On i.MX53 we have to write a special SDHCI_CMD_ABORTCMD to the
SDHCI_TRANSFER_MODE register during a MMC_STOP_TRANSMISSION
command. This works for SD cards. However, with MMC cards
the MMC_SET_BLOCK_COUNT command is used instead, but this
needs the same handling. Fix MMC cards by testing for the
MMC_SET_BLOCK_COUNT command aswell. Tested on a custom i.MX53
board with a Transcend MMC+ card and eMMC.

The kernel started used MMC_SET_BLOCK_COUNT in 3.0, so this
is a regression for these boards introduced in 3.0; it should
go to 3.0/3.1/3.2-stable.

Signed-off-by: Sascha Hauer &lt;s.hauer@pengutronix.de&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>
<entry>
<title>mmc: sd: Fix SDR12 timing regression</title>
<updated>2012-01-26T01:24:46Z</updated>
<author>
<name>Alexander Elbs</name>
<email>alex@segv.de</email>
</author>
<published>2012-01-04T04:26:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b1830247c9927d7d2ca17c9f84908fc130051792'/>
<id>urn:sha1:b1830247c9927d7d2ca17c9f84908fc130051792</id>
<content type='text'>
commit dd8df17fe83483d7ea06ff229895e35a42071599 upstream.

This patch fixes a failure to recognize SD cards reported on a Dell
Vostro with O2 Micro SD card reader.  Patch 49c468f ("mmc: sd: add
support for uhs bus speed mode selection") caused the problem, by
setting the SDHCI_CTRL_HISPD flag even for legacy timings.

Signed-off-by: Alexander Elbs &lt;alex@segv.de&gt;
Acked-by: Philip Rakity &lt;prakity@marvell.com&gt;
Acked-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mmc: sdhci: Fix tuning timer incorrect setting when suspending host</title>
<updated>2012-01-26T01:24:46Z</updated>
<author>
<name>Aaron Lu</name>
<email>aaron.lu@amd.com</email>
</author>
<published>2011-12-28T03:11:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=62a0e438f7275e845bfbcccd6e641e07d4b89182'/>
<id>urn:sha1:62a0e438f7275e845bfbcccd6e641e07d4b89182</id>
<content type='text'>
commit c6ced0db08010ed75df221a2946c5228454b38d5 upstream.

When suspending host, the tuning timer shoule be deactivated.
And the HOST_NEEDS_TUNING flag should be set after tuning timer is
deactivated.

Signed-off-by: Philip Rakity &lt;prakity@marvell.com&gt;
Signed-off-by: Aaron Lu &lt;aaron.lu@amd.com&gt;
Acked-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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