[Bug 216460] New: lenovo-thinklmi doesn't export a 'type' attribute and doesn't populate possible_values properly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.kernel.org/show_bug.cgi?id=216460

            Bug ID: 216460
           Summary: lenovo-thinklmi doesn't export a 'type' attribute and
                    doesn't populate possible_values properly
           Product: Drivers
           Version: 2.5
    Kernel Version: 6.0-rc3
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Platform_x86
          Assignee: drivers_platform_x86@xxxxxxxxxxxxxxxxxxxx
          Reporter: mario.limonciello@xxxxxxx
        Regression: No

The firmware-attributes documentation (
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-firmware-attributes)
indicates that all drivers that support firmware-attributes need to support the
'type' attribute.

This is important for userspace software to know how to interact with the
driver.  

fwupd 1.8.4 added support for the firmware-attributes class API, but since
lenovo-thinklmi doesn't meet it shows the following error on every boot.

KERNEL BUG: 'type' attribute not exported: (failed to load type: Failed to open
file “/sys/class/firmware-attributes/thinklmi/attributes/MCRUSBHeader/type”: No
such file or directory)

A workaround has been landed in fwupd to avoid this attribute and hardcode the
known behavior of the current driver when it finds it.

It seems like all the attributes are actually "enumeration", so the
lenovo-thinklmi kernel driver should probably just export a type sysfs file
with "enumeration" hardcoded for all attributes.

Also though, the possible_values key is not populated either.  Instead the
values are put into the "current_value" string.  On a Lenovo P620 the following
happens:

$ sudo cat
/sys/class/firmware-attributes/thinklmi/attributes/NUMA/current_value
Auto;[Optional:NPS1,NPS2,NPS4,Auto]
$ sudo cat
/sys/class/firmware-attributes/thinklmi/attributes/NUMA/possible_values
cat: /sys/class/firmware-attributes/thinklmi/attributes/NUMA/possible_values:
Operation not supported

That is the userspace software tears apart the current_value string and instead
puts it into what the possible_values are.  This should be the responsibility
of the kernel driver.  Even if the firwmare returns all that in current_value,
the kernel driver should be doing the splitting so that userspace doesn't need
to carry quirks for different kernel drivers behaving differently.

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux