* hid-asus: integration of some rust code
From: Denis Benato @ 2026-01-08 13:36 UTC (permalink / raw)
To: LKML; +Cc: Jiri Kosina, linux-input, Denis Benato, rust-for-linux
Hi all,
These past months I have been considering moving some userspace code to the kernel.
The userspace code is past of asusd and manages a feature of ASUS laptop called anime matrix:
a series of leds forming a display on the back.
The code in question was written by the previous maintainer of that application when
the kernel was not accepting any rust code, and now that it does I think it's about time
to port this well-tested feature where it belongs since it's talking directly to the hardware.
For context hid-asus must remain loaded and attached to the device as this new code
needs to manage just a subset of what is supported by the device, using the same hid_device*.
My (main) questions are the following:
- is this something that is acceptable?
- is this possible, and if yes what is the best way?
- is a mixed C/rust driver something that is accepted or does it break some rule?
- technically is this something that today the kernel has infrastructure for?
Specifically to Jiri: since you are the maintainer of hid-asus do you have any
objections in doing this?
Thanks to everyone who will respond and help me out.
Please feel free to add more considerations and answers questions I haven't
made since I'm sure there will be more anyway once I start working to this.
Best regards,
Denis B.
^ permalink raw reply
* Re: [PATCH v3] hid/hid-multitouch: Keep latency normal on deactivate for reactivation gesture
From: Jiri Kosina @ 2026-01-08 11:24 UTC (permalink / raw)
To: Werner Sembach; +Cc: Benjamin Tissoires, linux-input, linux-kernel
In-Reply-To: <9f690ec1-9e8b-4862-b1f2-2b68f9be9fb2@tuxedocomputers.com>
On Wed, 10 Dec 2025, Werner Sembach wrote:
> >> Uniwill devices have a built in gesture in the touchpad to de- and
> >> reactivate it by double taping the upper left corner. This gesture stops
> >> working when latency is set to high, so this patch keeps the latency on
> >> normal.
> Just wanna make sure this doesn't get missed for the 6.19 cycle.
According to my notes, the last thing you said on the v3 discussion with
Benjamin was "v4 incoming", so I did put this on backburner until I see v4
... has anything changed there?
Thanks,
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* Re: [PATCH] drivers/hid: add HID++ support for Logitech MX Anywhere 3S
From: Jiri Kosina @ 2026-01-08 11:22 UTC (permalink / raw)
To: Dennis Marttinen
Cc: Filipe Lains, Bastien Nocera, Benjamin Tissoires, linux-input,
linux-kernel
In-Reply-To: <20260104125846.61191-1-twelho@welho.tech>
On Sun, 4 Jan 2026, Dennis Marttinen wrote:
> I've acquired a Logitech MX Anywhere 3S mouse, which supports HID++ over
> Bluetooth. Adding its PID 0xb037 to the allowlist enables the additional
> features, such as high-resolution scrolling. Tested working across multiple
> machines, with a mix of Intel and Mediatek Bluetooth chips.
>
> Signed-off-by: Dennis Marttinen <twelho@welho.tech>
Applied, thanks.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* Re: [PATCH 3/4] Documentation: ABI: Document SteelSeries headset sysfs attributes
From: Jiri Kosina @ 2026-01-08 11:20 UTC (permalink / raw)
To: Bagas Sanjaya
Cc: Sriman Achanta, Benjamin Tissoires, linux-input, linux-kernel
In-Reply-To: <aVJSNAB8AWpPAQFM@archie.me>
On Mon, 29 Dec 2025, Bagas Sanjaya wrote:
> On Sun, Dec 28, 2025 at 07:20:24AM -0500, Sriman Achanta wrote:
> > +What: /sys/class/hid/drivers/steelseries/<dev>/chatmix_level
> > +Date: January 2025
> > +KernelVersion: 6.19
> > +Contact: Sriman Achanta <srimanachanta@gmail.com>
> > +Description:
> > + Reports the current balance between Game and Chat audio channels
> > + (ChatMix). This value changes when the physical ChatMix dial
> > + on the headset is adjusted.
> > +
> > + Range: 0-128
> > + 0 = 100% Chat / 0% Game
> > + 64 = 50% Chat / 50% Game (Balanced)
> > + 128 = 0% Chat / 100% Game
> > + Access: Read
>
> Sphinx reports htmldocs warnings:
>
> Documentation/ABI/testing/sysfs-driver-hid-steelseries:47: WARNING: Definition list ends without a blank line; unexpected unindent. [docutils]
> Documentation/ABI/testing/sysfs-driver-hid-steelseries:35: WARNING: Definition list ends without a blank line; unexpected unindent. [docutils]
> Documentation/ABI/testing/sysfs-driver-hid-steelseries:62: WARNING: Definition list ends without a blank line; unexpected unindent. [docutils]
>
> I have to fix up the bullet lists:
Sriman, could you please resubmit the series with this fixed?
Thanks,
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* Re: [PATCH v5 0/4] HID: asus: Add Fn+F5 fan control key support for ROG laptops
From: Jiri Kosina @ 2026-01-08 11:17 UTC (permalink / raw)
To: Ionut Nechita (Sunlight Linux)
Cc: bentiss, benato.denis96, ionut_n2001, linux-input, linux-kernel,
superm1
In-Reply-To: <20260108074025.5799-2-sunlightlinux@gmail.com>
On Thu, 8 Jan 2026, Ionut Nechita (Sunlight Linux) wrote:
> I hope this email finds you well. I wanted to follow up on my v5 patch
> series for Fn+F5 fan control key support on Asus ROG laptops, which I
> submitted on January 7th.
>
> The series has received Reviewed-by tags from both Mario Limonciello
> (AMD) and Denis Benato, and I've addressed all the feedback from
> previous versions, including the removal of IS_REACHABLE guards as
> suggested by Mario.
>
> I wanted to check if there are any additional changes or improvements
> you'd like me to make before this series can be considered for merging
> into mainline. I'm happy to address any further feedback.
>
> Also, if you could let me know what the next steps are in the process,
> I would appreciate it.
It took me some time to go through the iterations, feedback and review the
patch, now applied to hid.git#for-6.20/asus, thanks.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* Re: [RFC PATCH 4/6] Input: Assign EV_BTN event to HID Joysticks
From: Benjamin Tissoires @ 2026-01-08 10:50 UTC (permalink / raw)
To: Tomasz Pakuła
Cc: dmitry.torokhov, corbet, jikos, linux-input, linux-kernel,
linux-doc, vi, linux-kernel, peter.hutterer
In-Reply-To: <20260104213132.163904-5-tomasz.pakula.oficjalny@gmail.com>
On Jan 04 2026, Tomasz Pakuła wrote:
> Joysticks will now fire EV_BTN for every of their buttons, even buttons
> that were previously ignored because they were cut off by KEY_MAX. This
> in turns enables joysticks to finally report buttons above 80 which was
> the previous limitation.
>
> Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
> ---
> drivers/hid/hid-input.c | 27 +++++++++++++++++++++------
> include/linux/input.h | 2 ++
> 2 files changed, 23 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
> index 900a6fc9813e..1c11077b1577 100644
> --- a/drivers/hid/hid-input.c
> +++ b/drivers/hid/hid-input.c
> @@ -760,11 +760,15 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
> case HID_GD_MOUSE:
> case HID_GD_POINTER: code += BTN_MOUSE; break;
> case HID_GD_JOYSTICK:
> - if (code <= 0xf)
> - code += BTN_JOYSTICK;
> - else
> - code += BTN_TRIGGER_HAPPY - 0x10;
> - break;
> + if (input->button_count >= INPUT_MAX_BUTTONS)
> + goto ignore;
> +
> + code += BTN_JOYSTICK;
> + if (code > BTN_DEAD)
> + code += BTN_TRIGGER_HAPPY - BTN_DEAD - 1;
> + if (code > KEY_MAX)
> + code = KEY_RESERVED;
> + break;
> case HID_GD_GAMEPAD:
> if (code <= 0xf)
> code += BTN_GAMEPAD;
> @@ -1379,7 +1383,6 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
> }
>
> set_bit(usage->type, input->evbit);
> -
> /*
> * This part is *really* controversial:
> * - HID aims at being generic so we should do our best to export
> @@ -1390,12 +1393,18 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
> * *_MISC+N to overwrite a legitimate even, which confuses userspace
> * (for instance ABS_MISC + 7 is ABS_MT_SLOT, which has a different
> * processing)
> + * - Joysticks can have arbitrary number of buttons without defined
> + * usages. Buttons that extend beyond KEY_MAX are assigned to
> + * KEY_RESERVED thus deduplication must be disabled for them.
> *
> * If devices still want to use this (at their own risk), they will
> * have to use the quirk HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE, but
> * the default should be a reliable mapping.
> */
> while (usage->code <= max && test_and_set_bit(usage->code, bit)) {
> + if (field->application == HID_GD_JOYSTICK && usage->code == KEY_RESERVED)
> + break;
> +
> if (device->quirks & HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE) {
> usage->code = find_next_zero_bit(bit,
> max + 1,
> @@ -1455,6 +1464,12 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
> if (usage->type == EV_KEY) {
> set_bit(EV_MSC, input->evbit);
> set_bit(MSC_SCAN, input->mscbit);
> +
> + if (field->application == HID_GD_JOYSTICK &&
> + (usage->hid & HID_USAGE_PAGE) == HID_UP_BUTTON) {
Too bad we only set up the button ranges for joysticks, when we could do
this for all HID devices with a button usage page.
It also makes the code hard to follow because we now enable this at the
different place than the other mappings.
Cheers,
Benjamin
> + set_bit(EV_BTN, input->evbit);
> + ++input->button_count;
> + }
> }
>
> return;
> diff --git a/include/linux/input.h b/include/linux/input.h
> index f6389de4a4d1..7f39c663fa85 100644
> --- a/include/linux/input.h
> +++ b/include/linux/input.h
> @@ -214,6 +214,8 @@ struct input_dev {
> };
> #define to_input_dev(d) container_of(d, struct input_dev, dev)
>
> +#define INPUT_MAX_BUTTONS 2048 /* A sane limit of supported device buttons */
> +
> /*
> * Verify that we are in sync with input_device_id mod_devicetable.h #defines
> */
> --
> 2.52.0
>
^ permalink raw reply
* Re: [RFC PATCH 3/6] Input: Fire EV_BTN if found in ev_bit
From: Benjamin Tissoires @ 2026-01-08 10:48 UTC (permalink / raw)
To: Tomasz Pakuła
Cc: dmitry.torokhov, corbet, jikos, linux-input, linux-kernel,
linux-doc, vi, linux-kernel, peter.hutterer
In-Reply-To: <20260104213132.163904-4-tomasz.pakula.oficjalny@gmail.com>
On Jan 04 2026, Tomasz Pakuła wrote:
> Passes EV_BTN through to handlers and allows reacting to this event by
> clients.
>
> Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
> ---
> drivers/hid/hid-input.c | 20 +++++++++++++++-----
> 1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
> index 2bbb645c2ff4..900a6fc9813e 100644
> --- a/drivers/hid/hid-input.c
> +++ b/drivers/hid/hid-input.c
> @@ -1673,7 +1673,8 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
>
> switch (usage->type) {
> case EV_KEY:
> - if (usage->code == 0) /* Key 0 is "unassigned", not KEY_UNKNOWN */
> + /* Key 0 is "unassigned", not KEY_UNKNOWN */
> + if (usage->code == 0 && !test_bit(EV_BTN, input->evbit))
> return;
> break;
>
> @@ -1723,10 +1724,19 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
> value == field->value[usage->usage_index])
> return;
>
> - /* report the usage code as scancode if the key status has changed */
> - if (usage->type == EV_KEY &&
> - (!test_bit(usage->code, input->key)) == value)
> - input_event(input, EV_MSC, MSC_SCAN, usage->hid);
> +
> + if (usage->type == EV_KEY) {
> + /* Send out EV_BTN with button number (starts at 1) */
> + if (test_bit(EV_BTN, input->evbit))
> + input_event(input, EV_BTN, usage->hid & HID_USAGE, value);
In addition to what Peter said, this seems to be a lot more convoluted
than what it needs to be.
The one nice thing about the EV_BTN is that is transfers the intend of
"this is a buttons with no particular meaning". And that's exactly what
the HID usage page "button" is.
So why not:
- whenever there are buttons from the HID usage page button -> map them
to EV_BTN
- only map EV_BTN to usage page Button (to prevent weird things
happening with keyboards)
- keep doing the weird mapping in HID we do but do not upper bound the
EV_KEY like we do (first hunk in this patch), and store the mapping
EV_BTN/EV_KEY in the input/evdev subsystem, not in HID
- on the HID side, we fire just the EV_BTN for button usage page, and
input does the backward compatibility.
- the backward compatibility needs to be in the input side of things so
we can add the new ioctls Peter was mentioning.
Cheers,
Benjamin
> +
> + if (usage->code == 0)
> + return;
> +
> + /* report usage code as scancode if the status has changed */
> + if ((!test_bit(usage->code, input->key)) == value)
> + input_event(input, EV_MSC, MSC_SCAN, usage->hid);
> + }
>
> input_event(input, usage->type, usage->code, value);
>
> --
> 2.52.0
>
^ permalink raw reply
* [PATCH v2 5/6] dt-bindings: sound: google,goldfish-audio: Convert to DT schema
From: Kuan-Wei Chiu @ 2026-01-08 8:08 UTC (permalink / raw)
To: airlied, simona, maarten.lankhorst, mripard, tzimmermann, robh,
krzk+dt, conor+dt, dmitry.torokhov, sre, gregkh, jirislaby,
lgirdwood, broonie
Cc: jserv, eleanor15x, dri-devel, devicetree, linux-kernel,
linux-input, linux-pm, linux-serial, linux-sound,
krzysztof.kozlowski, Kuan-Wei Chiu
In-Reply-To: <20260108080836.3777829-1-visitorckw@gmail.com>
Convert the Android Goldfish Audio binding to DT schema format.
Move the file to the sound directory to match the subsystem.
Update the example node name to 'sound' to comply with generic node
naming standards.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
Changes in v2:
- None.
.../devicetree/bindings/goldfish/audio.txt | 17 ---------
.../bindings/sound/google,goldfish-audio.yaml | 38 +++++++++++++++++++
2 files changed, 38 insertions(+), 17 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/goldfish/audio.txt
create mode 100644 Documentation/devicetree/bindings/sound/google,goldfish-audio.yaml
diff --git a/Documentation/devicetree/bindings/goldfish/audio.txt b/Documentation/devicetree/bindings/goldfish/audio.txt
deleted file mode 100644
index d043fda433ba..000000000000
--- a/Documentation/devicetree/bindings/goldfish/audio.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish Audio
-
-Android goldfish audio device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-audio" to match emulator
-- reg : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
- goldfish_audio@9030000 {
- compatible = "google,goldfish-audio";
- reg = <0x9030000 0x100>;
- interrupts = <0x4>;
- };
diff --git a/Documentation/devicetree/bindings/sound/google,goldfish-audio.yaml b/Documentation/devicetree/bindings/sound/google,goldfish-audio.yaml
new file mode 100644
index 000000000000..e0b26c1f7b8e
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/google,goldfish-audio.yaml
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/google,goldfish-audio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish Audio
+
+maintainers:
+ - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+description:
+ Android goldfish audio device generated by Android emulator.
+
+properties:
+ compatible:
+ const: google,goldfish-audio
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+additionalProperties: false
+
+examples:
+ - |
+ sound@9030000 {
+ compatible = "google,goldfish-audio";
+ reg = <0x9030000 0x100>;
+ interrupts = <0x4>;
+ };
--
2.52.0.457.g6b5491de43-goog
^ permalink raw reply related
* [PATCH v2 2/6] dt-bindings: misc: google,android-pipe: Convert to DT schema
From: Kuan-Wei Chiu @ 2026-01-08 8:08 UTC (permalink / raw)
To: airlied, simona, maarten.lankhorst, mripard, tzimmermann, robh,
krzk+dt, conor+dt, dmitry.torokhov, sre, gregkh, jirislaby,
lgirdwood, broonie
Cc: jserv, eleanor15x, dri-devel, devicetree, linux-kernel,
linux-input, linux-pm, linux-serial, linux-sound,
krzysztof.kozlowski, Kuan-Wei Chiu
In-Reply-To: <20260108080836.3777829-1-visitorckw@gmail.com>
Convert the Android Goldfish QEMU Pipe binding to DT schema format.
Move the file to the misc directory as it represents a miscellaneous
communication device.
Update the example node name to 'pipe' to comply with generic node
naming standards and fix the mismatch between unit address and reg
property in the original example.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
Changes in v2:
- None.
.../devicetree/bindings/goldfish/pipe.txt | 17 ---------
.../bindings/misc/google,android-pipe.yaml | 38 +++++++++++++++++++
2 files changed, 38 insertions(+), 17 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/goldfish/pipe.txt
create mode 100644 Documentation/devicetree/bindings/misc/google,android-pipe.yaml
diff --git a/Documentation/devicetree/bindings/goldfish/pipe.txt b/Documentation/devicetree/bindings/goldfish/pipe.txt
deleted file mode 100644
index 5637ce701788..000000000000
--- a/Documentation/devicetree/bindings/goldfish/pipe.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish QEMU Pipe
-
-Android pipe virtual device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,android-pipe" to match emulator
-- reg : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
- android_pipe@a010000 {
- compatible = "google,android-pipe";
- reg = <ff018000 0x2000>;
- interrupts = <0x12>;
- };
diff --git a/Documentation/devicetree/bindings/misc/google,android-pipe.yaml b/Documentation/devicetree/bindings/misc/google,android-pipe.yaml
new file mode 100644
index 000000000000..12b0cfc815e4
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/google,android-pipe.yaml
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/misc/google,android-pipe.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish QEMU Pipe
+
+maintainers:
+ - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+description:
+ Android QEMU pipe virtual device generated by Android emulator.
+
+properties:
+ compatible:
+ const: google,android-pipe
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+additionalProperties: false
+
+examples:
+ - |
+ pipe@ff018000 {
+ compatible = "google,android-pipe";
+ reg = <0xff018000 0x2000>;
+ interrupts = <0x12>;
+ };
--
2.52.0.457.g6b5491de43-goog
^ permalink raw reply related
* [PATCH v2 1/6] dt-bindings: serial: google,goldfish-tty: Convert to DT schema
From: Kuan-Wei Chiu @ 2026-01-08 8:08 UTC (permalink / raw)
To: airlied, simona, maarten.lankhorst, mripard, tzimmermann, robh,
krzk+dt, conor+dt, dmitry.torokhov, sre, gregkh, jirislaby,
lgirdwood, broonie
Cc: jserv, eleanor15x, dri-devel, devicetree, linux-kernel,
linux-input, linux-pm, linux-serial, linux-sound,
krzysztof.kozlowski, Kuan-Wei Chiu
In-Reply-To: <20260108080836.3777829-1-visitorckw@gmail.com>
Convert the Google Goldfish TTY binding to DT schema format.
Move the file to the serial directory to match the subsystem.
Update the example node name to 'serial' to comply with generic node
naming standards.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
Changes in v2:
- Add reference to serial.yaml schema.
- Change additionalProperties to unevaluatedProperties: false.
.../devicetree/bindings/goldfish/tty.txt | 17 --------
.../bindings/serial/google,goldfish-tty.yaml | 41 +++++++++++++++++++
2 files changed, 41 insertions(+), 17 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/goldfish/tty.txt
create mode 100644 Documentation/devicetree/bindings/serial/google,goldfish-tty.yaml
diff --git a/Documentation/devicetree/bindings/goldfish/tty.txt b/Documentation/devicetree/bindings/goldfish/tty.txt
deleted file mode 100644
index 82648278da77..000000000000
--- a/Documentation/devicetree/bindings/goldfish/tty.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish TTY
-
-Android goldfish tty device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-tty" to match emulator
-- reg : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
- goldfish_tty@1f004000 {
- compatible = "google,goldfish-tty";
- reg = <0x1f004000 0x1000>;
- interrupts = <0xc>;
- };
diff --git a/Documentation/devicetree/bindings/serial/google,goldfish-tty.yaml b/Documentation/devicetree/bindings/serial/google,goldfish-tty.yaml
new file mode 100644
index 000000000000..0b702c8657c2
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/google,goldfish-tty.yaml
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serial/google,goldfish-tty.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google Goldfish TTY
+
+maintainers:
+ - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+allOf:
+ - $ref: /schemas/serial/serial.yaml#
+
+description:
+ Android goldfish TTY device generated by Android emulator.
+
+properties:
+ compatible:
+ const: google,goldfish-tty
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ serial@1f004000 {
+ compatible = "google,goldfish-tty";
+ reg = <0x1f004000 0x1000>;
+ interrupts = <0xc>;
+ };
--
2.52.0.457.g6b5491de43-goog
^ permalink raw reply related
* [PATCH v2 6/6] dt-bindings: display: google,goldfish-fb: Convert to DT schema
From: Kuan-Wei Chiu @ 2026-01-08 8:08 UTC (permalink / raw)
To: airlied, simona, maarten.lankhorst, mripard, tzimmermann, robh,
krzk+dt, conor+dt, dmitry.torokhov, sre, gregkh, jirislaby,
lgirdwood, broonie
Cc: jserv, eleanor15x, dri-devel, devicetree, linux-kernel,
linux-input, linux-pm, linux-serial, linux-sound,
krzysztof.kozlowski, Kuan-Wei Chiu
In-Reply-To: <20260108080836.3777829-1-visitorckw@gmail.com>
Convert the Android Goldfish Framebuffer binding to DT schema format.
Update the example node name to 'display' to comply with generic node
naming standards.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
Changes in v2:
- None.
.../bindings/display/google,goldfish-fb.txt | 17 ---------
.../bindings/display/google,goldfish-fb.yaml | 38 +++++++++++++++++++
2 files changed, 38 insertions(+), 17 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/display/google,goldfish-fb.txt
create mode 100644 Documentation/devicetree/bindings/display/google,goldfish-fb.yaml
diff --git a/Documentation/devicetree/bindings/display/google,goldfish-fb.txt b/Documentation/devicetree/bindings/display/google,goldfish-fb.txt
deleted file mode 100644
index 751fa9f51e5d..000000000000
--- a/Documentation/devicetree/bindings/display/google,goldfish-fb.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish framebuffer
-
-Android Goldfish framebuffer device used by Android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-fb"
-- reg : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
- display-controller@1f008000 {
- compatible = "google,goldfish-fb";
- interrupts = <0x10>;
- reg = <0x1f008000 0x100>;
- };
diff --git a/Documentation/devicetree/bindings/display/google,goldfish-fb.yaml b/Documentation/devicetree/bindings/display/google,goldfish-fb.yaml
new file mode 100644
index 000000000000..48b9c056d9ac
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/google,goldfish-fb.yaml
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/google,goldfish-fb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish Framebuffer
+
+maintainers:
+ - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+description:
+ Android Goldfish framebuffer device used by Android emulator.
+
+properties:
+ compatible:
+ const: google,goldfish-fb
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+additionalProperties: false
+
+examples:
+ - |
+ display@1f008000 {
+ compatible = "google,goldfish-fb";
+ reg = <0x1f008000 0x100>;
+ interrupts = <0x10>;
+ };
--
2.52.0.457.g6b5491de43-goog
^ permalink raw reply related
* [PATCH v2 3/6] dt-bindings: input: google,goldfish-events-keypad: Convert to DT schema
From: Kuan-Wei Chiu @ 2026-01-08 8:08 UTC (permalink / raw)
To: airlied, simona, maarten.lankhorst, mripard, tzimmermann, robh,
krzk+dt, conor+dt, dmitry.torokhov, sre, gregkh, jirislaby,
lgirdwood, broonie
Cc: jserv, eleanor15x, dri-devel, devicetree, linux-kernel,
linux-input, linux-pm, linux-serial, linux-sound,
krzysztof.kozlowski, Kuan-Wei Chiu
In-Reply-To: <20260108080836.3777829-1-visitorckw@gmail.com>
Convert the Android Goldfish Events Keypad binding to DT schema format.
Move the file to the input directory to match the subsystem.
Update the example node name to 'keypad' to comply with generic node
naming standards.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
Changes in v2:
- Add reference to input.yaml schema.
- Change additionalProperties to unevaluatedProperties: false.
.../devicetree/bindings/goldfish/events.txt | 17 --------
.../input/google,goldfish-events-keypad.yaml | 41 +++++++++++++++++++
2 files changed, 41 insertions(+), 17 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/goldfish/events.txt
create mode 100644 Documentation/devicetree/bindings/input/google,goldfish-events-keypad.yaml
diff --git a/Documentation/devicetree/bindings/goldfish/events.txt b/Documentation/devicetree/bindings/goldfish/events.txt
deleted file mode 100644
index 5babf46317a4..000000000000
--- a/Documentation/devicetree/bindings/goldfish/events.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish Events Keypad
-
-Android goldfish events keypad device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-events-keypad" to match emulator
-- reg : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
- goldfish-events@9040000 {
- compatible = "google,goldfish-events-keypad";
- reg = <0x9040000 0x1000>;
- interrupts = <0x5>;
- };
diff --git a/Documentation/devicetree/bindings/input/google,goldfish-events-keypad.yaml b/Documentation/devicetree/bindings/input/google,goldfish-events-keypad.yaml
new file mode 100644
index 000000000000..4d359c9be600
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/google,goldfish-events-keypad.yaml
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/google,goldfish-events-keypad.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish Events Keypad
+
+maintainers:
+ - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+allOf:
+ - $ref: input.yaml#
+
+description:
+ Android goldfish events keypad device generated by android emulator.
+
+properties:
+ compatible:
+ const: google,goldfish-events-keypad
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ keypad@9040000 {
+ compatible = "google,goldfish-events-keypad";
+ reg = <0x9040000 0x1000>;
+ interrupts = <0x5>;
+ };
--
2.52.0.457.g6b5491de43-goog
^ permalink raw reply related
* [PATCH v2 0/6] dt-bindings: goldfish: Convert to DT schema
From: Kuan-Wei Chiu @ 2026-01-08 8:08 UTC (permalink / raw)
To: airlied, simona, maarten.lankhorst, mripard, tzimmermann, robh,
krzk+dt, conor+dt, dmitry.torokhov, sre, gregkh, jirislaby,
lgirdwood, broonie
Cc: jserv, eleanor15x, dri-devel, devicetree, linux-kernel,
linux-input, linux-pm, linux-serial, linux-sound,
krzysztof.kozlowski, Kuan-Wei Chiu
Convert the Android Goldfish emulator platform bindings from text
format to DT schema.
Most of these bindings are currently located in
Documentation/devicetree/bindings/goldfish/. Move them to the
appropriate subsystem directories (serial, input, power, sound, misc)
to align with the kernel directory structure.
Update the examples to use generic node names (e.g., 'serial' instead
of 'goldfish_tty') and fix minor inconsistencies in the original
documentation to comply with current DT specifications.
---
Changes in v2:
- Add references to generic subsystem schemas (serial, input,
power-supply) where applicable.
- Update property validation to use 'unevaluatedProperties: false' for
schemas referencing generic bindings.
v1: https://lore.kernel.org/lkml/20251230181031.3191565-1-visitorckw@gmail.com/
Kuan-Wei Chiu (6):
dt-bindings: serial: google,goldfish-tty: Convert to DT schema
dt-bindings: misc: google,android-pipe: Convert to DT schema
dt-bindings: input: google,goldfish-events-keypad: Convert to DT
schema
dt-bindings: power: supply: google,goldfish-battery: Convert to DT
schema
dt-bindings: sound: google,goldfish-audio: Convert to DT schema
dt-bindings: display: google,goldfish-fb: Convert to DT schema
.../bindings/display/google,goldfish-fb.txt | 17 --------
.../bindings/display/google,goldfish-fb.yaml | 38 +++++++++++++++++
.../devicetree/bindings/goldfish/audio.txt | 17 --------
.../devicetree/bindings/goldfish/battery.txt | 17 --------
.../devicetree/bindings/goldfish/events.txt | 17 --------
.../devicetree/bindings/goldfish/pipe.txt | 17 --------
.../devicetree/bindings/goldfish/tty.txt | 17 --------
.../input/google,goldfish-events-keypad.yaml | 41 +++++++++++++++++++
.../bindings/misc/google,android-pipe.yaml | 38 +++++++++++++++++
.../power/supply/google,goldfish-battery.yaml | 41 +++++++++++++++++++
.../bindings/serial/google,goldfish-tty.yaml | 41 +++++++++++++++++++
.../bindings/sound/google,goldfish-audio.yaml | 38 +++++++++++++++++
12 files changed, 237 insertions(+), 102 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/display/google,goldfish-fb.txt
create mode 100644 Documentation/devicetree/bindings/display/google,goldfish-fb.yaml
delete mode 100644 Documentation/devicetree/bindings/goldfish/audio.txt
delete mode 100644 Documentation/devicetree/bindings/goldfish/battery.txt
delete mode 100644 Documentation/devicetree/bindings/goldfish/events.txt
delete mode 100644 Documentation/devicetree/bindings/goldfish/pipe.txt
delete mode 100644 Documentation/devicetree/bindings/goldfish/tty.txt
create mode 100644 Documentation/devicetree/bindings/input/google,goldfish-events-keypad.yaml
create mode 100644 Documentation/devicetree/bindings/misc/google,android-pipe.yaml
create mode 100644 Documentation/devicetree/bindings/power/supply/google,goldfish-battery.yaml
create mode 100644 Documentation/devicetree/bindings/serial/google,goldfish-tty.yaml
create mode 100644 Documentation/devicetree/bindings/sound/google,goldfish-audio.yaml
--
2.52.0.457.g6b5491de43-goog
^ permalink raw reply
* [PATCH v2 4/6] dt-bindings: power: supply: google,goldfish-battery: Convert to DT schema
From: Kuan-Wei Chiu @ 2026-01-08 8:08 UTC (permalink / raw)
To: airlied, simona, maarten.lankhorst, mripard, tzimmermann, robh,
krzk+dt, conor+dt, dmitry.torokhov, sre, gregkh, jirislaby,
lgirdwood, broonie
Cc: jserv, eleanor15x, dri-devel, devicetree, linux-kernel,
linux-input, linux-pm, linux-serial, linux-sound,
krzysztof.kozlowski, Kuan-Wei Chiu
In-Reply-To: <20260108080836.3777829-1-visitorckw@gmail.com>
Convert the Android Goldfish Battery binding to DT schema format.
Move the file to the power/supply directory to match the subsystem.
Update the example node name to 'battery' to comply with generic node
naming standards.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
Changes in v2:
- Add reference to power-supply.yaml schema.
- Change additionalProperties to unevaluatedProperties: false.
.../devicetree/bindings/goldfish/battery.txt | 17 --------
.../power/supply/google,goldfish-battery.yaml | 41 +++++++++++++++++++
2 files changed, 41 insertions(+), 17 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/goldfish/battery.txt
create mode 100644 Documentation/devicetree/bindings/power/supply/google,goldfish-battery.yaml
diff --git a/Documentation/devicetree/bindings/goldfish/battery.txt b/Documentation/devicetree/bindings/goldfish/battery.txt
deleted file mode 100644
index 4fb613933214..000000000000
--- a/Documentation/devicetree/bindings/goldfish/battery.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish Battery
-
-Android goldfish battery device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-battery" to match emulator
-- reg : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
- goldfish_battery@9020000 {
- compatible = "google,goldfish-battery";
- reg = <0x9020000 0x1000>;
- interrupts = <0x3>;
- };
diff --git a/Documentation/devicetree/bindings/power/supply/google,goldfish-battery.yaml b/Documentation/devicetree/bindings/power/supply/google,goldfish-battery.yaml
new file mode 100644
index 000000000000..909252d91c16
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/supply/google,goldfish-battery.yaml
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/supply/google,goldfish-battery.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish Battery
+
+maintainers:
+ - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+allOf:
+ - $ref: power-supply.yaml#
+
+description:
+ Android goldfish battery device generated by Android emulator.
+
+properties:
+ compatible:
+ const: google,goldfish-battery
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ battery@9020000 {
+ compatible = "google,goldfish-battery";
+ reg = <0x9020000 0x1000>;
+ interrupts = <0x3>;
+ };
--
2.52.0.457.g6b5491de43-goog
^ permalink raw reply related
* Re: [PATCH v5 0/4] HID: asus: Add Fn+F5 fan control key support for ROG laptops
From: Ionut Nechita (Sunlight Linux) @ 2026-01-08 7:40 UTC (permalink / raw)
To: jikos, bentiss
Cc: benato.denis96, ionut_n2001, Ionut Nechita, linux-input,
linux-kernel, superm1
In-Reply-To: <20260107154219.164514-2-sunlightlinux@gmail.com>
Hello,
I hope this email finds you well. I wanted to follow up on my v5 patch
series for Fn+F5 fan control key support on Asus ROG laptops, which I
submitted on January 7th.
The series has received Reviewed-by tags from both Mario Limonciello
(AMD) and Denis Benato, and I've addressed all the feedback from
previous versions, including the removal of IS_REACHABLE guards as
suggested by Mario.
I wanted to check if there are any additional changes or improvements
you'd like me to make before this series can be considered for merging
into mainline. I'm happy to address any further feedback.
Also, if you could let me know what the next steps are in the process,
I would appreciate it.
Thank you for your time and guidance.
Best regards,
Ionut
^ permalink raw reply
* [PATCH V3 RESEND 2/2] HID: i2c-hid: elan: Add parade-tc3408 timing
From: Langyan Ye @ 2026-01-08 6:35 UTC (permalink / raw)
To: dmitry.torokhov, robh, krzk+dt, conor+dt, jikos, bentiss
Cc: dianders, linux-input, devicetree, linux-kernel, Langyan Ye
In-Reply-To: <20260108063524.742464-1-yelangyan@huaqin.corp-partner.google.com>
Parade-tc3408 requires reset to pull down time greater than 10ms,
so the configuration post_power_delay_ms is 10, and the chipset
initial time is required to be greater than 300ms,
so the post_gpio_reset_on_delay_ms is set to 300.
Signed-off-by: Langyan Ye <yelangyan@huaqin.corp-partner.google.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
---
drivers/hid/i2c-hid/i2c-hid-of-elan.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/hid/i2c-hid/i2c-hid-of-elan.c b/drivers/hid/i2c-hid/i2c-hid-of-elan.c
index 0215f217f6d8..2a6548fd234a 100644
--- a/drivers/hid/i2c-hid/i2c-hid-of-elan.c
+++ b/drivers/hid/i2c-hid/i2c-hid-of-elan.c
@@ -188,11 +188,19 @@ static const struct elan_i2c_hid_chip_data ilitek_ili2901_chip_data = {
.main_supply_name = "vcc33",
};
+static const struct elan_i2c_hid_chip_data parade_tc3408_chip_data = {
+ .post_power_delay_ms = 10,
+ .post_gpio_reset_on_delay_ms = 300,
+ .hid_descriptor_address = 0x0001,
+ .main_supply_name = "vcc33",
+};
+
static const struct of_device_id elan_i2c_hid_of_match[] = {
{ .compatible = "elan,ekth6915", .data = &elan_ekth6915_chip_data },
{ .compatible = "elan,ekth6a12nay", .data = &elan_ekth6a12nay_chip_data },
{ .compatible = "ilitek,ili9882t", .data = &ilitek_ili9882t_chip_data },
{ .compatible = "ilitek,ili2901", .data = &ilitek_ili2901_chip_data },
+ { .compatible = "parade,tc3408", .data = ¶de_tc3408_chip_data },
{ }
};
MODULE_DEVICE_TABLE(of, elan_i2c_hid_of_match);
--
2.34.1
^ permalink raw reply related
* [PATCH V3 RESEND 1/2] dt-bindings: input: Add Parade TC3408 touchscreen controller
From: Langyan Ye @ 2026-01-08 6:35 UTC (permalink / raw)
To: dmitry.torokhov, robh, krzk+dt, conor+dt, jikos, bentiss
Cc: dianders, linux-input, devicetree, linux-kernel, Langyan Ye,
Conor Dooley
In-Reply-To: <20260108063524.742464-1-yelangyan@huaqin.corp-partner.google.com>
The tc3408 touch screen chip same as Elan eKTH6915 controller
has a reset gpio. The difference is that they have different
post_power_delay_ms.
Signed-off-by: Langyan Ye <yelangyan@huaqin.corp-partner.google.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
---
.../bindings/input/parade,tc3408.yaml | 68 +++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 Documentation/devicetree/bindings/input/parade,tc3408.yaml
diff --git a/Documentation/devicetree/bindings/input/parade,tc3408.yaml b/Documentation/devicetree/bindings/input/parade,tc3408.yaml
new file mode 100644
index 000000000000..30ffefb96c68
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/parade,tc3408.yaml
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/parade,tc3408.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Parade TC3408 touchscreen controller
+
+maintainers:
+ - Langyan Ye <yelangyan@huaqin.corp-partner.google.com>
+
+description: |
+ Parade TC3408 is a touchscreen controller supporting the I2C-HID protocol.
+ It requires a reset GPIO and two power supplies (3.3V and 1.8V).
+
+allOf:
+ - $ref: /schemas/input/touchscreen/touchscreen.yaml#
+
+properties:
+ compatible:
+ const: parade,tc3408
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ reset-gpios:
+ maxItems: 1
+
+ vcc33-supply:
+ description: The 3.3V supply to the touchscreen.
+
+ vccio-supply:
+ description: The 1.8V supply to the touchscreen.
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - reset-gpios
+ - vcc33-supply
+ - vccio-supply
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen: touchscreen@24 {
+ compatible = "parade,tc3408";
+ reg = <0x24>;
+
+ interrupt-parent = <&pio>;
+ interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
+
+ reset-gpios = <&pio 126 GPIO_ACTIVE_LOW>;
+ vcc33-supply = <&pp3300_tchscr_x>;
+ vccio-supply = <&pp1800_tchscr_report_disable>;
+ };
+ };
--
2.34.1
^ permalink raw reply related
* [PATCH V3 RESEND 0/2] Add tc3408 bindings and timing
From: Langyan Ye @ 2026-01-08 6:35 UTC (permalink / raw)
To: dmitry.torokhov, robh, krzk+dt, conor+dt, jikos, bentiss
Cc: dianders, linux-input, devicetree, linux-kernel, Langyan Ye
The tc3408 touch screen chip same as Elan eKTH6915 controller
has a reset gpio. The difference is that they have different
post_power_delay_ms.
According to the Parade TC3408 datasheet, the reset pin requires a
pull-down duration longer than 10 ms, therefore post_power_delay_ms
is set to 10. In addition, the chipset requires an initialization
time greater than 300 ms after reset, so post_gpio_reset_on_delay_ms
is configured as 300.
Changes in v3:
- PATCH 2/2: Corrected post_gpio_reset_on_delay_ms: 100 -> 300
- Link to v2: https://lore.kernel.org/all/20250820122520.3356738-1-yelangyan@huaqin.corp-partner.google.com/
Changes in v2:
- PATCH 1/2: Drop redundant "bindings for" from subject
- PATCH 1/2: Improve description (describe hardware instead of bindings)
- PATCH 1/2: Drop "panel: true" property
- PATCH 1/2: Drop redundant description for reset-gpios
- PATCH 1/2: Use unevaluatedProperties: false instead of additionalProperties
- Link to v1: https://lore.kernel.org/all/20250819034852.1230264-1-yelangyan@huaqin.corp-partner.google.com/
Langyan Ye (2):
dt-bindings: input: Add Parade TC3408 touchscreen controller
HID: i2c-hid: elan: Add parade-tc3408 timing
.../bindings/input/parade,tc3408.yaml | 68 +++++++++++++++++++
drivers/hid/i2c-hid/i2c-hid-of-elan.c | 8 +++
2 files changed, 76 insertions(+)
create mode 100644 Documentation/devicetree/bindings/input/parade,tc3408.yaml
--
2.34.1
^ permalink raw reply
* Re: [PATCH v2] Input: twl4030 - fix warnings without CONFIG_OF
From: Dmitry Torokhov @ 2026-01-08 6:19 UTC (permalink / raw)
To: Andreas Kemnade; +Cc: linux-input, linux-kernel, kernel test robot
In-Reply-To: <20251227115918.76969-1-andreas@kemnade.info>
On Sat, Dec 27, 2025 at 12:59:18PM +0100, Andreas Kemnade wrote:
> There are unused variables without CONFIG_OF:
> drivers/input/misc/twl4030-pwrbutton.c:41:44: error: unused variable 'twl4030_chipdata' [-Werror,-Wunused-const-variable]
> 41 | static const struct twl_pwrbutton_chipdata twl4030_chipdata = {
> | ^~~~~~~~~~~~~~~~
> drivers/input/misc/twl4030-pwrbutton.c:46:44: error: unused variable 'twl6030_chipdata' [-Werror,-Wunused-const-variable]
> 46 | static const struct twl_pwrbutton_chipdata twl6030_chipdata = {
>
> Fix that by avoiding some #ifdef CONFIG_OF
>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202512220251.jDE8tKup-lkp@intel.com/
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Applied, thank you.
--
Dmitry
^ permalink raw reply
* Re: [RFC PATCH 0/6] Input: New EV_BTN event for generic buttons
From: Peter Hutterer @ 2026-01-08 3:24 UTC (permalink / raw)
To: Tomasz Pakuła
Cc: dmitry.torokhov, corbet, jikos, bentiss, linux-input,
linux-kernel, linux-doc, vi, linux-kernel
In-Reply-To: <20260104213132.163904-1-tomasz.pakula.oficjalny@gmail.com>
On Sun, Jan 04, 2026 at 10:31:26PM +0100, Tomasz Pakuła wrote:
> This patch series adds EV_BTN and it's handling to the input system. It's main
> focus is to add a simple event for generic buttons, not relying on defined
> usages and meanings.
>
> Joysticks unlike keyboards, mice and even gamepads (though that's debatable)
> define arbitrary number of buttons that don't mean anything. They can be used
> in any kind of software, but mainly games, by assigning them manually to
> functions. Some games even carry default presets for devices based on their USB
> VID:PID pairs.
>
> The more important issue that this is trying to solve is the longstanding
> problem of limited button support in Linux. The use for arbitrary number of
> buttons wasn't considered some 20 years ago because Linux wasn't a good platform
> for gaming. First, Joystick and Gamepad ranges were limited to 16 buttons, later
> extended by 40 additional usages in the TRIGGER_HAPPY range. By allowing the
> usages to be incremented up to KEY_MAX, Joysticks were able to expose up to 80
> buttons for the past 15 years or so.
>
> Many simracing, simflight etc. devices actually expose way more then that. 128
> is a pretty common number with even more in the wild. Usually the numbers get so
> big to support things like positional rotary switches as one such rotary can
> have 12+ positions. My Moza GS V2P wheel has 5 such rotaries and that's not
> counting other buttons.
>
> Doing something about this limit was brought up maaany times in the past:
> https://forums.x-plane.org/forums/topic/299033-xp12-linux-winwing-orion-2-throttle-has-too-many-buttons/?page=1
> https://forum.falcon-bms.com/topic/26403/solved-winwing-orion-2-on-linux-only-80-buttons-detected
> https://lore.kernel.org/linux-input/CACa7zynMpa3BOJUW=s_Tj1TwH5txDQOuta5Fph45PYhDOtQQ3g@mail.gmail.com/
> https://lore.kernel.org/linux-input/20200710065112.18286-1-cpuwolf@gmail.com/#r
> https://lore.kernel.org/linux-input/20240802201001.406898-1-tomasz.pakula.oficjalny@gmail.com/
> https://lore.kernel.org/linux-input/20250201113906.769162-11-tomasz.pakula.oficjalny@gmail.com/
> https://lore.kernel.org/linux-input/20251119163844.1343-1-Hunter.Moore@garmin.com/
> https://lore.kernel.org/linux-input/20251220194100.GA12646@altimeter-info/
> https://lore.kernel.org/linux-input/665df7c9-0d32-4ecd-9f4d-fff67deb5878@endrift.com/
>
> But some considerations:
>
> 1. Usages have their actual meanings and we shouldn't use them willy-nilly to add
> more buttons, even if that approach works with naive approaches use by SDL and
> Wine alike.
fwiw, we *already* add those usages willy-nilly for a rather large
proportion of devices. any HID device with the Button usage page will
convert from HID button 4 to BTN_SIDE and then the rest of the stack
pretends this was a conscious choice. Which leads to hilarities that
BTN_SIDE is actually the back button and BTN_BACK is just... button 7
(or button 11 thanks to X11 history). Which then again leads to
hilarities that sending BTN_BACK to indicate a back action may or may
not have an effect, I recently had a bug like this in mutter/gtk's tablet
handling. IOW, it's quite messy anyway.
So what I (think I) would like is to use EV_BTN in addition with EV_KEY
to signal purely numbered buttons but *also* which buttons have the
exact semantic meaning. The logic becomes:
If an EV_KEY $code is just a numbered button it *also* sends EV_BTN
$number.
If an EV_KEY $code is a fixed semantic meaning (e.g. BTN_BACK) it does
*not* send an EV_BTN $number.
Then we can have a mapping in the device that maps from EV_BTN to EV_KEY
code, obtained via some EVIOCBTNKEYCODE() ioctl. The hypothetical
example of a device with 3 numbered buttons and a fixed BTN_BACK would
be: EV_BTN count of 3, EV_KEY bits for left/middle/right and back.
nbuttons = EVIOCBTNCNT()
EVIOCBTNKEYCODE(0, nbuttons) returns [BTN_LEFT, BTN_RIGHT, BTN_MIDDLE]
A sequence with right and back down would look like this:
Event: time 1767559522.509446, type 6 (EV_BTN), button 2, value 1
Event: time 1767559522.509446, type 6 (EV_KEY), code 0x110 (BTN_RIGHT), value 1
Event: time 1767559522.509446, type 6 (EV_KEY), code 0x110 (BTN_BACK), value 1
Event: time 1767559522.509446, type 4 (EV_MSC), code 4 (MSC_SCAN), value 9000c
Event: time 1767559522.509446, -------------- SYN_REPORT ------------
And userspace can ignore BTN_RIGHT thanks to that mapping but BTN_BACK
retains its semantic meaning. This is flexible enough even though I'm
not sure how many devices will mix the two.
Does that make sense?
Cheers,
Peter
> 2. Extending the KEY_MAX will cause additional issues when it comes to bitmask
> sizes, mapping usages and reading them afterward. Basically, we're moving the
> goalpost somewhere, but a device that would define 1024 buttons would break
> things again.
>
> I must give HUGE thanks to Dmitry for forcing this into my head to a point where
> I actually understood the whole issue.
>
> Thus, I thought up of a best, long-term solution to this problem. I do think
> EV_BTN should be a first-class event so it can be as easy to handle as possible.
> If there's a need, it could be hooked up for Gamepads as well as HID gamepads do
> the same thing and only expose raw buttons without specific usages. The usages
> are a best guess when handling generic ones and only custom drivers can actually
> assign proper buttons like BTN_A, THUMBL etc.
>
> In the future, the Joystick usages could be completely removed and joysticks
> could rely ONLY on the new event. For now, the old way is kept to not break
> compatibility.
>
> I'm eagerly waiting for comments, recommendations and critique. Currently, there
> isn't a way to poll states of all buttons like with EVIOCGKEY but I'm not sure
> if it's needed? I added INPUT_MAX_KEYS just for some sane limits BUT I don't see
> a real use for it. Instead of this define, we could just use U16_MAX. 65k of
> buttons ought to be enough for ANYBODY :D
>
> Companion changes to consumers that already show the working state of this patch series:
> Wine: https://gitlab.winehq.org/wine/wine/-/merge_requests/9853
> SDL: https://github.com/libsdl-org/SDL/pull/14758
> evtest: https://gitlab.freedesktop.org/libevdev/evtest/-/merge_requests/25
>
> Tested with my Moza Racing R9 and Moza Universal Hub (both expose 128 usable
> buttons). hid-universal-pidff driver was disabled for testing as it contains
> usage range hack.
>
> Sneak peek from updated evtest:
>
> Event: time 1767559522.509446, type 6 (EV_BTN), button 12, value 1
> Event: time 1767559522.509446, type 4 (EV_MSC), code 4 (MSC_SCAN), value 9000c
> Event: time 1767559522.509446, type 1 (EV_KEY), code 299 (BTN_BASE6), value 1
> Event: time 1767559522.509446, -------------- SYN_REPORT ------------
> Event: time 1767559522.656447, type 6 (EV_BTN), button 12, value 0
> Event: time 1767559522.656447, type 4 (EV_MSC), code 4 (MSC_SCAN), value 9000c
> Event: time 1767559522.656447, type 1 (EV_KEY), code 299 (BTN_BASE6), value 0
> Event: time 1767559522.656447, -------------- SYN_REPORT ------------
> Event: time 1767559523.737498, type 6 (EV_BTN), button 112, value 1
> Event: time 1767559523.737498, -------------- SYN_REPORT ------------
> Event: time 1767559523.807477, type 6 (EV_BTN), button 112, value 0
> Event: time 1767559523.807477, -------------- SYN_REPORT ------------
>
> Tomasz Pakuła (6):
> Input: Introduce EV_BTN event for generic buttons
> Input: Add info about EV_BTN
> Input: Fire EV_BTN if found in ev_bit
> Input: Assign EV_BTN event to HID Joysticks
> Input: Realign rest of the HID_UP_BUTTON cases
> Input: Add EVIOCGBTNCNT
>
> Documentation/input/event-codes.rst | 5 ++
> drivers/hid/hid-input.c | 77 +++++++++++++++++---------
> drivers/input/evdev.c | 5 ++
> drivers/input/input.c | 10 ++++
> include/linux/input.h | 4 ++
> include/uapi/linux/input-event-codes.h | 1 +
> include/uapi/linux/input.h | 1 +
> 7 files changed, 77 insertions(+), 26 deletions(-)
>
> --
> 2.52.0
>
^ permalink raw reply
* Re: [PATCH v3 1/2] HID: intel-ish-hid: loader: Add PRODUCT_FAMILY-based firmware matching
From: Vishnu Sankar @ 2026-01-08 2:26 UTC (permalink / raw)
To: Jiri Kosina
Cc: srinivas.pandruvada, bentiss, corbet, vsankar, linux-doc,
linux-input, linux-kernel, Mark Pearson, Richie Roy Jayme
In-Reply-To: <5n18nonr-5292-60sr-2634-0q0r870n3oq8@xreary.bet>
Jiri,
Thank you.
On Thu, Jan 8, 2026 at 6:06 AM Jiri Kosina <jikos@kernel.org> wrote:
>
> On Mon, 22 Dec 2025, Vishnu Sankar wrote:
>
> > Add support for firmware filenames that include the CRC32 checksum of the
> > DMI product_family field. Several OEMs ship ISH firmware variants shared
> > across a product family while product_name or product_sku may differ. This
> > intermediate matching granularity reduces duplication and improves firmware
> > selection for vendor-customized platforms.
> >
> > The newly supported filename forms are checked before existing patterns:
> >
> > ish_${gen}_${vendor}_${family}_${name}_${sku}.bin
> > ish_${gen}_${vendor}_${family}_${sku}.bin
> > ish_${gen}_${vendor}_${family}_${name}.bin
> > ish_${gen}_${vendor}_${family}.bin
> >
> > The legacy product_name/product_sku rules remain unchanged and continue
> > to provide fallback matching.
> >
> > ISH_FW_FILENAME_LEN_MAX is changed to 72 to accommodate the product_family.
> >
> > Tested with X9 series and X1 series.
> >
> > Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
> > Tested-by: Richie Roy Jayme <rjayme.jp@gmail.com>
> > Signed-off-by: Vishnu Sankar <vishnuocv@gmail.com>
>
> Applied both to hid.git#for-6.20/intel-ish, thanks.
>
> --
> Jiri Kosina
> SUSE Labs
>
--
Regards,
Vishnu Sankar
+817015150407 (Japan)
^ permalink raw reply
* RE: [PATCH] HID: Intel-thc-hid: Intel-quicki2c: Add power management for touch device
From: Xu, Even @ 2026-01-07 23:59 UTC (permalink / raw)
To: Jiri Kosina
Cc: bentiss@kernel.org, srinivas.pandruvada@linux.intel.com,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <o3q31414-28q1-2q70-41p0-or84391r0q54@xreary.bet>
Thanks Jiri and Happy New Year!!!
Best Regards,
Even Xu
> -----Original Message-----
> From: Jiri Kosina <jikos@kernel.org>
> Sent: Thursday, January 8, 2026 5:05 AM
> To: Xu, Even <even.xu@intel.com>
> Cc: bentiss@kernel.org; srinivas.pandruvada@linux.intel.com; linux-
> input@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH] HID: Intel-thc-hid: Intel-quicki2c: Add power management
> for touch device
>
> On Mon, 22 Dec 2025, Even Xu wrote:
>
> > Send POWER_SLEEP command to touch device when system enters into sleep
> > mode or hibernate mode to save more power; and send POWER_ON command
> > to take device back when system exits sleep mode.
> >
> > Signed-off-by: Even Xu <even.xu@intel.com>
>
> Applied on top of hid.git#for-6.20/intel-thc, thank you.
>
> --
> Jiri Kosina
> SUSE Labs
^ permalink raw reply
* Re: [PATCH v3 1/2] HID: intel-ish-hid: loader: Add PRODUCT_FAMILY-based firmware matching
From: Jiri Kosina @ 2026-01-07 21:06 UTC (permalink / raw)
To: Vishnu Sankar
Cc: srinivas.pandruvada, bentiss, corbet, vsankar, linux-doc,
linux-input, linux-kernel, Mark Pearson, Richie Roy Jayme
In-Reply-To: <20251222080512.956519-1-vishnuocv@gmail.com>
On Mon, 22 Dec 2025, Vishnu Sankar wrote:
> Add support for firmware filenames that include the CRC32 checksum of the
> DMI product_family field. Several OEMs ship ISH firmware variants shared
> across a product family while product_name or product_sku may differ. This
> intermediate matching granularity reduces duplication and improves firmware
> selection for vendor-customized platforms.
>
> The newly supported filename forms are checked before existing patterns:
>
> ish_${gen}_${vendor}_${family}_${name}_${sku}.bin
> ish_${gen}_${vendor}_${family}_${sku}.bin
> ish_${gen}_${vendor}_${family}_${name}.bin
> ish_${gen}_${vendor}_${family}.bin
>
> The legacy product_name/product_sku rules remain unchanged and continue
> to provide fallback matching.
>
> ISH_FW_FILENAME_LEN_MAX is changed to 72 to accommodate the product_family.
>
> Tested with X9 series and X1 series.
>
> Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
> Tested-by: Richie Roy Jayme <rjayme.jp@gmail.com>
> Signed-off-by: Vishnu Sankar <vishnuocv@gmail.com>
Applied both to hid.git#for-6.20/intel-ish, thanks.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* Re: [PATCH] HID: Intel-thc-hid: Intel-quicki2c: Add power management for touch device
From: Jiri Kosina @ 2026-01-07 21:04 UTC (permalink / raw)
To: Even Xu; +Cc: bentiss, srinivas.pandruvada, linux-input, linux-kernel
In-Reply-To: <20251222014134.1810253-1-even.xu@intel.com>
On Mon, 22 Dec 2025, Even Xu wrote:
> Send POWER_SLEEP command to touch device when system enters into sleep
> mode or hibernate mode to save more power; and send POWER_ON command to
> take device back when system exits sleep mode.
>
> Signed-off-by: Even Xu <even.xu@intel.com>
Applied on top of hid.git#for-6.20/intel-thc, thank you.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* Re: [PATCH v2 0/4] Add output report support for QuickI2C driver
From: Jiri Kosina @ 2026-01-07 21:04 UTC (permalink / raw)
To: Even Xu; +Cc: bentiss, srinivas.pandruvada, linux-input, linux-kernel
In-Reply-To: <20251209075215.1535371-1-even.xu@intel.com>
On Tue, 9 Dec 2025, Even Xu wrote:
> This patch serial adds support for HID output reports in the Quicki2c
> driver by implementing the output_report callback in the HID low-level
> driver interface.
>
> This change introduces:
> - Refine QuickI2C driver to use size_t for all length-related variables
> - Enhance the quicki2c_init_write_buf() function by adding support for
> writing to the output register based on the content being written
> - Add quicki2c_hid_output_report() and quicki2c_output_report() function
> that processe the HID output reports request
>
> This enables proper communication with HID devices that require output
> report functionality, such as setting device configuration or updating
> device firmware.
Now queued in hid.git#for-6.20/intel-thc, thanks.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox