Comment 4 for bug 1685723

Revision history for this message
quanxian (quanxian-wang) wrote :

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