[Letux-kernel] [RFC v4 2/6] mmc: core: allow to match the device tree to apply quirks

H. Nikolaus Schaller hns at goldelico.com
Sat Nov 6 15:31:05 CET 2021

Hi Jérôme,

> Am 05.11.2021 um 15:27 schrieb Jérôme Pouiller <jerome.pouiller at silabs.com>:
> On Friday 5 November 2021 10:05:47 CET H. Nikolaus Schaller wrote:
>> From: Jérôme Pouiller <jerome.pouiller at silabs.com>
>> MMC subsystem provides a way to apply quirks when a device match some
>> properties (VID, PID, etc...) Unfortunately, some SDIO devices does not
>> comply with the SDIO specification and does not provide reliable VID/PID
>> (eg. Silabs WF200).
>> So, the drivers for these devices rely on device tree to identify the
>> device.
>> This patch allows the MMC to also rely on the device tree to apply a
>> quirk.
>> Signed-off-by: Jérôme Pouiller <jerome.pouiller at silabs.com>
> Thank you for to have taken care of that (Maybe, you would like to add a
> "Co-developed-by:" tag).

Well, I just have taken your and Ulf's proposal and done 90% copy&paste.
So there wasn't much development, just editing...

>> ---
>> drivers/mmc/core/card.h   |  3 +++
>> drivers/mmc/core/quirks.h | 17 +++++++++++++++++
>> 2 files changed, 20 insertions(+)
>> +static inline bool mmc_fixup_of_compatible_match(struct mmc_card *card,
>> +                                                const char *const *compat_list)
>> +{
>> +       struct device_node *np;
>> +
>> +       for_each_child_of_node(mmc_dev(card->host)->of_node, np) {
>> +               if (of_device_compatible_match(np, compat_list))
>> +                       return true;
> Intel robot complains about of_device_compatible_match():
>    ERROR: modpost: "of_device_compatible_match" [drivers/mmc/core/mmc_core.ko] undefined!
> I think we have to add this line:
>    EXPORT_SYMBOL(of_device_compatible_match);
> in drivers/of/base.c

I had seen the krobot message as well but could not figure out
what it meant...

But with your hint it indeed looks like an omission in drivers/of/base.c
Having something exported in include/linux/of.h but code not

That needs a separate patch. I'll add one with a

Reported-by: kernel test robot <lkp at intel.com>
Reported-by: Jérôme Pouiller <jerome.pouiller at silabs.com>

and some Fixes: tag. Since it has a different audience I think
I should post it separately.

BTW: krobot noted the same issue for mmc_of_find_child_device()
in drivers/mmc/core/core.c (which we do not touch in this series).
But maybe it should be fixed as well.

So let's wait for more comments and then I may distribute a [PATCH v1].
Or should I do a [PATCH v5] to continue version counting?


More information about the Letux-kernel mailing list