Commits for this feature. The commit list is same as LP#1645959 Command Queue support is now dependent on blk-mq (block layer multi-queue) support. Backporting to old release will be a big challenge. Here are the directly-related patches: 925ff3a7a334b3fe968ae15f07d22df21addad26 mmc: mmc: Add Command Queue definitions f12e39dbf3e6eb521435085712addc131d803bfd mmc: sdhci: Add CQE support 9d4579a85c84340044b10ffa6cd576397f59dc93 mmc: mmc_test: Disable Command Queue while mmc_test is used 025e3d5fe157e8a12ed4ab59d0e147046c87cbd9 mmc: block: Disable Command Queue while RPMB is used d2f82254e4e862662e7820953b049b7d4d660ec7 mmc: core: Add members to mmc_request and mmc_data for CQE's d3bf68ae04c7e29ed3c30b7f4b1f0c6a4a11c7f1 mmc: host: Add CQE interface 3e207c8cfaa900590590d2dfdbc5be155f258d7b mmc: core: Turn off CQE before sending commands 6c0cedd1ef9527ef13e66875746570e76a3188a7 mmc: core: Introduce host claiming by context 72a5af554df837e373efb0d6c8fc68c568f9a7ac mmc: core: Add support for handling CQE requests 98d4f7809d99bbf456f93816ef9895616cdd1b2d mmc: mmc: Enable Command Queuing f690f4409ddd79a481efddaf6e4cb65cf1a747cb mmc: mmc: Enable CQE's d3377c012f4d7a0a822e289f1effba997da3e295 mmc: block: Use local variables in mmc_blk_data_prep() 93482b3d70c2120aadb0f1d1281a59199866e70a mmc: block: Prepare CQE data 34c089e806793a66e450b11bd167db6047399fcd mmc: block: Fix missing blk_put_request() fb8e456e547ed2c699f64665bd8a3b9bde7b9728 mmc: block: Check return value of blk_get_request() ebe7dd45cf49e3b49cacbaace17f9f878f21fbea mmc: core: Do not leave the block driver in a suspended state f9f0da98819503b06b35e61869d18cf3a8cd3323 mmc: block: Ensure that debugfs files are removed 4512bd370b111dd7ffc437ddd3179391df68fe1b mmc: block: No need to export mmc_cleanup_queue() 41e3efd07d5a02c80f503e29d755aa1bbb4245de mmc: block: Simplify cleaning up the queue afab1bb8b40c61458e009fdc323c9740f95fcd5b mmc: core: Make mmc_pre_req() and mmc_post_req() available 6d3898a6a517d0effa1d1e337c03b16bafb6fc96 mmc: block: Add error-handling comments c3d53d0da69d127f488dc85638e9440220b268e8 mmc: core: Add parameter use_blk_mq 81196976ed946cbf36bb41ddda402853c7df7cfa mmc: block: Add blk-mq support 1e8e55b67030c6a2fef893d428bdcd611f73705c mmc: block: Add CQE support a4080225f51dcea129d26185a35acfbb3770a32d mmc: cqhci: support for command queue enabled host 8ee82bda230fc972c7ee3bb15ce1260eefb4721c mmc: sdhci-pci: Add CQHCI support for Intel GLK Here are subsequent patches that affect the blk-mq support and should be taken to have equivalent code to upstream: 10f21df4a23540b5da8e88d1030ff8c37818e04f mmc: block: blk-mq: Add support for direct completion 88a516461ee07a994c0e7016faf85f3466de1d09 mmc: block: blk-mq: Separate card polling from recovery c89b4851c67fb7354862850ae181de883269487d mmc: block: Make card_busy_detect() accumulate all response error bits f47a1fe346b1568df0e9b158574b2939432313df mmc: block: blk-mq: Check error bits and save the exception bit when polling card busy 7701885e56cee3de4447c0653f9059b62844983b mmc: block: Check the timeout correctly in card_busy_detect() 0987c6b046e199b9b922a585c62e9503486fe0bc mmc: block: Check for transfer state in card_busy_detect() 92c0a0cc9483c6b9cc1b61273d30a0a601cb5e15 mmc: block: Add timeout_clks when calculating timeout 6b7a363d2ce83e3940dc0c3628e478fe95f23985 mmc: block: Reduce polling timeout from 10 minutes to 10 seconds 7eb43d537166c7d767af450901acd0ecbf94625c mmc: block: blk-mq: Stop using legacy recovery 42f532da3a44843668dbacc1838a028b0a9b7373 mmc: mmc_test: Do not use mmc_start_areq() anymore d2383318c5a626312d166217e3788e54b1650c56 mmc: core: Ensure cmd_completion is initialized 23a185254ace8e63dc4ca36e0315aed9440ae749 mmc: mmc_test: Ensure command queue is disabled for testing 1bec43a3b181baebdf8a4cd739b480a9132601d7 mmc: core: Remove option not to use blk-mq 0fbfd12518303e9b32ac9fd231439459eac848f9 mmc: block: Remove code no longer needed after the switch to blk-mq 126b62700386da782f83579e9b0431ea76c2da3d mmc: core: Remove code no longer needed after the switch to blk-mq 0562315b86372d2cdd9cc8924b92cfab37049fbc mmc: cqhci: Ensure macro parameters are wrapped in parentheses