Hi Linus, Here's the PR for MMC for v4.16. Details about the highlights are as usual found in the signed tag. Please pull this in! Kind regards Ulf Hansson The following changes since commit 50c4c4e268a2d7a3e58ebb698ac74da0de40ae36: Linux 4.15-rc3 (2017-12-10 17:56:26 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git tags/mmc-v4.16 for you to fetch changes up to 310eb252a78307fc2ac4c4c755290a578c0304d0: mmc: mmci: fix error return code in mmci_probe() (2018-01-24 13:51:07 +0100) ---------------------------------------------------------------- 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 ---------------------------------------------------------------- Adam Borowski (1): mmc: sunxi: fix mojibake in module metadata Adrian Hunter (31): mmc: block: No need to export mmc_cleanup_queue() mmc: block: Simplify cleaning up the queue mmc: core: Make mmc_pre_req() and mmc_post_req() available mmc: block: Add error-handling comments mmc: core: Add parameter use_blk_mq mmc: block: Add blk-mq support mmc: block: Add CQE support mmc: sdhci-pci: Add CQHCI support for Intel GLK mmc: block: blk-mq: Add support for direct completion mmc: block: blk-mq: Separate card polling from recovery mmc: block: Make card_busy_detect() accumulate all response error bits mmc: block: blk-mq: Check error bits and save the exception bit when polling card busy mmc: block: Check the timeout correctly in card_busy_detect() mmc: block: Check for transfer state in card_busy_detect() mmc: block: Add timeout_clks when calculating timeout mmc: block: Reduce polling timeout from 10 minutes to 10 seconds mmc: block: blk-mq: Stop using legacy recovery mmc: mmc_test: Do not use mmc_start_areq() anymore mmc: core: Ensure cmd_completion is initialized mmc: mmc_test: Ensure command queue is disabled for testing mmc: core: Remove option not to use blk-mq mmc: block: Remove code no longer needed after the switch to blk-mq mmc: core: Remove code no longer needed after the switch to blk-mq mmc: cqhci: Ensure macro parameters are wrapped in parentheses mmc: sdhci-acpi: Add setup_host() callback mmc: sdhci-acpi: Avoid broken UHS transfer modes on Intel CHT mmc: sdhci-pci: Stop calling sdhci_enable_irq_wakeups() mmc: sdhci-pci: Use device wakeup capability to determine MMC_PM_WAKE_SDIO_IRQ capability mmc: sdhci: Stop exporting sdhci_enable_irq_wakeups() mmc: sdhci: Handle failure of enable_irq_wake() mmc: sdhci: Rework sdhci_enable_irq_wakeups() Andy Shevchenko (1): sdhci: Advertise 2.0v supply on SDIO host controller Ard Biesheuvel (1): mmc: sdhci_f_sdh30: add ACPI support Arnd Bergmann (3): mmc_test: use ktime_get_ts64 for timestamps mmc: s3mci: mark debug_regs[] as static mmc: tmio: hide unused tmio_mmc_clk_disable/tmio_mmc_clk_enable functions Arvind Yadav (5): mmc: meson-gx-mmc: Fix platform_get_irq's error checking mmc: s3cmci: Fix platform_get_irq's error checking mmc: sdhci-acpi: Handle return value of platform_get_irq mmc: sdhci-spear: Handle return value of platform_get_irq mmc: sunxi-mmc: Handle return value of platform_get_irq Atul Garg (1): mmc:host:sdhci-pci:Addition of Arasan PCI Controller with integrated phy. Benoît Thébaudeau (1): mmc: sdhci-esdhc-imx: Fix i.MX53 eSDHCv3 clock Christoph Fritz (1): mmc: core: apply NO_CMD23 quirk to some specific cards Colin Ian King (2): mmc: block: make function mmc_cqe_issue_type static mmc: sh_mmcif: remove redundant initialization of 'opc' Dan Carpenter (2): mmc: block: blk-mq: Potential NULL deref on mmc_blk_alloc_req() failure mmc: tmio, renesas_sdhi: Remove unneeded NULL check Daniel Drake (1): mmc: avoid removing non-removable hosts during suspend David Lechner (2): mmc: davinci: dont' use module_platform_driver_probe() mmc: davinci: suppress error message on EPROBE_DEFER Liu, Changcheng (1): mmc: block: fix logical error to avoid memory leak Masaharu Hayakawa (1): mmc: renesas_sdhi: Add MODULE_LICENSE Masahiro Yamada (21): mmc: slot-gpio: call gpiod_to_irq() only when MMC_CAP_NEEDS_POLL is unset mmc: renesas_sdhi: consolidate DMAC CONFIG options mmc: renesas_sdhi: remove wrong depends on to enable compile test mmc: renesas_sdhi: remove eprobe jump label mmc: tmio: set tmio_mmc_host to driver data mmc: tmio: use devm_ioremap_resource() instead of devm_ioremap() mmc: tmio: move mmc_host_ops to struct tmio_mmc_host from static data mmc: tmio, renesas_sdhi: set mmc_host_ops hooks directly mmc: tmio: move mmc_gpio_request_cd() before mmc_add_host() mmc: renesas_sdhi: remove always false condition mmc: tmio, renesas_sdhi: move struct tmio_mmc_dma to renesas_sdhi.h mmc: tmio, renesas_sdhi: move Renesas-specific DMA data to renesas_sdhi.h mmc: tmio,renesas_sdhi: move ssc_tappos to renesas_sdhi.h mmc: tmio: change bus_shift to unsigned int mmc: tmio: use mmc_can_gpio_cd() instead of checking TMIO_MMC_USE_GPIO_CD mmc: tmio: ioremap memory resource in tmio_mmc_host_alloc() mmc: tmio: move clk_enable/disable out of tmio_mmc_host_probe() mmc: tmio: move {tmio_}mmc_of_parse() to tmio_mmc_host_alloc() mmc: tmio: remove dma_ops from tmio_mmc_host_probe() argument mmc: slot-gpio: add a helper to check capability of GPIO WP detection mmc: tmio: refactor .get_ro hook Michael Trimarchi (3): mmc: sdhci-esdhc-imx: Manage sdhci_runtime_suspend_host error code mmc: sdhci-esdhc-imx: Changes the order of how clocks are being re-enabled mmc: sdhci-esdhc-imx: Enable/Disable mmc clock during runtime suspend Milan Stevanovic (1): mmc: sdhci-of-arasan: Add sdhci_arasan_set_power Patrice Chotard (5): mmc: mmci: Don't pretend all variants to have MMCIMASK1 register mmc: mmci: Don't pretend all variants to have MCI_STARBITERR flag mmc: mmci: Don't pretend all variants to have OPENDRAIN bit mmc: mmci: Add support for setting pad type via pinctrl mmc: mmci: Add STM32 variant Pravin Shedge (1): mmc: android-goldfish: remove duplicate includes Sean Wang (1): mmc: dt-bindings: add mmc support to MT7623 SoC Shah Nehal-Bakulchandra (1): mmc: sdhci-acpi: Add support for ACPI HID of AMD Controller with HS400 Shawn Lin (1): mmc: sdhci-of-arasan: Add CQHCI support for arasan,sdhci-5.1 Ulf Hansson (5): Merge branch 'fixes' into next Merge branch 'fixes' into next Merge branch 'fixes' into next Merge branch 'fixes' into next Merge branch 'fixes' into next Ulrich Hecht (2): dt-bindings: mmc: renesas_sdhi: Add r8a77995 support mmc: renesas_sdhi: enable R-Car D3 (r8a77995) support Venkat Gopalakrishnan (1): mmc: cqhci: support for command queue enabled host Wei Yongjun (1): mmc: mmci: fix error return code in mmci_probe() Wolfram Sang (5): mmc: core: properly init drv_type mmc: core: use usleep_range rather than HZ magic in mmc_delay() mmc: tmio: use usleep_range consistently mmc: tmio: use ioread* for repeated access to a register mmc: tmio: use io* accessors consistently Wu Fengguang (1): mmc: block: blk-mq: fix boolreturn.cocci warnings Zhoujie Wu (1): mmc: sdhci-xenon: wait 5ms after set 1.8V signal enable yinbo.zhu (2): mmc: sdhci-of-esdhc: fix eMMC couldn't work after kexec mmc: sdhci-of-esdhc: fix the mmc error after sleep on ls1046ardb Documentation/devicetree/bindings/mmc/mtk-sd.txt | 2 + Documentation/devicetree/bindings/mmc/tmio_mmc.txt | 1 + drivers/mmc/core/block.c | 1385 +++++++++++--------- drivers/mmc/core/block.h | 12 +- drivers/mmc/core/bus.c | 2 - drivers/mmc/core/card.h | 2 + drivers/mmc/core/core.c | 228 +--- drivers/mmc/core/core.h | 47 +- drivers/mmc/core/host.h | 6 +- drivers/mmc/core/mmc.c | 2 +- drivers/mmc/core/mmc_test.c | 221 ++-- drivers/mmc/core/queue.c | 504 ++++--- drivers/mmc/core/queue.h | 64 +- drivers/mmc/core/quirks.h | 8 + drivers/mmc/core/slot-gpio.c | 22 +- drivers/mmc/host/Kconfig | 22 +- drivers/mmc/host/Makefile | 11 +- drivers/mmc/host/android-goldfish.c | 2 - drivers/mmc/host/cqhci.c | 1150 ++++++++++++++++ drivers/mmc/host/cqhci.h | 240 ++++ drivers/mmc/host/davinci_mmc.c | 17 +- drivers/mmc/host/meson-gx-mmc.c | 2 +- drivers/mmc/host/mmci.c | 127 +- drivers/mmc/host/mmci.h | 6 + drivers/mmc/host/renesas_sdhi.h | 22 + drivers/mmc/host/renesas_sdhi_core.c | 52 +- drivers/mmc/host/renesas_sdhi_internal_dmac.c | 15 +- drivers/mmc/host/renesas_sdhi_sys_dmac.c | 37 +- drivers/mmc/host/s3cmci.c | 8 +- drivers/mmc/host/sdhci-acpi.c | 132 +- drivers/mmc/host/sdhci-esdhc-imx.c | 36 +- drivers/mmc/host/sdhci-of-arasan.c | 149 ++- drivers/mmc/host/sdhci-of-esdhc.c | 8 + drivers/mmc/host/sdhci-pci-arasan.c | 331 +++++ drivers/mmc/host/sdhci-pci-core.c | 218 ++- drivers/mmc/host/sdhci-pci.h | 7 +- drivers/mmc/host/sdhci-spear.c | 4 + drivers/mmc/host/sdhci-xenon.c | 7 + drivers/mmc/host/sdhci.c | 57 +- drivers/mmc/host/sdhci.h | 2 +- drivers/mmc/host/sdhci_f_sdh30.c | 52 +- drivers/mmc/host/sh_mmcif.c | 2 +- drivers/mmc/host/sunxi-mmc.c | 9 +- drivers/mmc/host/tmio_mmc.c | 23 +- drivers/mmc/host/tmio_mmc.h | 43 +- drivers/mmc/host/tmio_mmc_core.c | 152 +-- include/linux/mmc/host.h | 5 +- include/linux/mmc/slot-gpio.h | 1 + 48 files changed, 4009 insertions(+), 1446 deletions(-) create mode 100644 drivers/mmc/host/cqhci.c create mode 100644 drivers/mmc/host/cqhci.h create mode 100644 drivers/mmc/host/sdhci-pci-arasan.c -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html