<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/mmc/core/sd.c, branch linux-3.11.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.11.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.11.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-06-27T16:39:19Z</updated>
<entry>
<title>mmc: core: Add shutdown callback for SD bus_ops</title>
<updated>2013-06-27T16:39:19Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2013-06-10T15:03:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5992e78697484d8f58b749f87a06f89f4ba40a47'/>
<id>urn:sha1:5992e78697484d8f58b749f87a06f89f4ba40a47</id>
<content type='text'>
For the SD .shutdown callback we re-use the SD suspend function since
it performs the relevant actions.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Push common suspend|resume code into each bus_ops</title>
<updated>2013-06-27T16:39:16Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2013-06-10T15:03:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=74590263384e5d4601de7f0ee2790477578829ea'/>
<id>urn:sha1:74590263384e5d4601de7f0ee2790477578829ea</id>
<content type='text'>
By moving code from the mmc_suspend|resume_host down into each
.suspend|resume bus_ops callback, we get a more flexible solution.

Some nice side effects are that we get a better understanding of each
bus_ops suspend|resume sequence and the common code don't have to take
care of specific corner cases, especially for the SDIO case.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Tested-by: Jaehoon Chung &lt;jh80.chung@samsung.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Support aggressive power management for (e)MMC/SD</title>
<updated>2013-05-26T18:23:17Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2013-05-02T12:02:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c4d770d72492df510077b277f21ac5f0dad9e5eb'/>
<id>urn:sha1:c4d770d72492df510077b277f21ac5f0dad9e5eb</id>
<content type='text'>
Aggressive power management is suitable when saving power is
essential. At request inactivity timeout, aka pm runtime
autosuspend timeout, the card will be suspended.

Once a new request arrives, the card will be re-initalized and
thus the first request will suffer from a latency. This latency
is card-specific, experiments has shown in general that SD-cards
has quite poor initialization time, around 300ms-1100ms. eMMC is
not surprisingly far better but still a couple of hundreds of ms
has been observed.

Except for the request latency, it is important to know that
suspending the card will also prevent the card from executing
internal house-keeping operations in idle mode. This could mean
degradation in performance.

To use this feature make sure the request inactivity timeout is
chosen carefully. This has not been done as a part of this patch.

Enable this feature by using host cap MMC_CAP_AGGRESSIVE_PM and
by setting CONFIG_MMC_UNSAFE_RESUME.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: block: Enable runtime pm for mmc blkdevice</title>
<updated>2013-05-26T18:23:16Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2013-05-02T12:02:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e94cfef698aae6b209d8918dd319312e4b02118d'/>
<id>urn:sha1:e94cfef698aae6b209d8918dd319312e4b02118d</id>
<content type='text'>
Once the mmc blkdevice is being probed, runtime pm will be enabled.
By using runtime autosuspend, the power save operations can be done
when request inactivity occurs for a certain time. Right now the
selected timeout value is set to 3 s. Obviously this value will likely
need to be configurable somehow since it needs to be trimmed depending
on the power save algorithm.

For SD-combo cards, we are still leaving the enablement of runtime PM
to the SDIO init sequence since it depends on the capabilities of the
SDIO func driver.

Moreover, when the blk device is being suspended, we make sure the device
will be runtime resumed. The reason for doing this is that we want the
host suspend sequence to be unaware of any runtime power save operations
done for the card in this phase. Thus it can just handle the suspend as
the card is fully powered from a runtime perspective.

Finally, this patch prepares to make it possible to move BKOPS handling
into the runtime callbacks for the mmc bus_ops. Thus IDLE BKOPS can be
accomplished.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Only execute tuning for SDR50 and SDR104</title>
<updated>2013-05-26T18:23:11Z</updated>
<author>
<name>Fredrik Soderstedt</name>
</author>
<published>2013-04-17T11:50:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=810e08ee425f8d7327e4b30069a9b2b3dccfc67d'/>
<id>urn:sha1:810e08ee425f8d7327e4b30069a9b2b3dccfc67d</id>
<content type='text'>
Only execute tuning for sd and sdio devices that are using
SDR50 or SDR104.

Make sure clock is hold during tuning for sdio devices.

Signed-off-by: Fredrik Soderstedt &lt;fredrik.soderstedt@stericsson.com&gt;
Acked-by: Johan Rudholm &lt;jrudholm@gmail.com&gt;
Acked-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: sdhci: enhance preset value function</title>
<updated>2013-02-24T19:37:11Z</updated>
<author>
<name>Kevin Liu</name>
</author>
<published>2013-01-31T03:31:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=52983382c74f59a3953e622d7661a24e1bc4388a'/>
<id>urn:sha1:52983382c74f59a3953e622d7661a24e1bc4388a</id>
<content type='text'>
4d55c5a1 ("mmc: sdhci: enable preset value after uhs initialization")
added preset value support and enabled it by default during sd card init.

Below are the enhancements introduced by this patch:

1. In current code, preset value is enabled after setting clock finished,
which means the clock is manually set by driver firstly and then suddenly
switched to preset value at this point. So the first setting is useless
and unnecessary. What's more, the first clock setting may differ from the
preset one.  The better way is enable preset value just after switch to
UHS mode so the preset value can take effect immediately. So move preset
value enable from mmc_sd_init_card to sdhci_set_ios which will be called
during set timing.

2. In current code, preset value is disabled at the beginning of
mmc_attach_sd.  It's too late since low freq (400khz) should be set in
mmc_power_up.  So move preset value disable to sdhci_set_ios which will
be called during power up.

3. host-&gt;clock and ios-&gt;drv_type should also be updated according to the
preset value if it's enabled. Current code missed this.

4. This patch also introduce a quirk to disable preset value in case
preset value doesn't work.

This patch has been verified on sdhci-pxav3 platform with both preset
enabled and disabled.

Signed-off-by: Kevin Liu &lt;kliu5@marvell.com&gt;
Reviewed-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Fixup signal voltage switch</title>
<updated>2013-02-24T19:37:08Z</updated>
<author>
<name>Johan Rudholm</name>
</author>
<published>2013-01-28T14:08:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0797e5f1453b2bedc08bbcbea0ea4fbe20350823'/>
<id>urn:sha1:0797e5f1453b2bedc08bbcbea0ea4fbe20350823</id>
<content type='text'>
When switching SD and SDIO cards from 3.3V to 1.8V signal levels, the
clock should be gated for 5 ms during the step. After enabling the
clock, the host should wait for at least 1 ms before checking for
failure. Failure by the card to switch is indicated by dat[0:3] being
pulled low. The host should check for this condition and power-cycle
the card if failure is indicated.

Add a retry mechanism for the SDIO case.

If the voltage switch fails repeatedly, give up and continue the
initialization using the original voltage.

This patch places a couple of requirements on the host driver:

 1) mmc_set_ios with ios.clock = 0 must gate the clock
 2) mmc_power_off must actually cut the power to the card
 3) The card_busy host_ops member must be implemented

if these requirements are not fulfilled, the 1.8V signal voltage switch
will still be attempted but may not be successful.

Signed-off-by: Johan Rudholm &lt;johan.rudholm@stericsson.com&gt;
Signed-off-by: Kevin Liu &lt;kliu5@marvell.com&gt;
Acked-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Tested-by: Wei WANG &lt;wei_wang@realsil.com.cn&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Break out start_signal_voltage_switch</title>
<updated>2013-02-24T19:37:07Z</updated>
<author>
<name>Johan Rudholm</name>
</author>
<published>2013-01-28T14:08:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=567c89032cfdda8047562abe450947ac01f2d3c7'/>
<id>urn:sha1:567c89032cfdda8047562abe450947ac01f2d3c7</id>
<content type='text'>
Allow callers to access the start_signal_voltage_switch host_ops
member without going through any cmd11 logic. This is mostly a
preparation for the following signal voltage switch patch.

Also, reset ios.signal_voltage to its original value if
start_signal_voltage_switch fails.

Signed-off-by: Johan Rudholm &lt;johan.rudholm@stericsson.com&gt;
Acked-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Tested-by: Wei WANG &lt;wei_wang@realsil.com.cn&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: sd: Simplify by using mmc_host_uhs</title>
<updated>2013-02-24T19:37:05Z</updated>
<author>
<name>Johan Rudholm</name>
</author>
<published>2013-01-28T14:08:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3f8a7fabd60e83eb2fb7add00d353d455c0e7a78'/>
<id>urn:sha1:3f8a7fabd60e83eb2fb7add00d353d455c0e7a78</id>
<content type='text'>
Signed-off-by: Johan Rudholm &lt;johan.rudholm@stericsson.com&gt;
Acked-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: reset signal voltage on power up</title>
<updated>2012-07-22T19:25:53Z</updated>
<author>
<name>Aaron Lu</name>
</author>
<published>2012-07-10T08:55:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=108ecc4cf9c46a4caabaf18efc42d19818c95b70'/>
<id>urn:sha1:108ecc4cf9c46a4caabaf18efc42d19818c95b70</id>
<content type='text'>
Add a call to mmc_set_signal_voltage() to set signal voltage to 3.3v in
mmc_power_up so that we do not need to touch signal voltage setting in
mmc/sd/sdio init functions and rescan function.

For mmc/sd cards, when doing a suspend/resume cycle, consider the unsafe
resume case, the card will lose its power and when powered on again, we
will set signal voltage to 3.3v in mmc_power_up before its resume function
gets called, which will re-init the card.

And for sdio cards, when doing a suspend/resume cycle, consider the unsafe
resume case, the card will either lose its power or not depending on if it
wants to wakeup the host. If power is not maintained, it is the same case as
mmc/sd cards. If power is maintained, mmc_power_up will not be called and
the card's signal voltage will remain at the last setting.

Signed-off-by: Aaron Lu &lt;aaron.lu@amd.com&gt;
Tested-by: Venkatraman S &lt;svenkatr@ti.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
</feed>
