kernel_optimize_test/drivers/mmc/core
Bean Huo 39ac3e1945 mmc: block: Disable CMDQ on the ioctl path
commit 70b52f09080565030a530a784f1c9948a7f48ca3 upstream.

According to the eMMC Spec:
"When command queuing is enabled (CMDQ Mode En bit in CMDQ_MODE_EN
field is set to ‘1’) class 11 commands are the only method through
which data transfer tasks can be issued. Existing data transfer
commands, namely CMD18/CMD17 and CMD25/CMD24, are not supported when
command queuing is enabled."
which means if CMDQ is enabled, the FFU commands will not be supported.
To fix this issue, just simply disable CMDQ on the ioctl path, and
re-enable CMDQ once ioctl request is completed.

Tested-by: Michael Brunner <Michael.Brunner@kontron.com>
Signed-off-by: Bean Huo <beanhuo@micron.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Fixes: 1e8e55b670 (mmc: block: Add CQE support)
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20210504203209.361597-1-huobean@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-07-14 16:56:54 +02:00
..
block.c mmc: block: Disable CMDQ on the ioctl path 2021-07-14 16:56:54 +02:00
block.h
bus.c mmc: cqhci: Fix random crash when remove mmc module/card 2021-03-17 17:06:28 +01:00
bus.h
card.h
core.c mmc: core: Fix hanging on I/O during system suspend for removable cards 2021-05-11 14:47:14 +02:00
core.h mmc: core: Fix hanging on I/O during system suspend for removable cards 2021-05-11 14:47:14 +02:00
debugfs.c
host.c mmc: core: Fix hanging on I/O during system suspend for removable cards 2021-05-11 14:47:14 +02:00
host.h
Kconfig
Makefile
mmc_ops.c mmc: block: Issue a cache flush only when it's enabled 2021-05-11 14:47:14 +02:00
mmc_ops.h
mmc_test.c mmc: test: remove ambiguity in test description 2020-09-07 09:11:29 +02:00
mmc.c mmc: block: Issue a cache flush only when it's enabled 2021-05-11 14:47:14 +02:00
pwrseq_emmc.c
pwrseq_sd8787.c
pwrseq_simple.c
pwrseq.c
pwrseq.h
queue.c mmc: core: don't initialize block size from ext_csd if not present 2021-01-27 11:54:54 +01:00
queue.h
quirks.h mmc: core: Mark fixups as __maybe_unused 2020-07-13 12:18:25 +02:00
regulator.c mmc: core: Add missing documetation for 'mmc' and 'ios' 2020-07-13 12:18:25 +02:00
sd_ops.c
sd_ops.h
sd.c mmc: core: Set read only for SD cards with permanent write protect bit 2021-05-11 14:47:14 +02:00
sd.h
sdio_bus.c mmc: sdio: Export SDIO revision and info strings to userspace 2020-09-07 09:11:29 +02:00
sdio_bus.h
sdio_cis.c mmc: core: Limit retries when analyse of SDIO tuples fails 2021-02-10 09:29:18 +01:00
sdio_cis.h
sdio_io.c mmc: core: Provide description for sdio_set_host_pm_flags()'s 'flag' arg 2020-07-13 12:18:25 +02:00
sdio_irq.c sched,mmc: Convert to sched_set_fifo*() 2020-06-15 14:10:22 +02:00
sdio_ops.c mmc: sdio: Use mmc_pre_req() / mmc_post_req() 2020-09-07 08:57:44 +02:00
sdio_ops.h
sdio_uart.c
sdio.c mmc: core: Fix hanging on I/O during system suspend for removable cards 2021-05-11 14:47:14 +02:00
slot-gpio.c
slot-gpio.h