mirror-linux/drivers/mmc/core
Yann Gautier 39a72dbfe1 mmc: core: properly select voltage range without power cycle
In mmc_select_voltage(), if there is no full power cycle, the voltage
range selected at the end of the function will be on a single range
(e.g. 3.3V/3.4V). To keep a range around the selected voltage (3.2V/3.4V),
the mask shift should be reduced by 1.

This issue was triggered by using a specific SD-card (Verbatim Premium
16GB UHS-1) on an STM32MP157C-DK2 board. This board cannot do UHS modes
and there is no power cycle. And the card was failing to switch to
high-speed mode. When adding the range 3.2V/3.3V for this card with the
proposed shift change, the card can switch to high-speed mode.

Fixes: ce69d37b7d ("mmc: core: Prevent violation of specs while initializing cards")
Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20221028073740.7259-1-yann.gautier@foss.st.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2022-11-16 13:58:01 +01:00
..
Kconfig mmc: pwrseq: add wilc1000_sdio dependency for pwrseq_sd8787 2021-08-24 16:59:38 +02:00
Makefile
block.c mmc: block: Remove error check of hw_reset on reset 2022-10-17 11:51:33 +02: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: Add SD card quirk for broken discard 2022-10-06 13:31:13 +02:00
core.c mmc: core: properly select voltage range without power cycle 2022-11-16 13:58:01 +01: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
debugfs.c mmc: debugfs: Fix file release memory leak 2022-07-12 12:25:36 +02:00
host.c mmc: core: Switch to basic workqueue API for sdio_irq_work 2022-09-14 11:53:47 +02:00
host.h mmc: host: factor out clearing the retune state 2021-08-24 10:15:28 +02:00
mmc.c mmc: core: Add CIDs for cards to the entropy pool 2022-04-26 15:39:37 +02: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
pwrseq.c
pwrseq.h
pwrseq_emmc.c
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
queue.c mmc: core: Fix WRITE_ZEROES CQE handling 2022-10-24 19:14:17 +02:00
queue.h
quirks.h mmc: core: Add SD card quirk for broken discard 2022-10-06 13:31:13 +02:00
regulator.c
sd.c mmc: core: Terminate infinite loop in SD-UHS voltage switch 2022-09-21 14:36:08 +02:00
sd.h
sd_ops.c
sd_ops.h
sdio.c mmc: core: Switch to basic workqueue API for sdio_irq_work 2022-09-14 11:53:47 +02:00
sdio_bus.c mmc: core: Fix kernel panic when remove non-standard SDIO card 2022-10-17 11:51:34 +02:00
sdio_bus.h
sdio_cis.c mmc: sdio: Print contents of unknown CIS tuples 2021-08-24 10:15:33 +02:00
sdio_cis.h
sdio_io.c
sdio_irq.c mmc: core: Switch to basic workqueue API for sdio_irq_work 2022-09-14 11:53:47 +02:00
sdio_ops.c
sdio_ops.h
sdio_uart.c tty: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +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