hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/mmc/core/quirks.h
....@@ -14,7 +14,7 @@
1414
1515 #include "card.h"
1616
17
-static const struct mmc_fixup mmc_blk_fixups[] = {
17
+static const struct mmc_fixup __maybe_unused mmc_blk_fixups[] = {
1818 #define INAND_CMD38_ARG_EXT_CSD 113
1919 #define INAND_CMD38_ARG_ERASE 0x00
2020 #define INAND_CMD38_ARG_TRIM 0x01
....@@ -59,6 +59,8 @@
5959 MMC_QUIRK_BLK_NO_CMD23),
6060 MMC_FIXUP("APUSD", CID_MANFID_APACER, 0x5048, add_quirk_sd,
6161 MMC_QUIRK_BLK_NO_CMD23),
62
+ MMC_FIXUP(CID_NAME_ANY, CID_MANFID_DH, CID_OEMID_ANY, add_quirk_sd,
63
+ MMC_QUIRK_BLK_NO_CMD23),
6264
6365 /*
6466 * Some MMC cards need longer data read timeout than indicated in CSD.
....@@ -99,10 +101,30 @@
99101 MMC_FIXUP("V10016", CID_MANFID_KINGSTON, CID_OEMID_ANY, add_quirk_mmc,
100102 MMC_QUIRK_TRIM_BROKEN),
101103
104
+ /*
105
+ * Kingston EMMC04G-M627 advertises TRIM but it does not seems to
106
+ * support being used to offload WRITE_ZEROES.
107
+ */
108
+ MMC_FIXUP("M62704", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc,
109
+ MMC_QUIRK_TRIM_BROKEN),
110
+
111
+ /*
112
+ * Micron MTFC4GACAJCN-1M advertises TRIM but it does not seems to
113
+ * support being used to offload WRITE_ZEROES.
114
+ */
115
+ MMC_FIXUP("Q2J54A", CID_MANFID_MICRON, 0x014e, add_quirk_mmc,
116
+ MMC_QUIRK_TRIM_BROKEN),
117
+
118
+ /*
119
+ * Some SD cards reports discard support while they don't
120
+ */
121
+ MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
122
+ MMC_QUIRK_BROKEN_SD_DISCARD),
123
+
102124 END_FIXUP
103125 };
104126
105
-static const struct mmc_fixup mmc_ext_csd_fixups[] = {
127
+static const struct mmc_fixup __maybe_unused mmc_ext_csd_fixups[] = {
106128 /*
107129 * Certain Hynix eMMC 4.41 cards might get broken when HPI feature
108130 * is used so disable the HPI feature for such buggy cards.
....@@ -120,7 +142,7 @@
120142 };
121143
122144
123
-static const struct mmc_fixup sdio_fixup_methods[] = {
145
+static const struct mmc_fixup __maybe_unused sdio_fixup_methods[] = {
124146 SDIO_FIXUP(SDIO_VENDOR_ID_TI_WL1251, SDIO_DEVICE_ID_TI_WL1251,
125147 add_quirk, MMC_QUIRK_NONSTD_FUNC_IF),
126148
....@@ -139,7 +161,7 @@
139161 SDIO_FIXUP(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8797_F0,
140162 add_quirk, MMC_QUIRK_BROKEN_IRQ_POLLING),
141163
142
- SDIO_FIXUP(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8887WLAN,
164
+ SDIO_FIXUP(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8887_F0,
143165 add_limit_rate_quirk, 150000000),
144166
145167 END_FIXUP
....@@ -166,7 +188,7 @@
166188 (f->ext_csd_rev == EXT_CSD_REV_ANY ||
167189 f->ext_csd_rev == card->ext_csd.rev) &&
168190 rev >= f->rev_start && rev <= f->rev_end) {
169
- dev_dbg(&card->dev, "calling %pf\n", f->vendor_fixup);
191
+ dev_dbg(&card->dev, "calling %ps\n", f->vendor_fixup);
170192 f->vendor_fixup(card, f->data);
171193 }
172194 }