mmc: core: sd: Apply BROKEN_SD_DISCARD quirk earlier
authorAvri Altman <avri.altman@sandisk.com>
Mon, 26 May 2025 11:44:45 +0000 (14:44 +0300)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 9 Jun 2025 13:19:12 +0000 (15:19 +0200)
Move the BROKEN_SD_DISCARD quirk for certain SanDisk SD cards from the
`mmc_blk_fixups[]` to `mmc_sd_fixups[]`. This ensures the quirk is
applied earlier in the device initialization process, aligning with the
reasoning in [1]. Applying the quirk sooner prevents the kernel from
incorrectly enabling discard support on affected cards during initial
setup.

[1] https://lore.kernel.org/all/20240820230631.GA436523@sony.com

Fixes: 07d2872bf4c8 ("mmc: core: Add SD card quirk for broken discard")
Signed-off-by: Avri Altman <avri.altman@sandisk.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20250526114445.675548-1-avri.altman@sandisk.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/quirks.h

index 7f893bafaa607d1e853e060b96bed88e57194de2..c417ed34c05767dbb4818aa153683b04577a32dc 100644 (file)
@@ -44,6 +44,12 @@ static const struct mmc_fixup __maybe_unused mmc_sd_fixups[] = {
                   0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
                   MMC_QUIRK_NO_UHS_DDR50_TUNING, EXT_CSD_REV_ANY),
 
+       /*
+        * Some SD cards reports discard support while they don't
+        */
+       MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
+                 MMC_QUIRK_BROKEN_SD_DISCARD),
+
        END_FIXUP
 };
 
@@ -147,12 +153,6 @@ static const struct mmc_fixup __maybe_unused mmc_blk_fixups[] = {
        MMC_FIXUP("M62704", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc,
                  MMC_QUIRK_TRIM_BROKEN),
 
-       /*
-        * Some SD cards reports discard support while they don't
-        */
-       MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
-                 MMC_QUIRK_BROKEN_SD_DISCARD),
-
        END_FIXUP
 };