Message ID | 20220703143533.62173-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v1,1/1] ASoC: SOF: Intel: bdw: remove duplicating driver data retrieval | expand |
On 03/07/2022 17:35, Andy Shevchenko wrote: > device_get_match_data() in ACPI case calls similar to acpi_match_device(). > Hence there is no need to duplicate the call. Just assign what is in > the id->driver_data. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > sound/soc/sof/intel/bdw.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c > index 26df780c702e..346813aa3768 100644 > --- a/sound/soc/sof/intel/bdw.c > +++ b/sound/soc/sof/intel/bdw.c > @@ -674,6 +674,7 @@ static int sof_broadwell_probe(struct platform_device *pdev) > id = acpi_match_device(dev->driver->acpi_match_table, dev); > if (!id) > return -ENODEV; > + desc = (const struct sof_dev_desc *)id->driver_data; > > ret = snd_intel_acpi_dsp_driver_probe(dev, id->id); > if (ret != SND_INTEL_DSP_DRIVER_ANY && ret != SND_INTEL_DSP_DRIVER_SOF) { > @@ -681,11 +682,7 @@ static int sof_broadwell_probe(struct platform_device *pdev) > return -ENODEV; > } > > - desc = device_get_match_data(dev); > - if (!desc) > - return -ENODEV; > - > - return sof_acpi_probe(pdev, device_get_match_data(dev)); > + return sof_acpi_probe(pdev, desc); > } Would it not be simpler to just: diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c index 26df780c702e..2ee22c2772ba 100644 --- a/sound/soc/sof/intel/bdw.c +++ b/sound/soc/sof/intel/bdw.c @@ -668,7 +668,6 @@ static int sof_broadwell_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; const struct acpi_device_id *id; - const struct sof_dev_desc *desc; int ret; id = acpi_match_device(dev->driver->acpi_match_table, dev); @@ -681,11 +680,7 @@ static int sof_broadwell_probe(struct platform_device *pdev) return -ENODEV; } - desc = device_get_match_data(dev); - if (!desc) - return -ENODEV; - - return sof_acpi_probe(pdev, device_get_match_data(dev)); + return sof_acpi_probe(pdev, (const struct sof_dev_desc *)id->driver_data); } /* acpi_driver definition */ --- We don't use the desc in sof_broadwell_probe(), so we can just pass the id->driver_data
On Mon, Jul 04, 2022 at 10:31:48AM +0300, Péter Ujfalusi wrote: > On 03/07/2022 17:35, Andy Shevchenko wrote: ... > + return sof_acpi_probe(pdev, (const struct sof_dev_desc *)id->driver_data); > } > We don't use the desc in sof_broadwell_probe(), so we can just pass the id->driver_data I prefer not to cast inside the function parameters when it's not about POD.
On 04/07/2022 19:19, Andy Shevchenko wrote: > On Mon, Jul 04, 2022 at 10:31:48AM +0300, Péter Ujfalusi wrote: >> On 03/07/2022 17:35, Andy Shevchenko wrote: > > ... > >> + return sof_acpi_probe(pdev, (const struct sof_dev_desc *)id->driver_data); >> } > >> We don't use the desc in sof_broadwell_probe(), so we can just pass the id->driver_data > > I prefer not to cast inside the function parameters when it's not about POD. Fair enough. How about assigning desc before it is used? diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c index 26df780c702e..a446154f2803 100644 --- a/sound/soc/sof/intel/bdw.c +++ b/sound/soc/sof/intel/bdw.c @@ -681,11 +681,8 @@ static int sof_broadwell_probe(struct platform_device *pdev) return -ENODEV; } - desc = device_get_match_data(dev); - if (!desc) - return -ENODEV; - - return sof_acpi_probe(pdev, device_get_match_data(dev)); + desc = (const struct sof_dev_desc *)id->driver_data; + return sof_acpi_probe(pdev, desc); } /* acpi_driver definition */
On 7/3/22 09:35, Andy Shevchenko wrote: > device_get_match_data() in ACPI case calls similar to acpi_match_device(). > Hence there is no need to duplicate the call. Just assign what is in > the id->driver_data. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > sound/soc/sof/intel/bdw.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c > index 26df780c702e..346813aa3768 100644 > --- a/sound/soc/sof/intel/bdw.c > +++ b/sound/soc/sof/intel/bdw.c > @@ -674,6 +674,7 @@ static int sof_broadwell_probe(struct platform_device *pdev) > id = acpi_match_device(dev->driver->acpi_match_table, dev); > if (!id) > return -ENODEV; > + desc = (const struct sof_dev_desc *)id->driver_data; > > ret = snd_intel_acpi_dsp_driver_probe(dev, id->id); > if (ret != SND_INTEL_DSP_DRIVER_ANY && ret != SND_INTEL_DSP_DRIVER_SOF) { > @@ -681,11 +682,7 @@ static int sof_broadwell_probe(struct platform_device *pdev) > return -ENODEV; > } > > - desc = device_get_match_data(dev); > - if (!desc) > - return -ENODEV; > - > - return sof_acpi_probe(pdev, device_get_match_data(dev)); > + return sof_acpi_probe(pdev, desc); Thanks Andy, we have the same code pattern in sound/soc/sof/intel/byt.c, can we change it as part of the series to keep the two files aligned? > } > > /* acpi_driver definition */
On Tue, Jul 5, 2022 at 3:19 PM Péter Ujfalusi <peter.ujfalusi@linux.intel.com> wrote: > On 04/07/2022 19:19, Andy Shevchenko wrote: > > On Mon, Jul 04, 2022 at 10:31:48AM +0300, Péter Ujfalusi wrote: > >> On 03/07/2022 17:35, Andy Shevchenko wrote: ... > >> + return sof_acpi_probe(pdev, (const struct sof_dev_desc *)id->driver_data); > >> } > > > >> We don't use the desc in sof_broadwell_probe(), so we can just pass the id->driver_data > > > > I prefer not to cast inside the function parameters when it's not about POD. > > Fair enough. > > How about assigning desc before it is used? As answered in the other email, I'm fine to modify the change accordingly.
On Tue, Jul 5, 2022 at 5:02 PM Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> wrote: > On 7/3/22 09:35, Andy Shevchenko wrote: ... > Thanks Andy, we have the same code pattern in sound/soc/sof/intel/byt.c, > can we change it as part of the series to keep the two files aligned? Sure. I was looking for the ID of WPT SPI (I2S) controller and that's how I found these two.
diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c index 26df780c702e..346813aa3768 100644 --- a/sound/soc/sof/intel/bdw.c +++ b/sound/soc/sof/intel/bdw.c @@ -674,6 +674,7 @@ static int sof_broadwell_probe(struct platform_device *pdev) id = acpi_match_device(dev->driver->acpi_match_table, dev); if (!id) return -ENODEV; + desc = (const struct sof_dev_desc *)id->driver_data; ret = snd_intel_acpi_dsp_driver_probe(dev, id->id); if (ret != SND_INTEL_DSP_DRIVER_ANY && ret != SND_INTEL_DSP_DRIVER_SOF) { @@ -681,11 +682,7 @@ static int sof_broadwell_probe(struct platform_device *pdev) return -ENODEV; } - desc = device_get_match_data(dev); - if (!desc) - return -ENODEV; - - return sof_acpi_probe(pdev, device_get_match_data(dev)); + return sof_acpi_probe(pdev, desc); } /* acpi_driver definition */
device_get_match_data() in ACPI case calls similar to acpi_match_device(). Hence there is no need to duplicate the call. Just assign what is in the id->driver_data. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- sound/soc/sof/intel/bdw.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)