diff mbox series

[1/2] hwmon: hp-wmi-sensors: Get WMI instance count from WMI driver core

Message ID 20230722172513.9324-2-james@equiv.tech (mailing list archive)
State Handled Elsewhere, archived
Headers show
Series hwmon: hp-wmi-sensors: Minor fixes | expand

Commit Message

James Seo July 22, 2023, 5:25 p.m. UTC
2a2b13ae50cf ("platform/x86: wmi: Allow retrieving the number of WMI
object instances") means we no longer need to find this ourselves.

Signed-off-by: James Seo <james@equiv.tech>
---
 drivers/hwmon/hp-wmi-sensors.c | 20 +++-----------------
 1 file changed, 3 insertions(+), 17 deletions(-)

Comments

Guenter Roeck July 22, 2023, 6:23 p.m. UTC | #1
On Sat, Jul 22, 2023 at 10:25:13AM -0700, James Seo wrote:
> 2a2b13ae50cf ("platform/x86: wmi: Allow retrieving the number of WMI
> object instances") means we no longer need to find this ourselves.
> 
> Signed-off-by: James Seo <james@equiv.tech>

Applied to hwmon-next.

Thanks,
Guenter

> ---
>  drivers/hwmon/hp-wmi-sensors.c | 20 +++-----------------
>  1 file changed, 3 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/hwmon/hp-wmi-sensors.c b/drivers/hwmon/hp-wmi-sensors.c
> index ebe2fb513480..3a99cc5f44b2 100644
> --- a/drivers/hwmon/hp-wmi-sensors.c
> +++ b/drivers/hwmon/hp-wmi-sensors.c
> @@ -435,25 +435,11 @@ static union acpi_object *hp_wmi_get_wobj(const char *guid, u8 instance)
>  /* hp_wmi_wobj_instance_count - find count of WMI object instances */
>  static u8 hp_wmi_wobj_instance_count(const char *guid)
>  {
> -	u8 hi = HP_WMI_MAX_INSTANCES;
> -	union acpi_object *wobj;
> -	u8 lo = 0;
> -	u8 mid;
> -
> -	while (lo < hi) {
> -		mid = (lo + hi) / 2;
> -
> -		wobj = hp_wmi_get_wobj(guid, mid);
> -		if (!wobj) {
> -			hi = mid;
> -			continue;
> -		}
> +	int count;
>  
> -		lo = mid + 1;
> -		kfree(wobj);
> -	}
> +	count = wmi_instance_count(guid);
>  
> -	return lo;
> +	return clamp(count, 0, (int)HP_WMI_MAX_INSTANCES);
>  }
>  
>  static int check_wobj(const union acpi_object *wobj,
> -- 
> 2.39.2
>
diff mbox series

Patch

diff --git a/drivers/hwmon/hp-wmi-sensors.c b/drivers/hwmon/hp-wmi-sensors.c
index ebe2fb513480..3a99cc5f44b2 100644
--- a/drivers/hwmon/hp-wmi-sensors.c
+++ b/drivers/hwmon/hp-wmi-sensors.c
@@ -435,25 +435,11 @@  static union acpi_object *hp_wmi_get_wobj(const char *guid, u8 instance)
 /* hp_wmi_wobj_instance_count - find count of WMI object instances */
 static u8 hp_wmi_wobj_instance_count(const char *guid)
 {
-	u8 hi = HP_WMI_MAX_INSTANCES;
-	union acpi_object *wobj;
-	u8 lo = 0;
-	u8 mid;
-
-	while (lo < hi) {
-		mid = (lo + hi) / 2;
-
-		wobj = hp_wmi_get_wobj(guid, mid);
-		if (!wobj) {
-			hi = mid;
-			continue;
-		}
+	int count;
 
-		lo = mid + 1;
-		kfree(wobj);
-	}
+	count = wmi_instance_count(guid);
 
-	return lo;
+	return clamp(count, 0, (int)HP_WMI_MAX_INSTANCES);
 }
 
 static int check_wobj(const union acpi_object *wobj,