Re: [PATCH v3] hwmon: add HP WMI Sensors driver

From: Armin Wolf
Date: Thu Apr 27 2023 - 12:40:01 EST


Am 27.04.23 um 09:37 schrieb James Seo:

On Wed, Apr 26, 2023 at 09:35:33PM +0200, Armin Wolf wrote:
Am 26.04.23 um 15:16 schrieb James Seo:

On Mon, Apr 24, 2023 at 11:13:36PM +0200, Armin Wolf wrote:
Am 24.04.23 um 12:05 schrieb James Seo:

+ for (i = 0; i < HP_WMI_MAX_INSTANCES; i++, pevents++) {
Hi,

the WMI driver core already knows how many instances of a given WMI object are available.
Unfortunately, this information is currently unavailable to drivers. Would it be convenient
for you to access this information? I could try to implement such a function if needed.

+ for (i = 0; i < HP_WMI_MAX_INSTANCES; i++, info++) {
Same as above.

Hello,

Having the WMI object instance count wouldn't make much difference to
me for now. The driver has to iterate through all instances during
init anyway. If I were forced to accommodate 50+ sensors, I'd rewrite
some things and I think I'd want such a function then, but I picked
the current arbitrary limit of 32 because even that seems unlikely.

So, maybe don't worry about it unless you want to. Or am I missing
something?

Hi,

i already have a experimental patch available which adds such a function.
If you could test this patch to see if it works, then i could submit it upstream
where other drivers could profit from being able to know the number of
WMI object instances.

Both your proposed functions worked as expected.

Your driver could also profit from such a function, as it could optimize the amount
of memory allocated to store WMI object data.
I suppose I might as well. I assume I'm supposed to wait until your
new functions are merged before making changes that rely on them?

I think you can submit this driver as-is and provide a follow-up patch once
the changes are merged.

The current instance discovery algorithm
(using a for-loop and break on error) also has a potential issue: when a single WMI call
fails for some reason (ACPI error, ...), all following WMI instances are being ignored.

This is the intended behavior for now, on the assumption that a real
ACPI failure probably indicates that the system has bigger problems.
I do have vague plans to make the driver more tolerant of failure to
retrieve or validate instances, but haven't decided anything yet.

Regards,

James

Ok.

Armin Wolf