Re: [PATCH 3/3] platform/x86: asus-armoury: add keyboard control firmware attributes
From: Denis Benato
Date: Fri Dec 26 2025 - 06:46:35 EST
On 12/26/25 12:06, Krzysztof Kozlowski wrote:
> On 25/12/2025 15:30, Denis Benato wrote:
>> +ASUS_ATTR_GROUP_BOOL(kbd_leds_shutdown, "kbd_leds_shutdown",
>> + "Keyboard backlight while system is shutdown");
>> +
>> static ssize_t gpu_mux_mode_current_value_store(struct kobject *kobj,
>> struct kobj_attribute *attr,
>> const char *buf, size_t count)
>> @@ -867,6 +1043,35 @@ static bool has_valid_limit(const char *name, const struct power_limits *limits)
>> return limit_value > 0;
>> }
>>
>> +static struct asus_armoury_kbd_status *asus_init_kbd_state(void)
>> +{
>> + int err;
>> + u32 kbd_status;
>> + struct asus_armoury_kbd_status *kbd_state __free(kfree) = NULL;
> This is an undesired syntax explicitly documented as one to avoid. You
> need here proper assignment, not NULL. Please don't use cleanup.h if you
> do not intend to follow it because it does not make the code simpler.
Hello and thank you for your feedback!
I have used __free here to match a previous comment from Ilpo:
https://lore.kernel.org/all/25bd0c90-2de0-ef66-c18d-661180b71fd4@xxxxxxxxxxxxxxx/
and I figured that since this is the same exact pattern as that it would have made
sense to use it.
May I ask you to elaborate further please? If there is a more effective way to take
advantage of cleanup.h I will very much consider it.
>> +
>> + err = armoury_get_devstate(NULL, &kbd_status, ASUS_WMI_DEVID_TUF_RGB_STATE);
>> + if (err) {
>> + pr_err("ACPI does not support keyboard power control: %d\n", err);
>> + return ERR_PTR(-ENODEV);
>> + }
>> +
>> + pr_info("Detected keyboard backlight support\n");
> This does not look like useful printk message. Drivers should be silent
> on success:
> https://elixir.bootlin.com/linux/v6.15-rc7/source/Documentation/process/coding-style.rst#L913
> https://elixir.bootlin.com/linux/v6.15-rc7/source/Documentation/process/debugging/driver_development_debugging_guide.rst#L79
>
I will remove the detected keyboard and make the pr_err a pr_info,
is this okay?
Thank you again,
Denis
> Best regards,
> Krzysztof