linux/drivers/mmc/core
Adrian Hunter 63f1560930 mmc: core: Fix inconsistent sd3_bus_mode at UHS-I SD voltage switch failure
If re-initialization results is a different signal voltage, because the
voltage switch failed previously, but not this time (or vice versa), then
sd3_bus_mode will be inconsistent with the card because the SD_SWITCH
command is done only upon first initialization.

Fix by always reading SD_SWITCH information during re-initialization, which
also means it does not need to be re-read later for the 1.8V fixup
workaround.

Note, brief testing showed SD_SWITCH took about 1.8ms to 2ms which added
about 1% to 1.5% to the re-initialization time, so it's not particularly
significant.

Reported-by: Seunghui Lee <sh043.lee@samsung.com>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Seunghui Lee <sh043.lee@samsung.com>
Tested-by: Seunghui Lee <sh043.lee@samsung.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220815073321.63382-3-adrian.hunter@intel.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2022-08-22 12:58:28 +02:00
..
block.c MMC core: 2022-08-04 19:41:09 -07:00
block.h
bus.c mmc: core: Use mmc_card_* macro and add a new for the sd_combo type 2022-07-13 12:44:41 +02:00
bus.h mmc: core: use sysfs_emit() instead of sprintf() 2022-02-28 13:06:23 +01:00
card.h mmc: core: transplant ti,wl1251 quirks from to be retired omap_hsmmc 2021-12-14 21:35:24 +01:00
core.c mmc: core: Capture eMMC and SD card errors 2022-07-12 12:25:34 +02:00
core.h mmc: core: Disable card detect during shutdown 2021-12-20 11:09:15 +01:00
crypto.c blk-crypto: rename blk_keyslot_manager to blk_crypto_profile 2021-10-21 10:49:32 -06:00
crypto.h mmc: core: Add basic support for inline encryption 2021-02-01 12:02:33 +01:00
debugfs.c mmc: debugfs: Fix file release memory leak 2022-07-12 12:25:36 +02:00
host.c mmc: core: Do not evaluate HS400 capabilities if bus has no MMC capability 2022-07-12 12:25:38 +02:00
host.h mmc: host: factor out clearing the retune state 2021-08-24 10:15:28 +02:00
Kconfig mmc: pwrseq: add wilc1000_sdio dependency for pwrseq_sd8787 2021-08-24 16:59:38 +02:00
Makefile mmc: core: Add basic support for inline encryption 2021-02-01 12:02:33 +01:00
mmc_ops.c mmc: core: Fix busy polling for MMC_SEND_OP_COND again 2022-05-19 15:46:46 +02:00
mmc_ops.h mmc: core: Restore (almost) the busy polling for MMC_SEND_OP_COND 2022-03-07 11:47:39 +01:00
mmc_test.c mmc: core: improve API to make clear mmc_hw_reset is for cards 2022-04-08 11:00:08 +02:00
mmc.c mmc: core: Add CIDs for cards to the entropy pool 2022-04-26 15:39:37 +02:00
pwrseq_emmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
pwrseq_sd8787.c mmc: pwrseq: sd8787: fix compilation warning 2021-08-25 11:11:16 +02:00
pwrseq_simple.c mmc: pwrseq: Use bitmap_free() to free bitmap 2021-12-28 17:53:42 +01:00
pwrseq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
pwrseq.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
queue.c blk-mq: Drop blk_mq_ops.timeout 'reserved' arg 2022-07-06 06:33:53 -06:00
queue.h mmc: switch to blk_mq_alloc_disk 2021-06-30 15:34:04 -06:00
quirks.h mmc: core: quirks: Add of_node_put() when breaking out of loop 2022-07-21 18:02:41 +02:00
regulator.c mmc: core: Add missing documetation for 'mmc' and 'ios' 2020-07-13 12:18:25 +02:00
sd_ops.c mmc: core: Drop open coding in mmc_sd_switch() 2021-06-14 13:57:36 +02:00
sd_ops.h mmc: core: Initial support for SD express card/host 2020-11-16 11:59:28 +01:00
sd.c mmc: core: Fix inconsistent sd3_bus_mode at UHS-I SD voltage switch failure 2022-08-22 12:58:28 +02:00
sd.h mmc: core: remove unused host parameter of mmc_sd_get_csd() 2021-02-01 11:54:48 +01:00
sdio_bus.c mmc: core: use sysfs_emit() instead of sprintf() 2022-02-28 13:06:23 +01:00
sdio_bus.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sdio_cis.c mmc: sdio: Print contents of unknown CIS tuples 2021-08-24 10:15:33 +02:00
sdio_cis.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sdio_uart.c sdio_uart: make use of UART_LCR_WLEN() + tty_get_char_size() 2022-02-28 22:17:21 +01:00
sdio.c mmc: core: Add support for SDIO wakeup interrupt 2022-07-26 16:58:31 +02:00
slot-gpio.c mmc: slot-gpio: Update default label when no con_id provided 2021-10-12 10:21:20 +02:00
slot-gpio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00