Hi Here are patches to enable hardware command queue (Command Queue Engine or CQE) and software command queue. Ritesh Harjani graciously agreed the use of their driver which has been re-named CQHCI to match the JEDEC specification and has some more features added. The first 13 patches enable software command queue. Earlier versions have been submitted before. The hardware command queue patches are now functionally complete, enabling all block requests (read/write/discard/flush) as well as re-tuning and recovery. The patches can also be found here: http://git.infradead.org/users/ahunter/linux-sdhci.git/shortlog/refs/heads/cqe Adrian Hunter (38): mmc: block: Use local var for mqrq_cur mmc: queue: Share mmc request array between partitions mmc: block: Introduce queue semantics mmc: core: Do not prepare a new request twice mmc: mmc: Add functions to enable / disable the Command Queue mmc: mmc_test: Disable Command Queue while mmc_test is used mmc: block: Disable Command Queue while RPMB is used mmc: core: Export mmc_retune_hold() and mmc_retune_release() mmc: queue: Add a function to control wake-up on new requests mmc: block: Change mmc_apply_rel_rw() to get block address from the request mmc: block: Factor out data preparation mmc: block: Add Software Command Queuing mmc: mmc: Enable Software Command Queuing mmc: core: Factor out debug prints from mmc_start_request() mmc: core: Factor out mrq preparation from mmc_start_request() mmc: core: Add mmc_retune_hold_now() mmc: core: Add members to mmc_request and mmc_data for CQE's mmc: host: Add CQE interface mmc: core: Turn off CQE before sending commands mmc: core: Add support for handling CQE requests mmc: mmc: Enable CQE's mmc: block: Prepare CQE data mmc: block: Add CQE support mmc: sdhci: Improve debug print format mmc: sdhci: Add response register to register dump mmc: sdhci: Improve register dump print format mmc: sdhci: Export sdhci_dumpregs mmc: sdhci: Get rid of 'extern' in header file mmc: sdhci: Add sdhci_cleanup_host mmc: sdhci: Factor out sdhci_set_default_irqs mmc: sdhci: Add CQE support mmc: sdhci-pci: Let devices define how to add the host mmc: sdhci-pci: Do not use suspend/resume callbacks with runtime pm mmc: sdhci-pci: Conditionally compile pm sleep functions mmc: sdhci-pci: Let suspend/resume callbacks replace default callbacks mmc: sdhci-pci: Add runtime suspend/resume callbacks mmc: sdhci-pci: Move a function to avoid later forward declaration mmc: sdhci-pci: Add CQHCI support for Intel GLK Venkat Gopalakrishnan (1): mmc: cqhci: support for command queue enabled host Documentation/mmc/mmc-dev-attrs.txt | 1 + drivers/mmc/core/block.c | 1021 ++++++++++++++++++++++++++---- drivers/mmc/core/block.h | 7 + drivers/mmc/core/bus.c | 7 + drivers/mmc/core/core.c | 212 ++++++- drivers/mmc/core/host.c | 8 + drivers/mmc/core/host.h | 1 + drivers/mmc/core/mmc.c | 41 +- drivers/mmc/core/mmc_ops.c | 28 + drivers/mmc/core/mmc_ops.h | 2 + drivers/mmc/core/mmc_test.c | 22 +- drivers/mmc/core/queue.c | 630 +++++++++++++++---- drivers/mmc/core/queue.h | 68 +- drivers/mmc/host/Kconfig | 14 + drivers/mmc/host/Makefile | 1 + drivers/mmc/host/cqhci.c | 1148 ++++++++++++++++++++++++++++++++++ drivers/mmc/host/cqhci.h | 228 +++++++ drivers/mmc/host/sdhci-pci-core.c | 499 ++++++++++----- drivers/mmc/host/sdhci-pci-o2micro.c | 4 +- drivers/mmc/host/sdhci-pci.h | 11 + drivers/mmc/host/sdhci.c | 324 +++++++--- drivers/mmc/host/sdhci.h | 54 +- include/linux/mmc/card.h | 8 + include/linux/mmc/core.h | 20 +- include/linux/mmc/host.h | 25 + include/trace/events/mmc.h | 17 +- 26 files changed, 3871 insertions(+), 530 deletions(-) create mode 100644 drivers/mmc/host/cqhci.c create mode 100644 drivers/mmc/host/cqhci.h Regards Adrian -- 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