2023-07-22 17:41:15

by James Seo

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

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 <[email protected]>
---
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



2023-07-22 18:53:54

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 1/2] hwmon: hp-wmi-sensors: Get WMI instance count from WMI driver core

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 <[email protected]>

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
>