[...] > > Combining your suggestions we could do roughly: > > > > in mmc_sdio_init_card(): > > > > if (host->ops->init_card) > > host->ops->init_card(host, card); > > else > > mmc_fixup_device(host, sdio_prepare_fixups_methods); > > I think I mostly agree, but why you don't call mmc_fixup_device() if > init_card is defined? (BTW, mmc_fixup_device() takes a card as > first parameter) Ack. > > > > Next we need a location for the sdio_prepare_fixups_methods table and functions. > > > > For "ti,wl1251" we would then provide the entry in the table and a function doing > > the setup. But where should these be defined? Likely not in a header file like > > quirks.h? But there is no quirks.c. > > I think you can place your function in drivers/mmc/core/card.h. There are > already add_quirk(), add_limit_rate_quirk(), add_quirk_mmc(), etc... FYI: I don't mind adding a quirks.c, if that makes sense. Kind regards Uffe