[v2,1/1] platform/x86: asus-wireless: Replace open coded acpi_match_device()

Message ID 20231006152739.3495671-1-andriy.shevchenko@linux.intel.com
State New
Headers
Series [v2,1/1] platform/x86: asus-wireless: Replace open coded acpi_match_device() |

Commit Message

Andy Shevchenko Oct. 6, 2023, 3:27 p.m. UTC
  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(-)
  

Comments

Hans de Goede Oct. 6, 2023, 3:32 p.m. UTC | #1
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 ...
  
Andy Shevchenko Oct. 6, 2023, 3:51 p.m. UTC | #2
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!
  

Patch

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;