From: "Kurt Borja" <kuurtb@gmail.com>
To: "Armin Wolf" <W_Armin@gmx.de>, <xy-jackie@139.com>,
<alireza.bestboyy@gmail.com>, <atescula@gmail.com>
Cc: <mpearson-lenovo@squebb.ca>, <hdegoede@redhat.com>,
<ilpo.jarvinen@linux.intel.com>,
<platform-driver-x86@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] platform/x86: lenovo-hotkey: Handle missing hardware features gracefully
Date: Fri, 27 Jun 2025 18:29:19 -0300 [thread overview]
Message-ID: <DAXMVOI4AXHY.18HUV9THTG0DJ@gmail.com> (raw)
In-Reply-To: <fb08672d-881b-458c-b8ed-1a27ca93fe7d@gmx.de>
[-- Attachment #1: Type: text/plain, Size: 3574 bytes --]
On Fri Jun 27, 2025 at 6:17 PM -03, Armin Wolf wrote:
> Am 27.06.25 um 22:38 schrieb Kurt Borja:
>
>> Hi Armin,
>>
>> On Fri Jun 27, 2025 at 4:54 PM -03, Armin Wolf wrote:
>>> Not all devices support audio mute and microphone mute LEDs, so the
>>> explicitly checks for hardware support while probing. However missing
>>> hardware features are treated as errors, causing the driver so fail
>>> probing on devices that do not support both LEDs.
>>>
>>> Fix this by simply ignoring hardware features that are not present.
>>> This way the driver will properly load on devices not supporting both
>>> LEDs and will stop throwing error messages on devices with no LEDS
>>> at all.
>> This patch makes me wonder what is the policy around issues like this.
>> In fact I've submitted and changes that do the exact opposite :p
>> Like commit: 4630b99d2e93 ("platform/x86: dell-pc: Propagate errors when
>> detecting feature support")
>>
>> IMO missing features should be treated as errors. i.e. The probe should
>> fail.
>
> IMHO the probe should only fail if some features are deemed essential, like
> required ACPI methods. Optional features like in this case LEDs should be
> handled by the driver in a graceful manner if possible.
>
>>
>> Quoting documentation [1]:
>>
>> If a match is found, the device’s driver field is set to the
>> driver and the driver’s probe callback is called. This gives the
>> driver a chance to verify that it really does support the
>> hardware, and that it’s in a working state.
>>
>> And again [2]:
>>
>> This callback holds the driver-specific logic to bind the driver
>> to a given device. That includes verifying that the device is
>> present, that it’s a version the driver can handle, that driver
>> data structures can be allocated and initialized, and that any
>> hardware can be initialized.
>>
>> Both of these makes me wonder if such a "fail" or error message should
>> be fixed in the first place. In this case the probe correctly checks for
>> device support and fails if it's not found, which is suggested to be the
>> correct behavior.
>
> The driver should only fail probing if it cannot handle some missing features.
> In this case however both features (audio mute LED and mic mute LED) are completely
> optional and the driver should not fail to load just because one of them is absent.
I agree, both are individually optional, but at least one should be
required.
>
> Just think about machines supporting only a single LED (audio or mic mute). Currently
> the driver would fail to load on such devices leaving the users with nothing.
That's very true.
But I do still think if both fail the probe should still fail. Maybe
there is a way to accomplish this?
I'm thinking of something like
if (lenovo_super_hotkey_wmi_led_init(MIC_MUTE, dev) ||
lenovo_super_hotkey_wmi_led_init(AUDIO_MUTE, dev))
return -ENODEV;
What do you think?
>
>>
>> BTW this also leaks `wpriv`, which would remain allocated for no reason.
>
> wpriv will be freed using devres, so no memory leak here. However i admit that there is
> some room for optimizations, however i leave this to the maintainer of the driver in
> question.
Leak was a bit of an overstatement :) But if both features are missing
it would be kinda leaked, in practice.
>
> Thanks,
> Armin Wolf
>
>>
>>
>> [1] https://docs.kernel.org/driver-api/driver-model/binding.html
>> [2] https://docs.kernel.org/driver-api/driver-model/driver.html
>>
--
~ Kurt
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2025-06-27 21:29 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-27 19:54 Armin Wolf
2025-06-27 20:38 ` Kurt Borja
2025-06-27 21:17 ` Armin Wolf
2025-06-27 21:29 ` Kurt Borja [this message]
2025-06-27 23:01 ` Armin Wolf
2025-06-29 20:36 ` Mark Pearson
2025-06-29 22:52 ` Armin Wolf
2025-07-07 3:03 ` [PATCH] platform/x86: lenovo-hotkey: Handle missing hardware featuresgracefully Jackie Dong
2025-07-07 9:22 ` Hans de Goede
2025-07-08 6:44 ` [PATCH] platform/x86: lenovo-hotkey: Handle missing hardwarefeaturesgracefully Jackie Dong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DAXMVOI4AXHY.18HUV9THTG0DJ@gmail.com \
--to=kuurtb@gmail.com \
--cc=W_Armin@gmx.de \
--cc=alireza.bestboyy@gmail.com \
--cc=atescula@gmail.com \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpearson-lenovo@squebb.ca \
--cc=platform-driver-x86@vger.kernel.org \
--cc=xy-jackie@139.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®