<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/mmc/core/sd.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-11-11T17:42:27Z</updated>
<entry>
<title>mmc: core: Fix hangs related to insert/remove of cards</title>
<updated>2011-11-11T17:42:27Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2011-09-21T18:08:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ce509f04d262d15f5f42d33d3d99ac2d27b8c674'/>
<id>urn:sha1:ce509f04d262d15f5f42d33d3d99ac2d27b8c674</id>
<content type='text'>
commit 7f7e4129c23f0419257184dff6fec89d2d5a8964 upstream.

During a rescan operation mmc_attach(sd|mmc|sdio) functions are
called. The error handling in these function can trigger a detach
of the bus, which also meant a power off. This is not notified by
the rescan operation which then continues to the next attach function.

If a power off has been done, the framework must never send any
new commands to the host driver, without first doing a new power up.
This will most likely trigger any host driver to hang.

Moving power off out of detach and instead handle power off
separately when it is actually needed, solves the issue.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@stericsson.com&gt;
Acked-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@suse.de&gt;

</content>
</entry>
<entry>
<title>mmc: sd: UHS-I bus speed should be set last in UHS initialization</title>
<updated>2011-08-31T20:25:52Z</updated>
<author>
<name>Subhash Jadavani</name>
</author>
<published>2011-08-09T06:49:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93c712f99d8e412b2d297edfe9f59b90636897c1'/>
<id>urn:sha1:93c712f99d8e412b2d297edfe9f59b90636897c1</id>
<content type='text'>
mmc_sd_init_uhs_card function sets the driver type, current limit
and bus speed mode on card as well as on host controller side.

Currently bus speed mode is set by sending CMD6 to card and
immediately setting the timing mode in host controller. But
then before initiating tuning sequence, it also tries to set
current limit by sending CMD6 to card which results in data
timeout errors in controller if bus speed mode is SDR50/SDR104 mode.

So basically bus speed mode should be set only after current limit
is set in the card and immediately after setting the bus speed mode,
tuning sequence should be initiated.

Signed-off-by: Subhash Jadavani &lt;subhashj@codeaurora.org&gt;
Reviewed-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Set non-default Drive Strength via platform hook</title>
<updated>2011-07-20T21:21:16Z</updated>
<author>
<name>Philip Rakity</name>
</author>
<published>2011-07-06T15:51:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ca8e99b32e3863c98ac958617cc157a00bf445b8'/>
<id>urn:sha1:ca8e99b32e3863c98ac958617cc157a00bf445b8</id>
<content type='text'>
Non default Drive Strength cannot be set automatically.  It is a function
of the board design and only if there is a specific platform handler can
it be set.  The platform handler needs to take into account the board
design.  Pass to the platform code the necessary information.

For example:  The card and host controller may indicate they support HIGH
and LOW drive strength.  There is no way to know what should be chosen
without specific board knowledge.  Setting HIGH may lead to reflections
and setting LOW may not suffice.  There is no mechanism (like ethernet
duplex or speed pulses) to determine what should be done automatically.

If no platform handler is defined -- use the default value.

Signed-off-by: Philip Rakity &lt;prakity@marvell.com&gt;
Reviewed-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: Block CMD23 support for UHS104/SDXC cards.</title>
<updated>2011-05-25T20:49:03Z</updated>
<author>
<name>Andrei Warkentin</name>
</author>
<published>2011-05-23T20:06:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f0d89972b01798cf9d245dfa1cacfa0ee78a3593'/>
<id>urn:sha1:f0d89972b01798cf9d245dfa1cacfa0ee78a3593</id>
<content type='text'>
SD cards operating at UHS104 or better support SET_BLOCK_COUNT.

Signed-off-by: Andrei Warkentin &lt;andreiw@motorola.com&gt;
Reviewed-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: core: eMMC signal voltage does not use CMD11</title>
<updated>2011-05-25T03:53:58Z</updated>
<author>
<name>Philip Rakity</name>
</author>
<published>2011-05-13T05:47:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=261bbd463a091b939770255d559bbc89b1bad568'/>
<id>urn:sha1:261bbd463a091b939770255d559bbc89b1bad568</id>
<content type='text'>
eMMC chips do not use CMD11 when changing voltage.  Add extra
argument to call to indicate if CMD11 needs to be sent.

Signed-off-by: Philip Rakity &lt;prakity@marvell.com&gt;
Reviewed-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: sdhci: enable preset value after uhs initialization</title>
<updated>2011-05-25T03:53:47Z</updated>
<author>
<name>Arindam Nath</name>
</author>
<published>2011-05-05T06:49:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4d55c5a13a189a80d40383f02c8026f9a87d7c87'/>
<id>urn:sha1:4d55c5a13a189a80d40383f02c8026f9a87d7c87</id>
<content type='text'>
According to the Host Controller spec v3.00, setting Preset Value Enable
in the Host Control2 register lets SDCLK Frequency Select, Clock Generator
Select and Driver Strength Select to be set automatically by the Host
Controller based on the UHS-I mode set. This patch enables this feature.
Since Preset Value Enable makes sense only for UHS-I cards, we enable this
feature after successfull UHS-I initialization. We also reset Preset Value
Enable next time before initialization.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Reviewed-by: Philip Rakity &lt;prakity@marvell.com&gt;
Tested-by: Philip Rakity &lt;prakity@marvell.com&gt;
Acked-by: Zhangfei Gao &lt;zhangfei.gao@marvell.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: sd: add support for tuning during uhs initialization</title>
<updated>2011-05-25T03:53:46Z</updated>
<author>
<name>Arindam Nath</name>
</author>
<published>2011-05-05T06:49:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b513ea250eb7c36a8afb3df938d632ca6b4df7cd'/>
<id>urn:sha1:b513ea250eb7c36a8afb3df938d632ca6b4df7cd</id>
<content type='text'>
Host Controller needs tuning during initialization to operate SDR50
and SDR104 UHS-I cards. Whether SDR50 mode actually needs tuning is
indicated by bit 45 of the Host Controller Capabilities register.
A new command CMD19 has been defined in the Physical Layer spec
v3.01 to request the card to send tuning pattern.

We enable Buffer Read Ready interrupt at the very begining of tuning
procedure, because that is the only interrupt generated by the Host
Controller during tuning. We program the block size to 64 in the
Block Size register. We make sure that DMA Enable and Multi Block
Select in the Transfer Mode register are set to 0 before actually
sending CMD19. The tuning block is sent by the card to the Host
Controller using DAT lines, so we set Data Present Select (bit 5) in
the Command register. The Host Controller is responsible for doing
the verfication of tuning block sent by the card at the hardware
level. After sending CMD19, we wait for Buffer Read Ready interrupt.
In case we don't receive an interrupt after the specified timeout
value, we fall back on fixed sampling clock by setting Execute
Tuning (bit 6) and Sampling Clock Select (bit 7) of Host Control2
register to 0. Before exiting the tuning procedure, we disable Buffer
Read Ready interrupt and re-enable other interrupts.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Reviewed-by: Philip Rakity &lt;prakity@marvell.com&gt;
Tested-by: Philip Rakity &lt;prakity@marvell.com&gt;
Acked-by: Zhangfei Gao &lt;zhangfei.gao@marvell.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: sd: report correct speed and capacity of uhs cards</title>
<updated>2011-05-25T03:53:46Z</updated>
<author>
<name>Arindam Nath</name>
</author>
<published>2011-05-05T06:49:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3a3035114307cd55e024662bb295a87b849f0bd4'/>
<id>urn:sha1:3a3035114307cd55e024662bb295a87b849f0bd4</id>
<content type='text'>
Since only UHS-I cards respond with S18A set in response to ACMD41,
we set the card as ultra-high-speed after successfull initialization.
We need to decide whether a card is SDXC based on the C_SIZE field
of CSDv2.0 register. According to Physical Layer spec v3.01, the
minimum value of C_SIZE for SDXC card is 00FFFFh.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Reviewed-by: Philip Rakity &lt;prakity@marvell.com&gt;
Tested-by: Philip Rakity &lt;prakity@marvell.com&gt;
Acked-by: Zhangfei Gao &lt;zhangfei.gao@marvell.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: sd: set current limit for uhs cards</title>
<updated>2011-05-25T03:53:45Z</updated>
<author>
<name>Arindam Nath</name>
</author>
<published>2011-05-05T06:49:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5371c927bcd06a5c9dd6785bab2d452b87d9abc6'/>
<id>urn:sha1:5371c927bcd06a5c9dd6785bab2d452b87d9abc6</id>
<content type='text'>
We decide on the current limit to be set for the card based on the
Capability of Host Controller to provide current at 1.8V signalling,
and the maximum current limit of the card as indicated by CMD6
mode 0. We then set the current limit for the card using CMD6 mode 1.
As per the Physical Layer Spec v3.01, the current limit switch is
only applicable for SDR50, SDR104, and DDR50 bus speed modes. For
other UHS-I modes, we set the default current limit of 200mA.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Reviewed-by: Philip Rakity &lt;prakity@marvell.com&gt;
Tested-by: Philip Rakity &lt;prakity@marvell.com&gt;
Acked-by: Zhangfei Gao &lt;zhangfei.gao@marvell.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: sd: add support for uhs bus speed mode selection</title>
<updated>2011-05-25T03:53:45Z</updated>
<author>
<name>Arindam Nath</name>
</author>
<published>2011-05-05T06:49:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=49c468fcf878d2c86e31920cf54aa90c88418a66'/>
<id>urn:sha1:49c468fcf878d2c86e31920cf54aa90c88418a66</id>
<content type='text'>
This patch adds support for setting UHS-I bus speed mode during UHS-I
initialization procedure. Since both the host and card can support
more than one bus speed, we select the highest speed based on both of
their capabilities. First we set the bus speed mode for the card using
CMD6 mode 1, and then we program the host controller to support the
required speed mode. We also set High Speed Enable in case one of the
UHS-I modes is selected. We take care to reset SD clock before setting
UHS mode in the Host Control2 register, and then re-enable it as per
the Host Controller spec v3.00. We then set the clock frequency for
the UHS-I mode selected.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath &lt;arindam.nath@amd.com&gt;
Reviewed-by: Philip Rakity &lt;prakity@marvell.com&gt;
Tested-by: Philip Rakity &lt;prakity@marvell.com&gt;
Acked-by: Zhangfei Gao &lt;zhangfei.gao@marvell.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
</feed>
