2021-11-03 13:02:54

by H. Nikolaus Schaller

[permalink] [raw]
Subject: [RFC v3 3/6] mmc: core: provide macro and table to match the device tree to apply quirks

This (initially empty) table allows to match quirks early based
on .compatible of the child node of some mmc/sdio interface.

A new macro SDIO_FIXUP_COMPATIBLE makes the definition readable.

Signed-off-by: H. Nikolaus Schaller <[email protected]>
---
drivers/mmc/core/card.h | 15 +++++++++++++++
drivers/mmc/core/quirks.h | 4 ++++
2 files changed, 19 insertions(+)

diff --git a/drivers/mmc/core/card.h b/drivers/mmc/core/card.h
index 2f73f8567e14f..c7a61e74c02ea 100644
--- a/drivers/mmc/core/card.h
+++ b/drivers/mmc/core/card.h
@@ -122,6 +122,21 @@ struct mmc_fixup {
_vendor, _device, \
_fixup, _data, EXT_CSD_REV_ANY) \

+#define SDIO_FIXUP_COMPATIBLE(_compatible_list, _fixup, _data) \
+ { \
+ .name = CID_NAME_ANY, \
+ .manfid = CID_MANFID_ANY, \
+ .oemid = CID_OEMID_ANY, \
+ .rev_start = 0, \
+ .rev_end = -1ull, \
+ .cis_vendor = SDIO_ANY_ID, \
+ .cis_device = SDIO_ANY_ID, \
+ .vendor_fixup = (_fixup), \
+ .data = (_data), \
+ .ext_csd_rev = EXT_CSD_REV_ANY, \
+ .of_compatible = _compatible_list,\
+ }
+
#define cid_rev(hwrev, fwrev, year, month) \
(((u64) hwrev) << 40 | \
((u64) fwrev) << 32 | \
diff --git a/drivers/mmc/core/quirks.h b/drivers/mmc/core/quirks.h
index a8b82b34dcfd2..619504b78bf46 100644
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -146,6 +146,10 @@ static const struct mmc_fixup __maybe_unused sdio_fixup_methods[] = {
END_FIXUP
};

+static const struct mmc_fixup __maybe_unused sdio_card_init_methods[] = {
+ END_FIXUP
+};
+
static inline bool mmc_fixup_of_compatible_match(struct mmc_card *card,
const char *const *compat_list)
{
--
2.33.0


2021-11-09 20:54:30

by Linus Walleij

[permalink] [raw]
Subject: Re: [RFC v3 3/6] mmc: core: provide macro and table to match the device tree to apply quirks

On Wed, Nov 3, 2021 at 2:01 PM H. Nikolaus Schaller <[email protected]> wrote:

> This (initially empty) table allows to match quirks early based
> on .compatible of the child node of some mmc/sdio interface.
>
> A new macro SDIO_FIXUP_COMPATIBLE makes the definition readable.
>
> Signed-off-by: H. Nikolaus Schaller <[email protected]>

Reviewed-by: Linus Walleij <[email protected]>

Yours,
Linus Walleij