Replace open coded acpi_match_device() in asus_wireless_add().
Signed-off-by: Andy Shevchenko <[email protected]>
---
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;
--
2.40.0.1.gaa8946217a0b
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 <[email protected]>
> ---
> 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!
--
With Best Regards,
Andy Shevchenko