Hi Geert-san, > From: Geert Uytterhoeven, Sent: Friday, June 25, 2021 8:21 PM > > On Fri, Jun 25, 2021 at 9:56 AM Yoshihiro Shimoda wrote: > > Refactor of_device_id.data to avoid increasing numbers of > > sdhi_quirks_match[] entry when we add other stable SoCs like > > r8a779m*. > > > > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> > > Thanks for your patch! > > > --- a/drivers/mmc/host/renesas_sdhi_core.c > > +++ b/drivers/mmc/host/renesas_sdhi_core.c > > @@ -941,13 +910,8 @@ static const struct soc_device_attribute sdhi_quirks_match[] = { > > { .soc_id = "r8a774a1", .revision = "ES1.[012]", .data = &sdhi_quirks_4tap_nohs400 }, > > { .soc_id = "r8a7795", .revision = "ES1.*", .data = &sdhi_quirks_4tap_nohs400 }, > > { .soc_id = "r8a7795", .revision = "ES2.0", .data = &sdhi_quirks_4tap }, > > - { .soc_id = "r8a7795", .revision = "ES3.*", .data = &sdhi_quirks_bad_taps2367 }, > > { .soc_id = "r8a7796", .revision = "ES1.[012]", .data = &sdhi_quirks_4tap_nohs400 }, > > { .soc_id = "r8a7796", .revision = "ES1.*", .data = &sdhi_quirks_r8a7796_es13 }, > > - { .soc_id = "r8a77961", .data = &sdhi_quirks_bad_taps1357 }, > > - { .soc_id = "r8a77965", .data = &sdhi_quirks_r8a77965 }, > > - { .soc_id = "r8a77980", .data = &sdhi_quirks_nohs400 }, > > - { .soc_id = "r8a77990", .data = &sdhi_quirks_r8a77990 }, > > { /* Sentinel. */ }, > > }; > > > > @@ -957,6 +921,7 @@ int renesas_sdhi_probe(struct platform_device *pdev, > > struct tmio_mmc_data *mmd = pdev->dev.platform_data; > > const struct renesas_sdhi_quirks *quirks = NULL; > > const struct renesas_sdhi_of_data *of_data; > > + const struct renesas_sdhi_of_data_with_quirks *of_data_quirks; > > const struct soc_device_attribute *attr; > > struct tmio_mmc_data *mmc_data; > > struct tmio_mmc_dma *dma_priv; > > @@ -966,11 +931,14 @@ int renesas_sdhi_probe(struct platform_device *pdev, > > struct resource *res; > > u16 ver; > > > > - of_data = of_device_get_match_data(&pdev->dev); > > + of_data_quirks = of_device_get_match_data(&pdev->dev); > > + of_data = of_data_quirks->of_data; > > > > attr = soc_device_match(sdhi_quirks_match); > > if (attr) > > quirks = attr->data; > > + else > > + quirks = of_data_quirks->quirks; > > Please do not use "else" statements in soc_device_match()-based > quirk handling, as that makes it less trivial to remove the quirk > handling later. > > I.e. move "quirks = of_data_quirks->quirks;" up, before the call > to soc_device_match(). Thank you for your review and suggestion! I'll fix this. Best regards, Yoshihiro Shimoda