linux/drivers/mmc/core
Jonathan Bell 469e5e4713 mmc: core: apply SD quirks earlier during probe
Applying MMC_QUIRK_BROKEN_SD_CACHE is broken, as the card's SD quirks are
referenced in sd_parse_ext_reg_perf() prior to the quirks being initialized
in mmc_blk_probe().

To fix this problem, let's split out an SD-specific list of quirks and
apply in mmc_sd_init_card() instead. In this way, sd_read_ext_regs() to has
the available information for not assigning the SD_EXT_PERF_CACHE as one of
the (un)supported features, which in turn allows mmc_sd_init_card() to
properly skip execution of sd_enable_cache().

Fixes: c467c8f081 ("mmc: Add MMC_QUIRK_BROKEN_SD_CACHE for Kingston Canvas Go Plus from 11/2019")
Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
Co-developed-by: Keita Aihara <keita.aihara@sony.com>
Signed-off-by: Keita Aihara <keita.aihara@sony.com>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240820230631.GA436523@sony.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2024-08-26 13:07:26 +02:00
..
block.c block: move cache control settings out of queue->flags 2024-06-19 07:58:28 -06:00
block.h
bus.c mmc: core: constify the struct device_type usage 2024-02-27 13:48:36 +01:00
bus.h mmc: core: constify the struct device_type usage 2024-02-27 13:48:36 +01:00
card.h mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC Q2J54A 2023-11-03 12:01:32 +01:00
core.c mmc: add missing MODULE_DESCRIPTION() macros 2024-06-20 14:40:55 +02:00
core.h
crypto.c
crypto.h
debugfs.c mmc: debugfs: add card entry for quirks 2024-04-02 12:25:08 +02:00
host.c mmc: core: Remove unused of_gpio.h 2024-04-02 12:21:38 +02:00
host.h
Kconfig
Makefile
mmc.c mmc: core: constify the struct device_type usage 2024-02-27 13:48:36 +01:00
mmc_ops.c mmc: core: Align to common busy polling behaviour for mmc ioctls 2023-02-15 13:24:03 +01:00
mmc_ops.h mmc: core: Add host specific tuning support for SD HS mode 2023-08-25 11:45:51 +02:00
mmc_test.c mmc: mmc_test: Fix NULL dereference on allocation failure 2024-08-20 13:47:36 +02:00
pwrseq.c
pwrseq.h
pwrseq_emmc.c mmc: add missing MODULE_DESCRIPTION() macros 2024-06-20 14:40:55 +02:00
pwrseq_sd8787.c mmc: add missing MODULE_DESCRIPTION() macros 2024-06-20 14:40:55 +02:00
pwrseq_simple.c mmc: add missing MODULE_DESCRIPTION() macros 2024-06-20 14:40:55 +02:00
queue.c block: move the stable_writes flag to queue_limits 2024-06-19 07:58:28 -06:00
queue.h block: move cache control settings out of queue->flags 2024-06-19 07:58:28 -06:00
quirks.h mmc: core: apply SD quirks earlier during probe 2024-08-26 13:07:26 +02:00
regulator.c mmc: core: add helpers mmc_regulator_enable/disable_vqmmc 2023-03-23 11:38:34 +01:00
sd.c mmc: core: apply SD quirks earlier during probe 2024-08-26 13:07:26 +02:00
sd.h mmc: core: constify the struct device_type usage 2024-02-27 13:48:36 +01:00
sd_ops.c mmc: core: Increase the timeout period of the ACMD41 command 2024-05-03 14:28:27 +02:00
sd_ops.h mmc: core: Add host specific tuning support for SD HS mode 2023-08-25 11:45:51 +02:00
sdio.c mmc: core: constify the struct device_type usage 2024-02-27 13:48:36 +01:00
sdio_bus.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
sdio_bus.h
sdio_cis.c mmc: sdio: fix possible resource leaks in some error paths 2023-02-14 00:06:22 +01:00
sdio_cis.h
sdio_io.c
sdio_irq.c
sdio_ops.c
sdio_ops.h
sdio_uart.c mmc: add missing MODULE_DESCRIPTION() macros 2024-06-20 14:40:55 +02:00
slot-gpio.c mmc: slot-gpio: Use irq_handler_t type 2024-04-26 06:47:04 +02:00
slot-gpio.h