There are two major achievements for MMC in this release, which deserves to be
specially highlighted.

First, we have converted the MMC block device from using the legacy blk
interface into using the modern blkmq interface. Not only do we get all the
nice effects from using blkmq, but it also means that new fresh nice code
replaces old rusty code. Great news to everybody that cares about MMC/SD!

It should also be noted that converting to blkmq has not been trivial, mostly
because of that we have been carrying too much of MMC specific optimizations
for the I/O request path, rather than striving to move these to the generic blk
layer. Hopefully we won't be doing that mistake, ever again.

Special thanks to Adrian Hunter (Intel) and to Linus Walleij (Linaro), who both
have been working on this for quite some time!

Second, on top of the blkmq deployment, we have enabled full support the eMMC
command queuing feature, introduced in the eMMC v.5.1 spec. This also includes
an implementation of a host driver library, supporting the corresponding CQHCI
HW. Ideally, those controllers that supports CQHCI should only need some minor
adaptations to make this play.

So far the sdhci-pci driver for the Intel GLKs and the sdhci-of-arasan driver
used on Rockchip RK3399, have enabled support for eMMC command queueing.

Worth to highlight is also that, implementing the eMMC command queuing support
has been a collaborative effort, as several people from Codeaurora, Rockchip,
Intel and Linaro have been involved. However, the work has been driven by
Adrian Hunter (Intel).

In some shadow of the above, here are the rest of the highlights:

MMC core:
 - Don't remove non-removable cards during system suspend
 - Add a slot-gpio helper to check capability of GPIO WP detection

MMC host:
 - sdhci: Cleanups and improvements of some wakeup related code
 - sdhci-pci-arasan: New variant to support Arasan PCI HW with integrated phy
 - sdhci-acpi: Avoid broken UHS transfer modes on Intel CHT
 - sdhci-acpi: Add support for ACPI HID of AMD Controller with HS400
 - sdhci_f_sdh30: Add ACPI support
 - sdhci-esdhc-imx: Enable/disable clock at runtime suspend/resume
 - sdhci-of-esdhc: A few minor fixes
 - mmci: Add support for new STM32 variant
 - renesas_sdhi: enable R-Car D3 (r8a77995) support
 - tmio/renesas_sdhi: Re-structuring, cleanups and modernizations
mmc: mmci: fix error return code in mmci_probe()

Fix to return a negative error code from the error handling
case instead of 0, as done elsewhere in this function.

Fixes: f9bb304ce855 ("mmc: mmci: Add support for setting pad type via pinctrl")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
1 file changed