<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/mmc/card, branch linux-4.5.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.5.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.5.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-06-01T19:16:59Z</updated>
<entry>
<title>mmc: longer timeout for long read time quirk</title>
<updated>2016-06-01T19:16:59Z</updated>
<author>
<name>Matt Gumbel</name>
</author>
<published>2016-05-20T07:33:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=67bfab0a4c0ea829d51d7cb20db7da7be04caa42'/>
<id>urn:sha1:67bfab0a4c0ea829d51d7cb20db7da7be04caa42</id>
<content type='text'>
commit 32ecd320db39bcb007679ed42f283740641b81ea upstream.

008GE0 Toshiba mmc in some Intel Baytrail tablets responds to
MMC_SEND_EXT_CSD in 450-600ms.

This patch will...

() Increase the long read time quirk timeout from 300ms to 600ms. Original
   author of that quirk says 300ms was only a guess and that the number
   may need to be raised in the future.

() Add this specific MMC to the quirk

Signed-off-by: Matt Gumbel &lt;matthew.k.gumbel@intel.com&gt;
Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: block: Use the mmc host device index as the mmcblk device index</title>
<updated>2016-05-04T21:48:57Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2016-04-06T14:12:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=58821da858919f93f85c7e6823b49d439722a9e9'/>
<id>urn:sha1:58821da858919f93f85c7e6823b49d439722a9e9</id>
<content type='text'>
commit 9aaf3437aa72ed5370bf32c99580a3fa2c330e3d upstream.

Commit 520bd7a8b415 ("mmc: core: Optimize boot time by detecting cards
simultaneously") causes regressions for some platforms.

These platforms relies on fixed mmcblk device indexes, instead of
deploying the defacto standard with UUID/PARTUUID. In other words their
rootfs needs to be available at hardcoded paths, like /dev/mmcblk0p2.

Such guarantees have never been made by the kernel, but clearly the above
commit changes the behaviour. More precisely, because of that the order
changes of how cards becomes detected, so do their corresponding mmcblk
device indexes.

As the above commit significantly improves boot time for some platforms
(magnitude of seconds), let's avoid reverting this change but instead
restore the behaviour of how mmcblk device indexes becomes picked.

By using the same index for the mmcblk device as for the corresponding mmc
host device, the probe order of mmc host devices decides the index we get
for the mmcblk device.

For those platforms that suffers from a regression, one could expect that
this updated behaviour should be sufficient to meet their expectations of
"fixed" mmcblk device indexes.

Another side effect from this change, is that the same index is used for
the mmc host device, the mmcblk device and the mmc block queue. That
should clarify their relationship.

Reported-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Reported-by: Laszlo Fiat &lt;laszlo.fiat@gmail.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Fixes: 520bd7a8b415 ("mmc: core: Optimize boot time by detecting cards
simultaneously")
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mmc: block: fix ABI regression of mmc_blk_ioctl</title>
<updated>2016-04-12T14:33:43Z</updated>
<author>
<name>Shawn Lin</name>
</author>
<published>2016-03-16T10:15:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3c5f48963fd4695517693a325863418ca2748e61'/>
<id>urn:sha1:3c5f48963fd4695517693a325863418ca2748e61</id>
<content type='text'>
commit 83c742c344c08c2bbe338d45c6ec63110e9d5e3d upstream.

If mmc_blk_ioctl returns -EINVAL, blkdev_ioctl continues to
work without returning err to user-space. But now we check
CAP_SYS_RAWIO firstly, so we return -EPERM to blkdev_ioctl,
which make blkdev_ioctl return -EPERM to user-space directly.
So this will break all the ioctl with BLKROSET. Now we find
Android-adb suffer it for the following log:

remount of /system failed;
couldn't make block device writable: Operation not permitted
openat(AT_FDCWD, "/dev/block/platform/ff420000.dwmmc/by-name/system", O_RDONLY) = 3
ioctl(3, BLKROSET, 0)  = -1 EPERM (Operation not permitted)

Fixes: a5f5774c55a2 ("mmc: block: Add new ioctl to send multi commands")
Signed-off-by: Shawn Lin &lt;shawn.lin@rock-chips.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Revert "mmc: block: don't use parameter prefix if built as module"</title>
<updated>2016-02-11T15:49:35Z</updated>
<author>
<name>Ulf Hansson</name>
</author>
<published>2016-02-11T15:42:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a5ebb87db84392edfd3142c3a6a78431d820a789'/>
<id>urn:sha1:a5ebb87db84392edfd3142c3a6a78431d820a789</id>
<content type='text'>
This reverts commit 829b6962f7e3cfc06f7c5c26269fd47ad48cf503.

Revert this change as it causes a sysfs path to change and therefore
introduces and ABI regression. More precisely Android's vold is not being
able to access /sys/module/mmcblk/parameters/perdev_minors any more, since
the path becomes changed to: "/sys/module/mmc_block/..."

Fixes: 829b6962f7e3 ("mmc: block: don't use parameter prefix if built as
module")
Reported-by: John Stultz &lt;john.stultz@linaro.org&gt;
Cc: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: block: return error on failed mmc_blk_get()</title>
<updated>2016-02-10T08:12:34Z</updated>
<author>
<name>Olof Johansson</name>
</author>
<published>2016-02-09T17:34:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f00ab14c252ac459e86194747a1f580ab503c954'/>
<id>urn:sha1:f00ab14c252ac459e86194747a1f580ab503c954</id>
<content type='text'>
This used to return -EFAULT, but the function above returns -EINVAL on
the same condition so let's stick to that.

The removal of error return on this path was introduced with b093410c9aef
('mmc: block: copy resp[] data on err for MMC_IOC_MULTI_CMD').

Fixes: b093410c9aef ('mmc: block: copy resp[] data on err for MMC_IOC_MULTI_CMD').
Signed-off-by: Olof Johansson &lt;olof@lixom.net&gt;
Cc: Grant Grundler &lt;grundler@google.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: block: Allow more than 8 partitions per card</title>
<updated>2015-12-28T11:51:38Z</updated>
<author>
<name>Colin Cross</name>
</author>
<published>2015-10-22T17:00:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=382c55f88ffeb218c446bf0c46d0fc25d2795fe2'/>
<id>urn:sha1:382c55f88ffeb218c446bf0c46d0fc25d2795fe2</id>
<content type='text'>
It is quite common for Android devices to utilize more
then 8 partitions on internal eMMC storage.

The vanilla kernel can support this via
CONFIG_MMC_BLOCK_MINORS, however that solution caps the
system to 256 minors total, which limits the number of
mmc cards the system can support.

This patch, which has been carried for quite awhile in
the AOSP common tree, provides an alternative solution
that doesn't seem to limit the total card count. So I
wanted to submit it for consideration upstream.

This patch sets the GENHD_FL_EXT_DEVT flag, which will
allocate minor number in major 259 for partitions past
disk-&gt;minors.

It also removes the use of disk_devt to determine devidx
from md-&gt;disk. md-&gt;disk-&gt;first_minor is always initialized
from devidx and can always be used to recover it.

Cc: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Cc: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Cc: Chuanxiao Dong &lt;chuanxiao.dong@intel.com&gt;
Cc: Shawn Lin &lt;shawn.lin@rock-chips.com&gt;
Cc: Austin S Hemmelgarn &lt;ahferroin7@gmail.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Android Kernel Team &lt;kernel-team@android.com&gt;
Cc: linux-mmc@vger.kernel.org
Signed-off-by: Colin Cross &lt;ccross@android.com&gt;
[jstultz: Added context to commit message]
Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: block: change to use kmalloc when copy data from userspace</title>
<updated>2015-12-22T10:32:05Z</updated>
<author>
<name>yalin wang</name>
</author>
<published>2015-11-12T11:27:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1ff8950c04331883b11c5e0d6db96e2da8b6f8c9'/>
<id>urn:sha1:1ff8950c04331883b11c5e0d6db96e2da8b6f8c9</id>
<content type='text'>
Use kmalloc instead of kzalloc, as zeroing the memory isn't needed.

Signed-off-by: yalin wang &lt;yalin.wang2010@gmail.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: remove bondage between REQ_META and reliable write</title>
<updated>2015-11-09T13:04:52Z</updated>
<author>
<name>Luca Porzio</name>
</author>
<published>2015-11-06T15:12:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d3df0465db00cf4ed9f90d0bfc3b827d32b9c796'/>
<id>urn:sha1:d3df0465db00cf4ed9f90d0bfc3b827d32b9c796</id>
<content type='text'>
Anytime a write operation is performed with Reliable Write flag enabled,
the eMMC device is enforced to bypass the cache and do a write to the
underling NVM device by Jedec specification; this causes a performance
penalty since write operations can't be optimized by the device cache.

In our tests, we replayed a typical mobile daily trace pattern and found
~9% overall time reduction in trace replay by using this patch. Also the
write ops within 4KB~64KB chunk size range get a 40~60% performance
improvement by using the patch (as this range of write chunks are the ones
affected by REQ_META).

This patch has been discussed in the Mobile &amp; Embedded Linux Storage Forum
and it's the results of feedbacks from many people. We also checked with
fsdevl and f2fs mailing list developers that this change in the usage of
REQ_META is not affecting FS behavior and we got positive feedbacks.
Reporting here the feedbacks:
http://comments.gmane.org/gmane.linux.file-systems/97219
http://thread.gmane.org/gmane.linux.file-systems.f2fs/3178/focus=3183

Signed-off-by: Bruce Ford &lt;bford@micron.com&gt;
Signed-off-by: Luca Porzio &lt;lporzio@micron.com&gt;
Fixes: ce39f9d17c14 ("mmc: support packed write command for eMMC4.5 devices")
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: block: copy resp[] data on err for MMC_IOC_MULTI_CMD</title>
<updated>2015-10-26T15:00:03Z</updated>
<author>
<name>Grant Grundler</name>
</author>
<published>2015-09-24T01:30:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b093410c9aef29efbf2f4af7b00b2dcc1c119fe8'/>
<id>urn:sha1:b093410c9aef29efbf2f4af7b00b2dcc1c119fe8</id>
<content type='text'>
MMC_IOC_CMD and MMC_IOC_MULTI_CMD ioctl() code currently bails on
any eMMC errors. However, in case there is any resp[] data, we
should attempt to copy resp[] back to user space. The user app
can then determine which command(s) failed in the MMC_IOC_MULTI_CMD
case AND/OR report better diagnostics in both cases.

Gwendal Grignou provided the idea and it was previously implemented
and tested on v3.18 ChromeOS kernel:
    https://chromium-review.googlesource.com/#/c/299956

Signed-off-by: Grant Grundler &lt;grundler@chromium.org&gt;
Reviewed-by: Hyung Taek Ryoo &lt;hryoo@nvidia.com&gt;
Reviewed-by: Gwendal Grignou &lt;gwendal@chromium.org&gt;
Tested-by: David Riley &lt;davidriley@chromium.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: block: Add new ioctl to send multi commands</title>
<updated>2015-10-26T15:00:00Z</updated>
<author>
<name>Jon Hunter</name>
</author>
<published>2015-09-22T09:27:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a5f5774c55a2e3ed75f4d6c5556b7bfcb726e6f0'/>
<id>urn:sha1:a5f5774c55a2e3ed75f4d6c5556b7bfcb726e6f0</id>
<content type='text'>
Certain eMMC devices allow vendor specific device information to be read
via a sequence of vendor commands. These vendor commands must be issued
in sequence and an atomic fashion. One way to support this would be to
add an ioctl function for sending a sequence of commands to the device
atomically as proposed here. These multi commands are simple array of
the existing mmc_ioc_cmd structure.

The structure passed via the ioctl uses a __u64 type to specify the number
of commands (so that the structure is aligned on a 64-bit boundary) and a
zero length array as a header for list of commands to be issued. The
maximum number of commands that can be sent is determined by
MMC_IOC_MAX_CMDS (which defaults to 255 and should be more than
sufficient).

This based upon work by Seshagiri Holi &lt;sholi@nvidia.com&gt;.

Signed-off-by: Seshagiri Holi &lt;sholi@nvidia.com&gt;
Signed-off-by: Jon Hunter &lt;jonathanh@nvidia.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
</feed>
