<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/mmc/core/host.c, branch linux-3.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.1.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.1.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2011-08-31T20:25:50Z</updated>
<entry>
<title>mmc: core: use non-reentrant workqueue for clock gating</title>
<updated>2011-08-31T20:25:50Z</updated>
<author>
<name>Mika Westerberg</name>
</author>
<published>2011-08-18T12:23:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=50a50f9248497484c678631a9c1a719f1aaeab79'/>
<id>urn:sha1:50a50f9248497484c678631a9c1a719f1aaeab79</id>
<content type='text'>
The default multithread workqueue can cause the same work to be executed
concurrently on a different CPUs. This isn't really suitable for clock
gating as it might already gated the clock and gating it twice results both
host-&gt;clk_old and host-&gt;ios.clock to be set to 0.

To prevent this from happening we use system_nrt_wq instead.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Chris Ball &lt;cjb@laptop.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: rename mmc_host_clk_{ungate|gate} to mmc_host_clk_{hold|release}</title>
<updated>2011-08-31T20:24:54Z</updated>
<author>
<name>Mika Westerberg</name>
</author>
<published>2011-08-18T12:23:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=08c14071fda4e69abb9d5b1566651cd092b158d3'/>
<id>urn:sha1:08c14071fda4e69abb9d5b1566651cd092b158d3</id>
<content type='text'>
As per suggestion by Linus Walleij:

  &gt; If you think the names of the functions are confusing then
  &gt; you may rename them, say like this:
  &gt;
  &gt; mmc_host_clk_ungate() -&gt; mmc_host_clk_hold()
  &gt; mmc_host_clk_gate() -&gt; mmc_host_clk_release()
  &gt;
  &gt; Which would make the usecases more clear

(This is CC'd to stable@ because the next two patches, which fix
observable races, depend on it.)

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc</title>
<updated>2011-05-25T23:55:55Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2011-05-25T23:55:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8c1c77ff9be27137fa7cbbf51efedef1a2ae915b'/>
<id>urn:sha1:8c1c77ff9be27137fa7cbbf51efedef1a2ae915b</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (75 commits)
  mmc: core: eMMC bus width may not work on all platforms
  mmc: sdhci: Auto-CMD23 fixes.
  mmc: sdhci: Auto-CMD23 support.
  mmc: core: Block CMD23 support for UHS104/SDXC cards.
  mmc: sdhci: Implement MMC_CAP_CMD23 for SDHCI.
  mmc: core: Use CMD23 for multiblock transfers when we can.
  mmc: quirks: Add/remove quirks conditional support.
  mmc: Add new VUB300 USB-to-SD/SDIO/MMC driver
  mmc: sdhci-pxa: Add quirks for DMA/ADMA to match h/w
  mmc: core: duplicated trial with same freq in mmc_rescan_try_freq()
  mmc: core: add support for eMMC Dual Data Rate
  mmc: core: eMMC signal voltage does not use CMD11
  mmc: sdhci-pxa: add platform code for UHS signaling
  mmc: sdhci: add hooks for setting UHS in platform specific code
  mmc: core: clear MMC_PM_KEEP_POWER flag on resume
  mmc: dw_mmc: fixed wrong regulator_enable in suspend/resume
  mmc: sdhi: allow powering down controller with no card inserted
  mmc: tmio: runtime suspend the controller, where possible
  mmc: sdhi: support up to 3 interrupt sources
  mmc: sdhi: print physical base address and clock rate
  ...
</content>
</entry>
<entry>
<title>mmc: core: fix memory leak in mmc_add_host</title>
<updated>2011-05-25T01:00:50Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2011-04-11T04:11:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f317dfeb86c83d03304a74ce5426a69422b79547'/>
<id>urn:sha1:f317dfeb86c83d03304a74ce5426a69422b79547</id>
<content type='text'>
led_trigger_register_simple() allocates memory which must not be leaked
in the error-path of mmc_add_host. Move it past the only error-check in
the function.

Signed-off-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>Revert "mmc: fix a race between card-detect rescan and clock-gate work instances"</title>
<updated>2011-05-16T15:32:26Z</updated>
<author>
<name>Chris Ball</name>
</author>
<published>2011-05-16T15:32:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=86f315bbb2374f1f077500ad131dd9b71856e697'/>
<id>urn:sha1:86f315bbb2374f1f077500ad131dd9b71856e697</id>
<content type='text'>
This reverts commit 26fc8775b51484d8c0a671198639c6d5ae60533e, which has
been reported to cause boot/resume-time crashes for some users:

https://bbs.archlinux.org/viewtopic.php?id=118751.

Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
Cc: &lt;stable@kernel.org&gt;
</content>
</entry>
<entry>
<title>mmc: fix a race between card-detect rescan and clock-gate work instances</title>
<updated>2011-04-27T23:16:12Z</updated>
<author>
<name>Guennadi Liakhovetski</name>
</author>
<published>2011-04-15T18:08:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=26fc8775b51484d8c0a671198639c6d5ae60533e'/>
<id>urn:sha1:26fc8775b51484d8c0a671198639c6d5ae60533e</id>
<content type='text'>
Currently there is a race in the MMC core between a card-detect
rescan work and the clock-gating work, scheduled from a command
completion. Fix it by removing the dedicated clock-gating mutex
and using the MMC standard locking mechanism instead.

Signed-off-by: Guennadi Liakhovetski &lt;g.liakhovetski@gmx.de&gt;
Cc: Simon Horman &lt;horms@verge.net.au&gt;
Cc: Magnus Damm &lt;damm@opensource.se&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: add MMC_QUIRK_BROKEN_CLK_GATING</title>
<updated>2011-03-15T17:48:35Z</updated>
<author>
<name>Pierre Tardy</name>
</author>
<published>2011-02-06T18:03:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=db9935000d95ae3f9702b7ff6ac0eef2319d8772'/>
<id>urn:sha1:db9935000d95ae3f9702b7ff6ac0eef2319d8772</id>
<content type='text'>
Some sdio card are not following sdio standard, and do not work
when the sdio bus's clock is gated.

To keep functionnality for all legacy driver, we turn this quirk on
for every sdio card.
Drivers needs to disable the quirk manually when someone verifies that
their supported card works with clock gating.

Signed-off-by: Pierre Tardy &lt;tardyp@gmail.com&gt;
Acked-by: Ohad Ben-Cohen &lt;ohad@wizery.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: check for &gt; 1 clk_requests when disabling gating</title>
<updated>2011-01-09T04:52:22Z</updated>
<author>
<name>Linus Walleij</name>
</author>
<published>2010-12-22T08:50:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c288b85554097a3d1271f935c48b442280b2db9e'/>
<id>urn:sha1:c288b85554097a3d1271f935c48b442280b2db9e</id>
<content type='text'>
Since we make sure the clock is enabled in the mmc_host_clk_exit()
function we should expect a reference counter of 1, not 0.

Signed-off-by: Linus Walleij &lt;linus.walleij@stericsson.com&gt;
Tested-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: Aggressive clock gating framework</title>
<updated>2011-01-09T03:48:03Z</updated>
<author>
<name>Linus Walleij</name>
</author>
<published>2010-11-09T02:36:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=04566831a703ae3ef4b49a2deae261c9ed26e020'/>
<id>urn:sha1:04566831a703ae3ef4b49a2deae261c9ed26e020</id>
<content type='text'>
This patch modifies the MMC core code to optionally call the set_ios()
operation on the driver with the clock frequency set to 0 (gate) after
a grace period of at least 8 MCLK cycles, then restore it (ungate)
before any new request. This gives the driver the option to shut down
the MCI clock to the MMC/SD card when the clock frequency is 0, i.e.
the core has stated that the MCI clock does not need to be generated.

It is inspired by existing clock gating code found in the OMAP and
Atmel drivers and brings this up to the host abstraction.  Gating is
performed before and after any MMC request.

This patchset implements this for the MMCI/PL180 MMC/SD host controller,
but it should be simple to switch OMAP/Atmel over to using this instead.

mmc_set_{gated,ungated}() add variable protection to the state holders
for the clock gating code.  This is particularly important when ordinary
.set_ios() calls would race with the .set_ios() call resulting from a
delayed gate operation.

Signed-off-by: Linus Walleij &lt;linus.walleij@stericsson.com&gt;
Reviewed-by: Chris Ball &lt;cjb@laptop.org&gt;
Tested-by: Chris Ball &lt;cjb@laptop.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: Remove distinction between hw and phys segments</title>
<updated>2010-10-23T13:11:11Z</updated>
<author>
<name>Martin K. Petersen</name>
</author>
<published>2010-09-10T05:33:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a36274e0184193e393fb82957925c3981a6b0477'/>
<id>urn:sha1:a36274e0184193e393fb82957925c3981a6b0477</id>
<content type='text'>
We have deprecated the distinction between hardware and physical
segments in the block layer.  Consolidate the two limits into one in
drivers/mmc/.

Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
</feed>
