Skip to content

Commit b68b3ce

Browse files
committed
mmc: Partial revert to upstream v6.18.29
1 parent cf8a9a1 commit b68b3ce

3 files changed

Lines changed: 3 additions & 81 deletions

File tree

drivers/mmc/core/card.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +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
95-
#define CID_MANFID_TRANSCEND_SD 0x74
9694
#define CID_MANFID_HYNIX 0x90
9795
#define CID_MANFID_KINGSTON_SD 0x9F
98-
#define CID_MANFID_LONGSYS_SD 0xAD
9996
#define CID_MANFID_NUMONYX 0xFE
10097

10198
#define END_FIXUP { NULL }
@@ -308,9 +305,4 @@ static inline int mmc_card_no_uhs_ddr50_tuning(const struct mmc_card *c)
308305
return c->quirks & MMC_QUIRK_NO_UHS_DDR50_TUNING;
309306
}
310307

311-
static inline int mmc_card_working_sd_cq(const struct mmc_card *c)
312-
{
313-
return c->quirks & MMC_QUIRK_WORKING_SD_CQ;
314-
}
315-
316308
#endif

drivers/mmc/core/quirks.h

Lines changed: 3 additions & 68 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

@@ -62,36 +50,6 @@ static const struct mmc_fixup __maybe_unused mmc_sd_fixups[] = {
6250
MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
6351
MMC_QUIRK_BROKEN_SD_DISCARD),
6452

65-
/*
66-
* Samsung Pro Plus/EVO Plus/Pro Ultimate SD cards (2023) claim to cache
67-
* flush OK, but become unresponsive afterwards.
68-
*/
69-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_SAMSUNG_SD, 0x534d, 2023, CID_MONTH_ANY,
70-
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
71-
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
72-
73-
/*
74-
* Early Sandisk Extreme and Extreme Pro A2 cards never finish SD cache
75-
* flush in CQ mode. Latest card date this was seen on is 10/2020.
76-
*/
77-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, 2019, CID_MONTH_ANY,
78-
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
79-
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
80-
81-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, 2020, CID_MONTH_ANY,
82-
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
83-
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
84-
85-
/* SD A2 allow-list - only trust CQ on these cards */
86-
/* Raspberry Pi A2 cards */
87-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_LONGSYS_SD, 0x4c53, CID_YEAR_ANY, CID_MONTH_ANY,
88-
cid_rev(1, 0, 0, 0), -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
89-
MMC_QUIRK_WORKING_SD_CQ, EXT_CSD_REV_ANY),
90-
91-
_FIXUP_EXT(CID_NAME_ANY, CID_MANFID_TRANSCEND_SD, 0x4a60, CID_YEAR_ANY, CID_MONTH_ANY,
92-
cid_rev(2, 0, 2026, 4), -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
93-
MMC_QUIRK_WORKING_SD_CQ, EXT_CSD_REV_ANY),
94-
9553
END_FIXUP
9654
};
9755

@@ -195,29 +153,6 @@ static const struct mmc_fixup __maybe_unused mmc_blk_fixups[] = {
195153
MMC_FIXUP("M62704", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc,
196154
MMC_QUIRK_TRIM_BROKEN),
197155

198-
/*
199-
* Some SD cards reports discard support while they don't
200-
*/
201-
MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
202-
MMC_QUIRK_BROKEN_SD_DISCARD),
203-
204-
/*
205-
* On some Kingston SD cards, multiple erases of less than 64
206-
* sectors can cause corruption.
207-
*/
208-
MMC_FIXUP("SD16G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
209-
MMC_FIXUP("SD32G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
210-
MMC_FIXUP("SD64G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
211-
212-
/*
213-
* Larger Integral SD cards using rebranded Phison controllers trash
214-
* nearby flash blocks after erases.
215-
*/
216-
MMC_FIXUP("SD64G", 0x27, 0x5048, add_quirk, MMC_QUIRK_ERASE_BROKEN),
217-
MMC_FIXUP("SD128", 0x27, 0x5048, add_quirk, MMC_QUIRK_ERASE_BROKEN),
218-
MMC_FIXUP("SD256", 0x27, 0x5048, add_quirk, MMC_QUIRK_ERASE_BROKEN),
219-
MMC_FIXUP("SD512", 0x27, 0x5048, add_quirk, MMC_QUIRK_ERASE_BROKEN),
220-
221156
END_FIXUP
222157
};
223158

include/linux/mmc/card.h

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

336334
bool written_flag; /* Indicates eMMC has been written since power on */
337335
bool reenable_cmdq; /* Re-enable Command Queue */
@@ -356,7 +354,6 @@ struct mmc_card {
356354
struct sd_switch_caps sw_caps; /* switch (CMD6) caps */
357355
struct sd_ext_reg ext_power; /* SD extension reg for PM */
358356
struct sd_ext_reg ext_perf; /* SD extension reg for PERF */
359-
u8 *ext_reg_buf; /* 512 byte block for extension register R/W */
360357

361358
struct sd_uhs2_config uhs2_config; /* SD UHS-II config */
362359

@@ -381,8 +378,6 @@ struct mmc_card {
381378
unsigned int nr_parts;
382379

383380
struct workqueue_struct *complete_wq; /* Private workqueue */
384-
385-
unsigned int max_posted_writes; /* command queue posted write limit */
386381
};
387382

388383
static inline bool mmc_large_sector(struct mmc_card *card)

0 commit comments

Comments
 (0)