On Fri, Oct 27, 2023 at 05:07:09PM +0200, Lukasz Stelmach wrote: > Hi, Hi Łukasz, thanks for the report. > I've got HP EliteDesk 800 G6 Tower PC running Linux 6.1 from Debian 12. > I managed to build the hp-wmi-sensors out of tree. When I loaded it I > got EINVAL. > > hp-wmi-sensors: probe of 8F1F6435-9F42-42C8-BADC-0E9424F20C9A failed with error -22 > > I managed to track it down. And it happens in check_wobj() called from > check_platform_events_wobj() because in the for loop when prop==0 the > type is ACPI_TYPE_BUFFER instead of ACPI_TYPE_STRING. When I bypass this > particular check like this > > if (prop == 0 && type == ACPI_TYPE_BUFFER) > continue; > > everything else works like charm and I can read senosrs via sysfs. I'm surprised that your bypass is working! That check is intended to make it safe to assume HPBIOS_BIOSNumericSensor.Name is a ACPI_TYPE_STRING. Which the driver continues to do, of course. Maybe .Name is being erroneously reported as an ACPI_TYPE_BUFFER on just that model, but is in reality still a string? Dealing with that string in e.g. hp_wmi_strdup() would still work because .string.pointer and .buffer.pointer seem to end up at the same offset in a union acpi_object, at least for now. > I'd like to perpare a proper patch, but I've got no idea how to do properly > work this quirk around. What are your suggestions? Could you share output from acpidump and sensors before we go any further? Thanks. -James Seo > Kind regards, > -- > Łukasz Stelmach > Samsung R&D Institute Poland > Samsung Electronics