mirror of
https://github.com/torvalds/linux.git
synced 2026-08-03 13:58:32 +02:00
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> |
||
|---|---|---|
| .. | ||
| block.c | ||
| block.h | ||
| bus.c | ||
| bus.h | ||
| card.h | ||
| core.c | ||
| core.h | ||
| crypto.c | ||
| crypto.h | ||
| debugfs.c | ||
| host.c | ||
| host.h | ||
| Kconfig | ||
| Makefile | ||
| mmc_ops.c | ||
| mmc_ops.h | ||
| mmc_test.c | ||
| mmc.c | ||
| pwrseq_emmc.c | ||
| pwrseq_sd8787.c | ||
| pwrseq_simple.c | ||
| pwrseq.c | ||
| pwrseq.h | ||
| queue.c | ||
| queue.h | ||
| quirks.h | ||
| regulator.c | ||
| sd_ops.c | ||
| sd_ops.h | ||
| sd.c | ||
| sd.h | ||
| sdio_bus.c | ||
| sdio_bus.h | ||
| sdio_cis.c | ||
| sdio_cis.h | ||
| sdio_io.c | ||
| sdio_irq.c | ||
| sdio_ops.c | ||
| sdio_ops.h | ||
| sdio_uart.c | ||
| sdio.c | ||
| slot-gpio.c | ||
| slot-gpio.h | ||