Skip to content

Commit 5ee0d54

Browse files
committed
mmc: Revert to upstream v6.12.87
1 parent ae4d75f commit 5ee0d54

3 files changed

Lines changed: 6 additions & 73 deletions

File tree

drivers/mmc/core/card.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,11 @@ struct mmc_fixup {
8888
#define CID_MANFID_GIGASTONE 0x12
8989
#define CID_MANFID_MICRON 0x13
9090
#define CID_MANFID_SAMSUNG 0x15
91-
#define CID_MANFID_SAMSUNG_SD 0x1b
9291
#define CID_MANFID_APACER 0x27
9392
#define CID_MANFID_SWISSBIT 0x5D
9493
#define CID_MANFID_KINGSTON 0x70
9594
#define CID_MANFID_HYNIX 0x90
9695
#define CID_MANFID_KINGSTON_SD 0x9F
97-
#define CID_MANFID_LONGSYS_SD 0xAD
9896
#define CID_MANFID_NUMONYX 0xFE
9997

10098
#define END_FIXUP { NULL }
@@ -302,9 +300,4 @@ static inline int mmc_card_no_uhs_ddr50_tuning(const struct mmc_card *c)
302300
return c->quirks & MMC_QUIRK_NO_UHS_DDR50_TUNING;
303301
}
304302

305-
static inline int mmc_card_working_sd_cq(const struct mmc_card *c)
306-
{
307-
return c->quirks & MMC_QUIRK_WORKING_SD_CQ;
308-
}
309-
310303
#endif

drivers/mmc/core/quirks.h

Lines changed: 6 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,10 @@
1818
static const struct mmc_fixup __maybe_unused mmc_sd_fixups[] = {
1919
/*
2020
* Kingston Canvas Go! Plus microSD cards never finish SD cache flush.
21-
* This has been observed on cards from 2019/11 and 2021/11, while new
22-
* cards from 2023/05 and 2024/08 do not exhibit this behavior.
21+
* This has so far only been observed on cards from 11/2019, while new
22+
* cards from 2023/05 do not exhibit this behavior.
2323
*/
24-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_KINGSTON_SD, 0x5449, 2019, CID_MONTH_ANY,
25-
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
26-
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
27-
28-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_KINGSTON_SD, 0x5449, 2020, CID_MONTH_ANY,
29-
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
30-
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
31-
32-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_KINGSTON_SD, 0x5449, 2021, CID_MONTH_ANY,
33-
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
34-
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
35-
36-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_KINGSTON_SD, 0x5449, 2022, CID_MONTH_ANY,
24+
_FIXUP_EXT("SD64G", CID_MANFID_KINGSTON_SD, 0x5449, 2019, 11,
3725
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
3826
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
3927

@@ -57,30 +45,10 @@ static const struct mmc_fixup __maybe_unused mmc_sd_fixups[] = {
5745
MMC_QUIRK_NO_UHS_DDR50_TUNING, EXT_CSD_REV_ANY),
5846

5947
/*
60-
* Samsung Pro Plus/EVO Plus/Pro Ultimate SD cards (2023) claim to cache
61-
* flush OK, but become unresponsive afterwards.
62-
*/
63-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_SAMSUNG_SD, 0x534d, 2023, CID_MONTH_ANY,
64-
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
65-
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
66-
67-
/*
68-
* Early Sandisk Extreme and Extreme Pro A2 cards never finish SD cache
69-
* flush in CQ mode. Latest card date this was seen on is 10/2020.
48+
* Some SD cards reports discard support while they don't
7049
*/
71-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, 2019, CID_MONTH_ANY,
72-
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
73-
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
74-
75-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, 2020, CID_MONTH_ANY,
76-
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
77-
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
78-
79-
/* SD A2 allow-list - only trust CQ on these cards */
80-
/* Raspberry Pi A2 cards */
81-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_LONGSYS_SD, 0x4c53, CID_YEAR_ANY, CID_MONTH_ANY,
82-
cid_rev(1, 0, 0, 0), -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
83-
MMC_QUIRK_WORKING_SD_CQ, EXT_CSD_REV_ANY),
50+
MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
51+
MMC_QUIRK_BROKEN_SD_DISCARD),
8452

8553
END_FIXUP
8654
};
@@ -185,29 +153,6 @@ static const struct mmc_fixup __maybe_unused mmc_blk_fixups[] = {
185153
MMC_FIXUP("M62704", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc,
186154
MMC_QUIRK_TRIM_BROKEN),
187155

188-
/*
189-
* Some SD cards reports discard support while they don't
190-
*/
191-
MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
192-
MMC_QUIRK_BROKEN_SD_DISCARD),
193-
194-
/*
195-
* On some Kingston SD cards, multiple erases of less than 64
196-
* sectors can cause corruption.
197-
*/
198-
MMC_FIXUP("SD16G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
199-
MMC_FIXUP("SD32G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
200-
MMC_FIXUP("SD64G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
201-
202-
/*
203-
* Larger Integral SD cards using rebranded Phison controllers trash
204-
* nearby flash blocks after erases.
205-
*/
206-
MMC_FIXUP("SD64G", 0x27, 0x5048, add_quirk, MMC_QUIRK_ERASE_BROKEN),
207-
MMC_FIXUP("SD128", 0x27, 0x5048, add_quirk, MMC_QUIRK_ERASE_BROKEN),
208-
MMC_FIXUP("SD256", 0x27, 0x5048, add_quirk, MMC_QUIRK_ERASE_BROKEN),
209-
MMC_FIXUP("SD512", 0x27, 0x5048, add_quirk, MMC_QUIRK_ERASE_BROKEN),
210-
211156
END_FIXUP
212157
};
213158

include/linux/mmc/card.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,6 @@ struct mmc_card {
296296
#define MMC_QUIRK_BROKEN_CACHE_FLUSH (1<<16) /* Don't flush cache until the write has occurred */
297297
#define MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY (1<<17) /* Disable broken SD poweroff notify support */
298298
#define MMC_QUIRK_NO_UHS_DDR50_TUNING (1<<18) /* Disable DDR50 tuning */
299-
#define MMC_QUIRK_WORKING_SD_CQ (1<<30) /* SD card has known-good CQ implementation */
300-
#define MMC_QUIRK_ERASE_BROKEN (1<<31) /* Skip erase */
301299

302300
bool written_flag; /* Indicates eMMC has been written since power on */
303301
bool reenable_cmdq; /* Re-enable Command Queue */
@@ -322,7 +320,6 @@ struct mmc_card {
322320
struct sd_switch_caps sw_caps; /* switch (CMD6) caps */
323321
struct sd_ext_reg ext_power; /* SD extension reg for PM */
324322
struct sd_ext_reg ext_perf; /* SD extension reg for PERF */
325-
u8 *ext_reg_buf; /* 512 byte block for extension register R/W */
326323

327324
unsigned int sdio_funcs; /* number of SDIO functions */
328325
atomic_t sdio_funcs_probed; /* number of probed SDIO funcs */
@@ -345,8 +342,6 @@ struct mmc_card {
345342
unsigned int nr_parts;
346343

347344
struct workqueue_struct *complete_wq; /* Private workqueue */
348-
349-
unsigned int max_posted_writes; /* command queue posted write limit */
350345
};
351346

352347
static inline bool mmc_large_sector(struct mmc_card *card)

0 commit comments

Comments
 (0)