<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/drivers/mmc/host, branch linux-2.6.31.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=linux-2.6.31.y</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=linux-2.6.31.y'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/'/>
<updated>2009-12-08T18:22:19+00:00</updated>
<entry>
<title>pxamci: call mmc_remove_host() before freeing resources</title>
<updated>2009-12-08T18:22:19+00:00</updated>
<author>
<name>Daniel Mack</name>
<email>daniel@caiaq.de</email>
</author>
<published>2009-12-01T17:17:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9530e63015d1627cb46a485f7e6b8ba83ec4dca7'/>
<id>urn:sha1:9530e63015d1627cb46a485f7e6b8ba83ec4dca7</id>
<content type='text'>
commit 5d6b1edf8ccc4b7e4e77dff3fc80882833d6186e upstream.

mmc_remove_host() will cause the mmc core to switch off the bus power by
eventually calling pxamci_set_ios(). This function uses the regulator or
the GPIO which have been freed already.

This causes the following Oops on module unload.

[   49.519649] Unable to handle kernel paging request at virtual address 30303a70
[   49.526878] pgd = c7084000
[   49.529563] [30303a70] *pgd=00000000
[   49.533136] Internal error: Oops: 5 [#1]
[   49.537025] last sysfs file: /sys/devices/platform/pxa27x-ohci/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/scsi_level
[   49.547471] Modules linked in: pxamci(-) eeti_ts
[   49.552061] CPU: 0    Not tainted  (2.6.32-rc8 #322)
[   49.557001] PC is at regulator_is_enabled+0x3c/0xbc
[   49.561846] LR is at regulator_is_enabled+0x30/0xbc
[   49.566691] pc : [&lt;c01a2448&gt;]    lr : [&lt;c01a243c&gt;]    psr: 60000013
[   49.566702] sp : c7083e70  ip : 30303a30  fp : 00000000
[   49.578093] r10: c705e200  r9 : c7082000  r8 : c705e2e0
[   49.583280] r7 : c7061340  r6 : c7061340  r5 : c7083e70  r4 : 00000000
[   49.589759] r3 : c04dc434  r2 : c04dc434  r1 : c03eecea  r0 : 00000047
[   49.596241] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   49.603329] Control: 0000397f  Table: a7084018  DAC: 00000015
[   49.609031] Process rmmod (pid: 1101, stack limit = 0xc7082278)
[   49.614908] Stack: (0xc7083e70 to 0xc7084000)
[   49.619238] 3e60:                                     c7082000 c703c4f8 c705ea00 c04f4074
[   49.627366] 3e80: 00000000 c705e3a0 ffffffff c0247ddc c70361a0 00000000 c705e3a0 ffffffff
[   49.635499] 3ea0: c705e200 bf006400 c78c4f00 c705e200 c705e3a0 ffffffff c705e200 ffffffff
[   49.643633] 3ec0: c04d8ac8 c02476d0 ffffffff c0247c60 c705e200 c0248678 c705e200 c0249064
[   49.651765] 3ee0: ffffffff bf006204 c04d8ad0 c04d8ad0 c04d8ac8 bf007490 00000880 c00440c4
[   49.659898] 3f00: 0000b748 c01c5708 bf007490 c01c44c8 c04d8ac8 c04d8afc bf007490 c01c4570
[   49.668031] 3f20: bf007490 bf00750c c04f4258 c01c37a4 00000000 bf00750c c7083f44 c007b014
[   49.676162] 3f40: 4000d000 6d617870 08006963 00000001 00000000 c7085000 00000001 00000000
[   49.684287] 3f60: 4000d000 c7083f8c 00000001 bea01a54 00005401 c7ab1400 c00440c4 00082000
[   49.692420] 3f80: bf00750c 00000880 c7083f8c 00000000 4000cfa8 00000000 00000880 bea01cc8
[   49.700552] 3fa0: 00000081 c0043f40 00000000 00000880 bea01cc8 00000880 00000006 00000000
[   49.708677] 3fc0: 00000000 00000880 bea01cc8 00000081 00000097 0000cca4 0000b748 00000000
[   49.716802] 3fe0: 4001a4f0 bea01cc0 00018bf4 4001a4fc 20000010 bea01cc8 a063e021 a063e421
[   49.724958] [&lt;c01a2448&gt;] (regulator_is_enabled+0x3c/0xbc) from [&lt;c0247ddc&gt;] (mmc_regulator_set_ocr+0x14/0xd8)
[   49.734836] [&lt;c0247ddc&gt;] (mmc_regulator_set_ocr+0x14/0xd8) from [&lt;bf006400&gt;] (pxamci_set_ios+0xd8/0x17c [pxamci])
[   49.745044] [&lt;bf006400&gt;] (pxamci_set_ios+0xd8/0x17c [pxamci]) from [&lt;c02476d0&gt;] (mmc_power_off+0x50/0x58)
[   49.754555] [&lt;c02476d0&gt;] (mmc_power_off+0x50/0x58) from [&lt;c0247c60&gt;] (mmc_detach_bus+0x68/0xc4)
[   49.763207] [&lt;c0247c60&gt;] (mmc_detach_bus+0x68/0xc4) from [&lt;c0248678&gt;] (mmc_stop_host+0xd4/0x1bc)
[   49.771944] [&lt;c0248678&gt;] (mmc_stop_host+0xd4/0x1bc) from [&lt;c0249064&gt;] (mmc_remove_host+0xc/0x20)
[   49.780681] [&lt;c0249064&gt;] (mmc_remove_host+0xc/0x20) from [&lt;bf006204&gt;] (pxamci_remove+0xc8/0x174 [pxamci])
[   49.790211] [&lt;bf006204&gt;] (pxamci_remove+0xc8/0x174 [pxamci]) from [&lt;c01c5708&gt;] (platform_drv_remove+0x1c/0x24)
[   49.800164] [&lt;c01c5708&gt;] (platform_drv_remove+0x1c/0x24) from [&lt;c01c44c8&gt;] (__device_release_driver+0x7c/0xc4)
[   49.810110] [&lt;c01c44c8&gt;] (__device_release_driver+0x7c/0xc4) from [&lt;c01c4570&gt;] (driver_detach+0x60/0x8c)
[   49.819535] [&lt;c01c4570&gt;] (driver_detach+0x60/0x8c) from [&lt;c01c37a4&gt;] (bus_remove_driver+0x90/0xcc)
[   49.828452] [&lt;c01c37a4&gt;] (bus_remove_driver+0x90/0xcc) from [&lt;c007b014&gt;] (sys_delete_module+0x1d8/0x254)
[   49.837891] [&lt;c007b014&gt;] (sys_delete_module+0x1d8/0x254) from [&lt;c0043f40&gt;] (ret_fast_syscall+0x0/0x28)
[   49.847145] Code: eb06c53a e596c030 e1a0500d e59f106c (e59c0040)
[   49.853566] ---[ end trace b5fa66a00cea142f ]---

Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Reported-by: Sven Neumann &lt;s.neumann@raumfeld.com&gt;
Cc: Pierre Ossman &lt;pierre@ossman.eu&gt;
Cc: linux-mmc@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Eric Miao &lt;eric.y.miao@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>drivers/mmc: correct error-handling code</title>
<updated>2009-08-07T17:39:56+00:00</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2009-08-06T22:07:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2198a64a7487aba036f71998ade8a6528070d32c'/>
<id>urn:sha1:2198a64a7487aba036f71998ade8a6528070d32c</id>
<content type='text'>
sdhci_alloc_host returns an ERR_PTR value in an error case instead of NULL.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@match exists@
expression x, E;
statement S1, S2;
@@

x = sdhci_alloc_host(...)
... when != x = E
(
*  if (x == NULL || ...) S1 else S2
|
*  if (x == NULL &amp;&amp; ...) S1 else S2
)
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Acked-by: Anton Vorontsov &lt;avorontsov@ru.mvista.com&gt;
Cc: Matt Fleming &lt;matt@console-pimps.org&gt;
Cc: Ian Molton &lt;ian@mnementh.co.uk&gt;
Cc: "Roberto A. Foglietta" &lt;roberto.foglietta@gmail.com&gt;
Cc: Philip Langdale &lt;philipl@overt.org&gt;
Cc: Pierre Ossman &lt;pierre@ossman.eu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>imxmmc: Remove unnecessary semicolons</title>
<updated>2009-07-31T10:28:46+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2009-06-28T16:26:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a9239d750d9991f2feee78fc5669a4613abc1adb'/>
<id>urn:sha1:a9239d750d9991f2feee78fc5669a4613abc1adb</id>
<content type='text'>
Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Acked-by: Pavel Pisa &lt;pisa@cmp.felk.cvut.cz&gt;
Signed-off-by: Pierre Ossman &lt;pierre@ossman.eu&gt;
</content>
</entry>
<entry>
<title>cb710: use SG_MITER_TO_SG/SG_MITER_FROM_SG</title>
<updated>2009-07-31T10:28:46+00:00</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
<email>sebastian@breakpoint.cc</email>
</author>
<published>2009-06-22T07:18:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=4b2a108cd0d34880fe9d932258ca5b2ccebcd05e'/>
<id>urn:sha1:4b2a108cd0d34880fe9d932258ca5b2ccebcd05e</id>
<content type='text'>
the code allready uses flush_kernel_dcache_page(). This patch updates the
driver to the recent sg API changes which require that either SG_MITER_TO_SG
or SG_MITER_FROM_SG is set. SG_MITER_TO_SG calls flush_kernel_dcache_page()
in sg_mitter_stop()

Signed-off-by: Sebastian Andrzej Siewior &lt;sebastian@breakpoint.cc&gt;
Acked-by: Michał Mirosław &lt;mirq-linux@rere.qmqm.pl&gt;
Signed-off-by: Pierre Ossman &lt;pierre@ossman.eu&gt;
</content>
</entry>
<entry>
<title>sdhci: use SG_MITER_TO_SG/SG_MITER_FROM_SG</title>
<updated>2009-07-31T10:28:45+00:00</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
<email>sebastian@breakpoint.cc</email>
</author>
<published>2009-06-18T07:33:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=da60a91d012bcb10bc5bcd86d585c4281742832c'/>
<id>urn:sha1:da60a91d012bcb10bc5bcd86d585c4281742832c</id>
<content type='text'>
so the page will be flushed on unmap on ARCH which need it.

Signed-off-by: Sebastian Andrzej Siewior &lt;sebastian@breakpoint.cc&gt;
Signed-off-by: Pierre Ossman &lt;pierre@ossman.eu&gt;
</content>
</entry>
<entry>
<title>sdhci: get rid of "frequency too high" flood when using eSDHC</title>
<updated>2009-07-30T02:10:36+00:00</updated>
<author>
<name>Anton Vorontsov</name>
<email>avorontsov@ru.mvista.com</email>
</author>
<published>2009-07-29T22:04:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a9e58f25734e153b8c6516d904e2398fb8b0b23d'/>
<id>urn:sha1:a9e58f25734e153b8c6516d904e2398fb8b0b23d</id>
<content type='text'>
Since commit 8dfd0374be84793360db7fff2e635d2cd3bbcb21 ("MMC core: limit
minimum initialization frequency to 400kHz") MMC core checks for minimum
frequency, and that causes following messages flood when using eSDHC
controllers:

  ...
  mmc0: Minimum clock frequency too high for identification mode
  mmc0: Minimum clock frequency too high for identification mode
  ...

The warnings are legitimate, since if we'd use 133 MHz clocks for standard
SDHCI controllers, we'd not able to scale frequency down to 400 kHz.

But eSDHC controllers have a non-standard SD clock management, so we can
divide clock by 256 * 16, not just 256.

This patch introduces get_min_clock() callback for sdhci core and
implements it for sdhci-of driver, and thus fixes the issue.

Signed-off-by: Anton Vorontsov &lt;avorontsov@ru.mvista.com&gt;
Cc: Matt Fleming &lt;matt@console-pimps.org&gt;
Cc: Ian Molton &lt;ian@mnementh.co.uk&gt;
Cc: "Roberto A. Foglietta" &lt;roberto.foglietta@gmail.com&gt;
Cc: Pierre Ossman &lt;drzeus@drzeus.cx&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mvsdio: fix handling of partial word at the end of PIO transfer</title>
<updated>2009-07-20T23:46:34+00:00</updated>
<author>
<name>Nicolas Pitre</name>
<email>nico@cam.org</email>
</author>
<published>2009-07-19T00:34:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=6cdbf734493d6e8f5afc6f539b82897772809d43'/>
<id>urn:sha1:6cdbf734493d6e8f5afc6f539b82897772809d43</id>
<content type='text'>
Standard data flow for MMC/SD/SDIO cards requires that the mvsdio
controller be set for big endian operation.  This is causing problems
with buffers which length is not a multiple of 4 bytes as the last
partial word doesn't get shifted all the way and stored properly in
memory.  Let's compensate for this.

Signed-off-by: Nicolas Pitre &lt;nico@marvell.com&gt;
CC: stable@kernel.org
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6</title>
<updated>2009-07-09T15:07:22+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk@dyn-67.arm.linux.org.uk</email>
</author>
<published>2009-07-09T15:07:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=4e66a0f536ad449a71de75bc81f4a830ef38d538'/>
<id>urn:sha1:4e66a0f536ad449a71de75bc81f4a830ef38d538</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pxamci: correct DMA flow control</title>
<updated>2009-07-03T06:13:28+00:00</updated>
<author>
<name>Matt Reimer</name>
<email>mreimer@sdgsystems.com</email>
</author>
<published>2009-06-15T20:21:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7eeff4814224646c896303ba2c2b7ac3c4240cd2'/>
<id>urn:sha1:7eeff4814224646c896303ba2c2b7ac3c4240cd2</id>
<content type='text'>
The DMA flow control in pxamci_setup_data() is backwards; fix it.

Signed-off-by: Matt Reimer &lt;mreimer@sdgsystems.com&gt;
Acked-by: Robert Jarzmik &lt;robert.jarzmik@free.fr&gt;
Signed-off-by: Eric Miao &lt;eric.y.miao@gmail.com&gt;
</content>
</entry>
<entry>
<title>spi: add spi_master flag word</title>
<updated>2009-07-01T01:56:00+00:00</updated>
<author>
<name>David Brownell</name>
<email>dbrownell@users.sourceforge.net</email>
</author>
<published>2009-06-30T18:41:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=70d6027ff2bc8bab180273b77e7ab3e8a62cca51'/>
<id>urn:sha1:70d6027ff2bc8bab180273b77e7ab3e8a62cca51</id>
<content type='text'>
Add a new spi_master.flags word listing constraints relevant to that
controller.  Define the first constraint bit: a half duplex restriction.
Include that constraint in the OMAP1 MicroWire controller driver.

Have the mmc_spi host be the first customer of this flag.  Its coding
relies heavily on full duplex transfers, so it must fail when the
underlying controller driver won't perform them.

(The spi_write_then_read routine could use it too: use the
temporarily-withdrawn full-duplex speedup unless this flag is set, in
which case the existing code applies.  Similarly, any spi_master
implementing only SPI_3WIRE should set the flag.)

Signed-off-by: David Brownell &lt;dbrownell@users.sourceforge.net&gt;
Cc: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
