Message ID | 20231006152739.3495671-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | [v2,1/1] platform/x86: asus-wireless: Replace open coded acpi_match_device() | expand |
Hi, On 10/6/23 17:27, Andy Shevchenko wrote: > Replace open coded acpi_match_device() in asus_wireless_add(). > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > v2: fixed compilation error > drivers/platform/x86/asus-wireless.c | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/drivers/platform/x86/asus-wireless.c b/drivers/platform/x86/asus-wireless.c > index abf01e00b799..8b9a0dde34e3 100644 > --- a/drivers/platform/x86/asus-wireless.c > +++ b/drivers/platform/x86/asus-wireless.c > @@ -148,13 +148,9 @@ static int asus_wireless_add(struct acpi_device *adev) > if (err) > return err; > > - for (id = device_ids; id->id[0]; id++) { > - if (!strcmp((char *) id->id, acpi_device_hid(adev))) { > - data->hswc_params = > - (const struct hswc_params *)id->driver_data; > - break; > - } > - } > + id = acpi_match_device(device_ids, adev); > + if (id) > + data->hswc_params = (const struct hswc_params *)id->driver_data; > if (!data->hswc_params) > return 0; Thanks, but the error checking looks a bit weird now. How about: id = acpi_match_device(device_ids, adev); if (!id) return 0; data->hswc_params = (const struct hswc_params *)id->driver_data; That seems to better convey what the code's intention is. Regards, Hans p.s. This driver really should be converted to not be an acpi_driver instead it should bind to the instantiated platform_device for the adev, but that would require someone with actual hw access to test the conversion ...
On Fri, Oct 06, 2023 at 05:32:10PM +0200, Hans de Goede wrote: > On 10/6/23 17:27, Andy Shevchenko wrote: > > + id = acpi_match_device(device_ids, adev); > > + if (id) > > + data->hswc_params = (const struct hswc_params *)id->driver_data; > > if (!data->hswc_params) > > return 0; > > Thanks, but the error checking looks a bit weird now. How about: > > id = acpi_match_device(device_ids, adev); > if (!id) > return 0; > > data->hswc_params = (const struct hswc_params *)id->driver_data; > > That seems to better convey what the code's intention is. Indeed, otherwise the hswc_params seems to stay NULL anyway (due to kzalloc() use). I'll send a v3 with your suggestion being incorporated, thank you!
diff --git a/drivers/platform/x86/asus-wireless.c b/drivers/platform/x86/asus-wireless.c index abf01e00b799..8b9a0dde34e3 100644 --- a/drivers/platform/x86/asus-wireless.c +++ b/drivers/platform/x86/asus-wireless.c @@ -148,13 +148,9 @@ static int asus_wireless_add(struct acpi_device *adev) if (err) return err; - for (id = device_ids; id->id[0]; id++) { - if (!strcmp((char *) id->id, acpi_device_hid(adev))) { - data->hswc_params = - (const struct hswc_params *)id->driver_data; - break; - } - } + id = acpi_match_device(device_ids, adev); + if (id) + data->hswc_params = (const struct hswc_params *)id->driver_data; if (!data->hswc_params) return 0;
Replace open coded acpi_match_device() in asus_wireless_add(). Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- v2: fixed compilation error drivers/platform/x86/asus-wireless.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)