[PATCH v1 1/1] ASoC: SOF: Intel: bdw: remove duplicating driver data retrieval
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); }
/* acpi_driver definition */
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 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 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 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.
participants (4)
-
Andy Shevchenko
-
Andy Shevchenko
-
Pierre-Louis Bossart
-
Péter Ujfalusi