<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/mmc/card/queue.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-07-20T21:21:15Z</updated>
<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: queue: add a second mmc queue request member</title>
<updated>2011-07-20T21:21:15Z</updated>
<author>
<name>Per Forlin</name>
</author>
<published>2011-07-01T16:55:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=04296b7bfda45295a568b4b312e03828fae801dc'/>
<id>urn:sha1:04296b7bfda45295a568b4b312e03828fae801dc</id>
<content type='text'>
Add an additional mmc queue request instance to make way for two active
block requests. One request may be active while the other request is
being prepared.

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: queue: let host controllers specify maximum discard timeout</title>
<updated>2011-07-20T21:21:03Z</updated>
<author>
<name>Adrian Hunter</name>
</author>
<published>2011-06-28T14:16:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e056a1b5b67b4e4bfad00bf143ab14f634777705'/>
<id>urn:sha1:e056a1b5b67b4e4bfad00bf143ab14f634777705</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>
</entry>
<entry>
<title>mmc: queue: bring discard_granularity/alignment into line with SCSI</title>
<updated>2011-06-25T22:53:05Z</updated>
<author>
<name>Adrian Hunter</name>
</author>
<published>2011-06-23T10:40:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c31b55cd4eaf050bb5a15bd8251da1b3c7edeb1c'/>
<id>urn:sha1:c31b55cd4eaf050bb5a15bd8251da1b3c7edeb1c</id>
<content type='text'>
SCSI defines discard alignment as the offset to the first
optimal discard.  In the case of SD/MMC, that is always zero
which is the default.

SCSI defines discard granularity as a hint of a optimal
discard size.  That is much better expressed by the MMC
"preferred erase size" (pref_erase) field.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.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>
<entry>
<title>mmc: remove redundant irq disabling</title>
<updated>2011-05-25T00:59:17Z</updated>
<author>
<name>John Ogness</name>
</author>
<published>2011-03-25T08:47:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b38c4ebf037290eef27b31bdc37cacf804c7a48'/>
<id>urn:sha1:0b38c4ebf037290eef27b31bdc37cacf804c7a48</id>
<content type='text'>
There is no need to disable irq's when using the sg_copy_*_buffer()
functions because those functions do that already. There are also
no races for the mm_queue struct here that would require the irq's
to be disabled before calling sg_copy_*_buffer().

Signed-off-by: John Ogness &lt;john.ogness@linutronix.de&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>block: remove per-queue plugging</title>
<updated>2011-03-10T07:52:07Z</updated>
<author>
<name>Jens Axboe</name>
</author>
<published>2011-03-10T07:52:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7eaceaccab5f40bbfda044629a6298616aeaed50'/>
<id>urn:sha1:7eaceaccab5f40bbfda044629a6298616aeaed50</id>
<content type='text'>
Code has been converted over to the new explicit on-stack plugging,
and delay users have been converted to use the new API for that.
So lets kill off the old plugging along with aops-&gt;sync_page().

Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>mmc: name mmc queue thread by host index</title>
<updated>2010-10-23T13:11:16Z</updated>
<author>
<name>Ethan Du</name>
</author>
<published>2010-09-30T22:40:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=de528fa3f94da95f7667eb1583178268c3a403d0'/>
<id>urn:sha1:de528fa3f94da95f7667eb1583178268c3a403d0</id>
<content type='text'>
Usually there are multiple mmc host controllers; rename mmc queue thread
by host index so we can easily identify which controller it belongs to.

Signed-off-by: Ethan Du &lt;ethan.too@gmail.com&gt;
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
<entry>
<title>mmc: Convert "mutex" to semaphore</title>
<updated>2010-10-23T13:11:12Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2010-09-14T11:12:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=632cf92a72fecda096d0f4608eaefb2c7392b744'/>
<id>urn:sha1:632cf92a72fecda096d0f4608eaefb2c7392b744</id>
<content type='text'>
Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: linux-mmc@vger.kernel.org
Signed-off-by: Chris Ball &lt;cjb@laptop.org&gt;
</content>
</entry>
</feed>
