Re: [PATCH 1/2] ASoC: tegra30: ahub: Use of_device_get_match_data

From: Bjorn Helgaas
Date: Mon Aug 16 2021 - 14:02:16 EST


On Sun, Aug 15, 2021 at 01:42:18AM +0530, Aakash Hemadri wrote:
> Prefer `of_device_get_match_data` over `of_match_device`
>
> Retrieve OF match data using `of_device_get_match_data`, this is cleaner
> and better expresses intent.
>
> Signed-off-by: Aakash Hemadri <aakashhemadri123@xxxxxxxxx>
> ---
> sound/soc/tegra/tegra30_ahub.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/soc/tegra/tegra30_ahub.c b/sound/soc/tegra/tegra30_ahub.c
> index b3e1df693381..0ac109b32329 100644
> --- a/sound/soc/tegra/tegra30_ahub.c
> +++ b/sound/soc/tegra/tegra30_ahub.c
> @@ -518,7 +518,7 @@ static int tegra30_ahub_probe(struct platform_device *pdev)
> void __iomem *regs_apbif, *regs_ahub;
> int ret = 0;
>
> - match = of_match_device(tegra30_ahub_of_match, &pdev->dev);
> + match = of_device_get_match_data(&pdev->dev);

I think this is incorrect.

const struct of_device_id *of_match_device(...)
const void *of_device_get_match_data(...)

of_match_device() returns "struct of_device_id *", i.e., "match".

of_device_get_match_data() calls of_match_device() internally, then
returns "match->data".

> if (!match)
> return -EINVAL;
> soc_data = match->data;
> --
> 2.32.0
>