<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/mmc/card/block.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-23T12:50:29Z</updated>
<entry>
<title>block: separate priority boosting from REQ_META</title>
<updated>2011-08-23T12:50:29Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2011-08-23T12:50:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=65299a3b788bd274bed92f9fa3232082c9f3ea70'/>
<id>urn:sha1:65299a3b788bd274bed92f9fa3232082c9f3ea70</id>
<content type='text'>
Add a new REQ_PRIO to let requests preempt others in the cfq I/O schedule,
and lave REQ_META purely for marking requests as metadata in blktrace.

All existing callers of REQ_META except for XFS are updated to also
set REQ_PRIO for now.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>mmc: block: fixed NULL pointer dereference</title>
<updated>2011-07-21T14:35:00Z</updated>
<author>
<name>Jaehoon Chung</name>
</author>
<published>2011-07-13T08:02:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=393f9a08e2ee72e42379489a5781feaf9c406d5f'/>
<id>urn:sha1:393f9a08e2ee72e42379489a5781feaf9c406d5f</id>
<content type='text'>
We already check for ongoing async transfers when handling discard
requests, but not in mmc_blk_issue_flush().  This patch fixes that
omission.

Tested with an SDHCI controller and eMMC4.41.

Signed-off-by: Jaehoon Chung &lt;jh80.chung@samsung.com&gt;
Signed-off-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Acked-by: Per Forlin &lt;per.forlin@linaro.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: block: add handling for two parallel block requests in issue_rw_rq</title>
<updated>2011-07-20T21:21:15Z</updated>
<author>
<name>Per Forlin</name>
</author>
<published>2011-07-01T16:55:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ee8a43a51c7681f19fe23b6b936e1d8094a8b7d1'/>
<id>urn:sha1:ee8a43a51c7681f19fe23b6b936e1d8094a8b7d1</id>
<content type='text'>
Change mmc_blk_issue_rw_rq() to become asynchronous.
The execution flow looks like this:

* The mmc-queue calls issue_rw_rq(), which sends the request
  to the host and returns back to the mmc-queue.
* The mmc-queue calls issue_rw_rq() again with a new request.
* This new request is prepared in issue_rw_rq(), then it waits for
  the active request to complete before pushing it to the host.
* When the mmc-queue is empty it will call issue_rw_rq() with a NULL
  req to finish off the active request without starting a new request.

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>
</entry>
<entry>
<title>mmc: block: move error path in issue_rw_rq to a separate function.</title>
<updated>2011-07-20T21:21:14Z</updated>
<author>
<name>Per Forlin</name>
</author>
<published>2011-07-01T16:55:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d78d4a8ad53f345dd3c0bb5f8d377baa523739f7'/>
<id>urn:sha1:d78d4a8ad53f345dd3c0bb5f8d377baa523739f7</id>
<content type='text'>
Break out code without functional changes. This simplifies the code and
makes way for handling two parallel requests.

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>
</entry>
<entry>
<title>mmc: block: add a block request prepare function</title>
<updated>2011-07-20T21:21:13Z</updated>
<author>
<name>Per Forlin</name>
</author>
<published>2011-07-01T16:55:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=54d49d77628bed77e5491b8a2a1158a492843a19'/>
<id>urn:sha1:54d49d77628bed77e5491b8a2a1158a492843a19</id>
<content type='text'>
Break out code from mmc_blk_issue_rw_rq to create a block request prepare
function. This doesn't change any functionallity. This helps when handling
more than one active block request.

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>
</entry>
<entry>
<title>mmc: block: add member in mmc queue struct to hold request data</title>
<updated>2011-07-20T21:21:13Z</updated>
<author>
<name>Per Forlin</name>
</author>
<published>2011-07-09T21:12:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=97868a2bdfc2fc79a987b64f1611034b56a3f8c4'/>
<id>urn:sha1:97868a2bdfc2fc79a987b64f1611034b56a3f8c4</id>
<content type='text'>
The way the request data is organized in the mmc queue struct, it only
allows processing of one request at a time.  This patch adds a new struct
to hold mmc queue request data such as sg list, request, blk request and
bounce buffers, and updates any functions depending on the mmc queue
struct. This prepares for using multiple active requests in one mmc queue.

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>
</entry>
<entry>
<title>mmc: block: add checking of r/w command response</title>
<updated>2011-07-20T21:20:55Z</updated>
<author>
<name>Russell King - ARM Linux</name>
</author>
<published>2011-06-20T19:10:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4c2b8f26eb8b54203e0e7834e0f7a11a7ae15ef1'/>
<id>urn:sha1:4c2b8f26eb8b54203e0e7834e0f7a11a7ae15ef1</id>
<content type='text'>
Check the status bits in the r/w command response for any errors.
If error bits are set, then we won't have seen any data transferred,
so it's pointless doing any further checking.

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>
</entry>
<entry>
<title>mmc: block: improve error recovery from command channel errors</title>
<updated>2011-07-20T21:20:54Z</updated>
<author>
<name>Russell King - ARM Linux</name>
</author>
<published>2011-06-20T19:10:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a01f3ccf845067de32189f8a8e85d22c381f93b9'/>
<id>urn:sha1:a01f3ccf845067de32189f8a8e85d22c381f93b9</id>
<content type='text'>
Command channel errors fall into four classes:

1. The command was issued with the card in the wrong state
2. The command failed to be received by the card correctly
3. The cards response failed to be received by the host (CRC error)
4. The card failed to respond to the card

For (1), in theory we should know that the card is in the correct state.
However, a failed stop command (or other failure) may result in the card
remaining in a data transfer state from the previous command.  If we
detect this condition, we try to recover by sending a stop command.

For the initial commands (set block count and the read/write command)
no data will have been transferred.  All that we need deal with is
retrying at this point.  A failed stop command can be remedied as
above.

If we are unable to recover the card (eg, the card ignores our requests
for status, or we don't recognise the error code) then we immediately
fail the request.

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>
</entry>
<entry>
<title>mmc: block: allow get_card_status() to return error status</title>
<updated>2011-07-20T21:20:54Z</updated>
<author>
<name>Russell King - ARM Linux</name>
</author>
<published>2011-06-20T19:10:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0a2d4048a22079d7e79d6654bbacbef57bd5728a'/>
<id>urn:sha1:0a2d4048a22079d7e79d6654bbacbef57bd5728a</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>
</entry>
<entry>
<title>mmc: queue: append partition subname to queue thread name</title>
<updated>2011-06-25T22:52:57Z</updated>
<author>
<name>Adrian Hunter</name>
</author>
<published>2011-06-23T10:40:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d09408ade08a08a710a247fb52aa50101e73ebf7'/>
<id>urn:sha1:d09408ade08a08a710a247fb52aa50101e73ebf7</id>
<content type='text'>
For example, an eMMC with 2 boot partitions will have 3 threads.
The names change from:

   40 ?        00:00:00 mmcqd/0
   41 ?        00:00:00 mmcqd/0
   42 ?        00:00:00 mmcqd/0

to:

   40 ?        00:00:00 mmcqd/0
   41 ?        00:00:00 mmcqd/0boot0
   42 ?        00:00:00 mmcqd/0boot1

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Andrei Warkentin &lt;andreiw@motorola.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
</feed>
