<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include/linux/mmc, branch 3.0-pcm052-ts2.1</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>ENGR00175864 [MMC]pipeline mmc requests</title>
<updated>2012-03-07T06:26:20+00:00</updated>
<author>
<name>Tony Lin</name>
<email>tony.lin@freescale.com</email>
</author>
<published>2012-02-27T07:53:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ba81de88099550576886d3bc242bc843fe387ed3'/>
<id>ba81de88099550576886d3bc242bc843fe387ed3</id>
<content type='text'>
the patch is based on a series of patches by Per Forlin
the patch is sdhci host side implementation.

using a toshiba SDHC3.0 card, the performance increases
from 48.5MB/s to 52.4MB/s.

cmd: dd if=/dev/mmcblk0 of=/dev/null bs=1M count=500

the performance results running@1GHz, 200MHz CPU freq are:
52.4MB/s -&gt; 20.7MB/s

Signed-off-by: Tony Lin &lt;tony.lin@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the patch is based on a series of patches by Per Forlin
the patch is sdhci host side implementation.

using a toshiba SDHC3.0 card, the performance increases
from 48.5MB/s to 52.4MB/s.

cmd: dd if=/dev/mmcblk0 of=/dev/null bs=1M count=500

the performance results running@1GHz, 200MHz CPU freq are:
52.4MB/s -&gt; 20.7MB/s

Signed-off-by: Tony Lin &lt;tony.lin@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mmc: queue: let host controllers specify maximum discard timeout</title>
<updated>2012-03-01T06:45:08+00:00</updated>
<author>
<name>Adrian Hunter</name>
<email>adrian.hunter@intel.com</email>
</author>
<published>2011-06-28T14:16:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f0706c0df00a86babb3a2064749b7d4a46b89eb9'/>
<id>f0706c0df00a86babb3a2064749b7d4a46b89eb9</id>
<content type='text'>
Some host controllers will not operate without a hardware
timeout that is limited in value.  However large discards
require large timeouts, so there needs to be a way to
specify the maximum discard size.

A host controller driver may now specify the maximum discard
timeout possible so that max_discard_sectors can be calculated.

However, for eMMC when the High Capacity Erase Group Size
is not in use, the timeout calculation depends on clock
rate which may change.  For that case Preferred Erase Size
is used instead.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some host controllers will not operate without a hardware
timeout that is limited in value.  However large discards
require large timeouts, so there needs to be a way to
specify the maximum discard size.

A host controller driver may now specify the maximum discard
timeout possible so that max_discard_sectors can be calculated.

However, for eMMC when the High Capacity Erase Group Size
is not in use, the timeout calculation depends on clock
rate which may change.  For that case Preferred Erase Size
is used instead.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mmc: block: allow get_card_status() to return error status</title>
<updated>2012-03-01T06:45:07+00:00</updated>
<author>
<name>Russell King - ARM Linux</name>
<email>linux@arm.linux.org.uk</email>
</author>
<published>2011-06-20T19:10:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=534d1678fed974ee5114c9ea7132f19ad86d0ed5'/>
<id>534d1678fed974ee5114c9ea7132f19ad86d0ed5</id>
<content type='text'>
If the MMC_SEND_STATUS command is not successful, we should not return
a zero status word, but instead allow the caller to know positively
that an error occurred.

Convert the open-coded get_card_status() to use the helper function,
and provide definitions for the card state field.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Pawel Moll &lt;pawel.moll@arm.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the MMC_SEND_STATUS command is not successful, we should not return
a zero status word, but instead allow the caller to know positively
that an error occurred.

Convert the open-coded get_card_status() to use the helper function,
and provide definitions for the card state field.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Pawel Moll &lt;pawel.moll@arm.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mmc: core: add non-blocking mmc request function</title>
<updated>2012-03-01T06:45:06+00:00</updated>
<author>
<name>Per Forlin</name>
<email>per.forlin@linaro.org</email>
</author>
<published>2011-07-01T16:55:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1b4182d76ce2e708cd3b98557d7d702215f792b7'/>
<id>1b4182d76ce2e708cd3b98557d7d702215f792b7</id>
<content type='text'>
Previously there has only been one function mmc_wait_for_req()
to start and wait for a request. This patch adds:

 * mmc_start_req() - starts a request wihtout waiting
   If there is on ongoing request wait for completion
   of that request and start the new one and return.
   Does not wait for the new command to complete.

This patch also adds new function members in struct mmc_host_ops
only called from core.c:

 * pre_req - asks the host driver to prepare for the next job
 * post_req - asks the host driver to clean up after a completed job

The intention is to use pre_req() and post_req() to do cache maintenance
while a request is active. pre_req() can be called while a request is
active to minimize latency to start next job. post_req() can be used after
the next job is started to clean up the request. This will minimize the
host driver request end latency. post_req() is typically used before
ending the block request and handing over the buffer to the block layer.

Add a host-private member in mmc_data to be used by pre_req to mark the
data. The host driver will then check this mark to see if the data is
prepared or not.

Signed-off-by: Per Forlin &lt;per.forlin@linaro.org&gt;
Acked-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Reviewed-by: Venkatraman S &lt;svenkatr@ti.com&gt;
Tested-by: Sourav Poddar &lt;sourav.poddar@ti.com&gt;
Tested-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously there has only been one function mmc_wait_for_req()
to start and wait for a request. This patch adds:

 * mmc_start_req() - starts a request wihtout waiting
   If there is on ongoing request wait for completion
   of that request and start the new one and return.
   Does not wait for the new command to complete.

This patch also adds new function members in struct mmc_host_ops
only called from core.c:

 * pre_req - asks the host driver to prepare for the next job
 * post_req - asks the host driver to clean up after a completed job

The intention is to use pre_req() and post_req() to do cache maintenance
while a request is active. pre_req() can be called while a request is
active to minimize latency to start next job. post_req() can be used after
the next job is started to clean up the request. This will minimize the
host driver request end latency. post_req() is typically used before
ending the block request and handing over the buffer to the block layer.

Add a host-private member in mmc_data to be used by pre_req to mark the
data. The host driver will then check this mark to see if the data is
prepared or not.

Signed-off-by: Per Forlin &lt;per.forlin@linaro.org&gt;
Acked-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Reviewed-by: Venkatraman S &lt;svenkatr@ti.com&gt;
Tested-by: Sourav Poddar &lt;sourav.poddar@ti.com&gt;
Tested-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00175221-02 [MX6] MMCSD: clear EXE_TUNE bit after tuning finishes.</title>
<updated>2012-02-23T06:30:02+00:00</updated>
<author>
<name>Ryan QIAN</name>
<email>b32804@freescale.com</email>
</author>
<published>2012-02-23T00:24:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=697acccd323c38f3d48923528ec0bfda04d8e5a7'/>
<id>697acccd323c38f3d48923528ec0bfda04d8e5a7</id>
<content type='text'>
- add hook for post tuning in common code
- add hook for post tuning for platform code to deal with clean up stuff on
finishing tuning.

Signed-off-by: Ryan QIAN &lt;b32804@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- add hook for post tuning in common code
- add hook for post tuning for platform code to deal with clean up stuff on
finishing tuning.

Signed-off-by: Ryan QIAN &lt;b32804@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00174038 [mx6 mmc]fix build err</title>
<updated>2012-02-08T07:47:05+00:00</updated>
<author>
<name>Tony Lin</name>
<email>tony.lin@freescale.com</email>
</author>
<published>2012-02-08T07:42:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c06e6207702bce331b08d0b4e7d76cc6e51e2346'/>
<id>c06e6207702bce331b08d0b4e7d76cc6e51e2346</id>
<content type='text'>
fix build error:
incompatible pointer type

Signed-off-by: Tony Lin &lt;tony.lin@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fix build error:
incompatible pointer type

Signed-off-by: Tony Lin &lt;tony.lin@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00173288-02 merge "[MX6Q]add SDHC3.0 support on uSDHC controller"</title>
<updated>2012-02-06T05:05:25+00:00</updated>
<author>
<name>Ryan QIAN</name>
<email>b32804@freescale.com</email>
</author>
<published>2012-01-31T03:01:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=17b260c58639af59b9d18fceb59d58c71188a980'/>
<id>17b260c58639af59b9d18fceb59d58c71188a980</id>
<content type='text'>
ENGR152547-03 [MX6Q]add SDHC3.0 support on uSDHC controller
add voltage switch function due to SDHC3.0 spec requirement
add tuning function due to SDHC3.0 spec requirement
extend some functions to support SDR50 &amp; SDR104 speed mode

- adjust the sequence of current_limit and bus_speed_mode
- add FSL specific tuning procedure

Signed-off-by: Ryan QIAN &lt;b32804@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ENGR152547-03 [MX6Q]add SDHC3.0 support on uSDHC controller
add voltage switch function due to SDHC3.0 spec requirement
add tuning function due to SDHC3.0 spec requirement
extend some functions to support SDR50 &amp; SDR104 speed mode

- adjust the sequence of current_limit and bus_speed_mode
- add FSL specific tuning procedure

Signed-off-by: Ryan QIAN &lt;b32804@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00173284 merge "eMMC: Configure boot_partition_enable"</title>
<updated>2012-01-31T02:51:36+00:00</updated>
<author>
<name>Ryan QIAN</name>
<email>b32804@freescale.com</email>
</author>
<published>2012-01-07T04:32:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=16c4fa163c5913ad52e4561f50e12f89db96bb0c'/>
<id>16c4fa163c5913ad52e4561f50e12f89db96bb0c</id>
<content type='text'>
ENGR126228 eMMC: Configure boot_partition_enable

	Enable the configurations of the boot enable on the eMMC cards.

	Add the interface that used to configure the boot_bus_width

	In order to make sure that the re-read the ext-csd of card
	can be completed successfully, add the method to wait for
	the finish of the busy state.

	NOTE:
	The following are the valid inputs when configure the boot
	bus width of the eMMC cards.
	+--------------------------------------------------------------------+
	| Bit7 Bit6 Bit5 | Bit4 Bit3 | Bit2                 | Bit1 Bit0      |
	|----------------|----------------------------------|----------------|
	| X              | BOOT_MODE | RESET_BOOT_BUS_WIDTH | BOOT_BUS_WIDTH |
	+--------------------------------------------------------------------+
	Bit [4:3] : BOOT_MODE (non-volatile)
	0x0 : Use single data rate + backward compatible timings in boot
	operation (default)
	0x1 : Use single data rate + high speed timings in boot operation mode
	0x2 : Use dual data rate in boot operation
	0x3 : Reserved
	Bit [2]: RESET_BOOT_BUS_WIDTH (non-volatile)
	0x0 : Reset bus width to x1, single data rate and backward compatible
	timings after boot operation (default)
	0x1 : Retain boot bus width and boot mode after boot operation
	Bit[1:0] : BOOT_BUS_WIDTH (non-volatile)
	0x0 : x1 (sdr) or x4 (ddr) bus width in boot operation mode (default)
	0x1 : x4 (sdr/ddr) bus width in boot operation mode
	0x2 : x8 (sdr/ddr) bus width in boot operation mode
	0x3 : Reserved

	The following are the valid inputs when configure the boot
	partitions of the eMMC cards.
	+------------------------------------------------------------+
	| Bit7 | Bit6     | Bit5 Bit4 Bit3        | Bit2 Bit1 Bit0   |
	|------|----------|-----------------------|------------------|
	| X    | BOOT_ACK | BOOT_PARTITION_ENABLE | PARTITION_ACCESS |
	+------------------------------------------------------------+
	Bit7: Reserved
	Bit6: always set to vaule '1' when boot_part is enabled
	Bit[5:3]:
	0x0 : Device not boot enabled (default)
	0x1 : Boot partition 1 enabled for boot
	0x2 : Boot partition 2 enabled for boot
	0x7 : User area enabled for boot
	Bit[2:0]:
	0x0 : No access to boot partition (default)
	0x1 : R/W boot partition 1
	0x2 : R/W boot partition 2
	So only the '0, 1, 2; 8, 9, 10; 16, 17, 18; 56, 57, 58' are
	valid parameters when configure the boot_partiton.

	Signed-off-by: Richard Zhu &lt;r65037@freescale.com&gt;

Signed-off-by: Ryan QIAN &lt;b32804@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ENGR126228 eMMC: Configure boot_partition_enable

	Enable the configurations of the boot enable on the eMMC cards.

	Add the interface that used to configure the boot_bus_width

	In order to make sure that the re-read the ext-csd of card
	can be completed successfully, add the method to wait for
	the finish of the busy state.

	NOTE:
	The following are the valid inputs when configure the boot
	bus width of the eMMC cards.
	+--------------------------------------------------------------------+
	| Bit7 Bit6 Bit5 | Bit4 Bit3 | Bit2                 | Bit1 Bit0      |
	|----------------|----------------------------------|----------------|
	| X              | BOOT_MODE | RESET_BOOT_BUS_WIDTH | BOOT_BUS_WIDTH |
	+--------------------------------------------------------------------+
	Bit [4:3] : BOOT_MODE (non-volatile)
	0x0 : Use single data rate + backward compatible timings in boot
	operation (default)
	0x1 : Use single data rate + high speed timings in boot operation mode
	0x2 : Use dual data rate in boot operation
	0x3 : Reserved
	Bit [2]: RESET_BOOT_BUS_WIDTH (non-volatile)
	0x0 : Reset bus width to x1, single data rate and backward compatible
	timings after boot operation (default)
	0x1 : Retain boot bus width and boot mode after boot operation
	Bit[1:0] : BOOT_BUS_WIDTH (non-volatile)
	0x0 : x1 (sdr) or x4 (ddr) bus width in boot operation mode (default)
	0x1 : x4 (sdr/ddr) bus width in boot operation mode
	0x2 : x8 (sdr/ddr) bus width in boot operation mode
	0x3 : Reserved

	The following are the valid inputs when configure the boot
	partitions of the eMMC cards.
	+------------------------------------------------------------+
	| Bit7 | Bit6     | Bit5 Bit4 Bit3        | Bit2 Bit1 Bit0   |
	|------|----------|-----------------------|------------------|
	| X    | BOOT_ACK | BOOT_PARTITION_ENABLE | PARTITION_ACCESS |
	+------------------------------------------------------------+
	Bit7: Reserved
	Bit6: always set to vaule '1' when boot_part is enabled
	Bit[5:3]:
	0x0 : Device not boot enabled (default)
	0x1 : Boot partition 1 enabled for boot
	0x2 : Boot partition 2 enabled for boot
	0x7 : User area enabled for boot
	Bit[2:0]:
	0x0 : No access to boot partition (default)
	0x1 : R/W boot partition 1
	0x2 : R/W boot partition 2
	So only the '0, 1, 2; 8, 9, 10; 16, 17, 18; 56, 57, 58' are
	valid parameters when configure the boot_partiton.

	Signed-off-by: Richard Zhu &lt;r65037@freescale.com&gt;

Signed-off-by: Ryan QIAN &lt;b32804@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00173283 merge "eMMC: Boot Partition switch func used in MFG tool"</title>
<updated>2012-01-31T02:51:36+00:00</updated>
<author>
<name>Ryan QIAN</name>
<email>b32804@freescale.com</email>
</author>
<published>2012-01-07T04:20:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1e01b9bbf1631e202f82563d62454fa0632d8f7d'/>
<id>1e01b9bbf1631e202f82563d62454fa0632d8f7d</id>
<content type='text'>
ENGR125411 eMMC: Boot Partition switch func used in MFG tool

	User can get eMMC partitions info from user space layer in
	linux OS enviroment.
	User can do switch operations between the eMMC boot partitions
	and the user partition.
	User can access the eMMC boot partitions from user space layer
	in linux OS enviroment.
	NOTE:This func had been verified on TOSHIBA eMMC44 card only.

	Signed-off-by: Richard Zhu &lt;r65037@freescale.com&gt;
	Signed-off-by: Rob Herring &lt;r.herring@freescale.com&gt;

Signed-off-by: Ryan QIAN &lt;b32804@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ENGR125411 eMMC: Boot Partition switch func used in MFG tool

	User can get eMMC partitions info from user space layer in
	linux OS enviroment.
	User can do switch operations between the eMMC boot partitions
	and the user partition.
	User can access the eMMC boot partitions from user space layer
	in linux OS enviroment.
	NOTE:This func had been verified on TOSHIBA eMMC44 card only.

	Signed-off-by: Richard Zhu &lt;r65037@freescale.com&gt;
	Signed-off-by: Rob Herring &lt;r.herring@freescale.com&gt;

Signed-off-by: Ryan QIAN &lt;b32804@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "ENGR00125411 eMMC: Boot Partition switch func used in MFG tool"</title>
<updated>2012-01-09T13:10:12+00:00</updated>
<author>
<name>Jason Liu</name>
<email>jason.hui@linaro.org</email>
</author>
<published>2011-12-14T11:43:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=830be05861d77f0000b1fe6424eecdacfedffd5a'/>
<id>830be05861d77f0000b1fe6424eecdacfedffd5a</id>
<content type='text'>
This reverts commit 9f26eaa231cf2a19064c5589a3515bdd60af596a.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 9f26eaa231cf2a19064c5589a3515bdd60af596a.
</pre>
</div>
</content>
</entry>
</feed>
