From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Hans de Goede <hansg@kernel.org>
Cc: "谢致邦 (XIE Zhibang)" <Yeking@red54.com>,
linux-input@vger.kernel.org, bentiss@kernel.org,
dianders@chromium.org, jikos@kernel.org,
linux-kernel@vger.kernel.org, superm1@kernel.org
Subject: Re: [PATCH] HID: i2c-hid-of: Fall back to ACPI _DSM when hid-descr-addr is missing
Date: Fri, 29 May 2026 12:36:17 -0700 [thread overview]
Message-ID: <ahnqMMhD8jn51ch7@google.com> (raw)
In-Reply-To: <7c2c86d8-be10-4e8e-8e96-d22788ec488f@kernel.org>
On Fri, May 29, 2026 at 05:00:37PM +0200, Hans de Goede wrote:
> Hi,
>
> On 29-May-26 14:16, 谢致邦 (XIE Zhibang) wrote:
> > Before commit b33752c30023 ("HID: i2c-hid: Reorganize so ACPI and OF are
> > separate modules"), the unified i2c-hid driver handled both PNP0C50 ACPI
> > devices and hid-over-i2c OF devices. After the split, devices with _HID
> > "PRP0001" and _DSD compatible "hid-over-i2c" are only probed by
> > i2c_hid_of, which requires "hid-descr-addr" in the _DSD. Some devices,
> > for example the Lenovo KaiTian N60d and Inspur CP300L3, provide the HID
> > descriptor address only through the _DSM method. Fall back to the _DSM
> > call when the property is absent.
> >
> > Fixes: b33752c30023 ("HID: i2c-hid: Reorganize so ACPI and OF are separate modules")
> > Signed-off-by: 谢致邦 (XIE Zhibang) <Yeking@Red54.com>
>
> Thank you for the new patch, this is an interesting approach and better
> then the modalias magic from the previous version.
>
> Note I'm not the i2c-hid maintainer, with that said I think this should
> be acceptable. But currently it duplicates the _DSM handling code and
> that should be fixed.
>
> I think this should be changed to a series of 3 patches:
>
> 1. Move the i2c_hid_acpi_blacklist handling out of
> i2c_hid_acpi_get_descriptor() into i2c_hid_acpi_probe()
> to above the devm_kzalloc() call.
>
> 2. Move i2c_hid_acpi_get_descriptor() to a generic
> int i2c_hid_acpi_get_descriptor(struct device *dev)
> helper in drivers/hid/i2c-hid/i2c-hid-core.c .
> Wrapped in #ifdef CONFIG_ACPI and with a static inline
> stub in drivers/hid/i2c-hid/i2c-hid.h when CONFIG_ACPI
> is not set, e.g. in drivers/hid/i2c-hid/i2c-hid.h add:
>
> #ifdef CONFIG_ACPI
> int i2c_hid_acpi_get_descriptor_address(struct device *dev);
> #else
> static inline int i2c_hid_acpi_get_descriptor_address(struct device *dev)
> {
> return -ENODEV;
> }
> #endif
>
> 3. Modify i2c-hid-of.c to try i2c_hid_acpi_get_descriptor_address() as
> fallback for the missing "hid-descr-addr" property. Please also add
> a comment in the code explaining that this fallback is about ACPI I2C-hid
> devices which use a "PRP0001" ACPI _HID with an "hid-over-i2c" compatible.
I think we should also stick a big fat warning if _DSM succeeds in that
code branch: hopefully manufacturers will notice and fix the firmware on
new devices.
Thanks.
--
Dmitry
next prev parent reply other threads:[~2026-05-29 19:36 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-27 15:17 [PATCH] HID: i2c-hid-acpi: Add PRP0001 to match table and OF alias 谢致邦 (XIE Zhibang)
2026-05-27 15:44 ` Hans de Goede
2026-05-29 12:16 ` [PATCH] HID: i2c-hid-of: Fall back to ACPI _DSM when hid-descr-addr is missing 谢致邦 (XIE Zhibang)
2026-05-29 15:00 ` Hans de Goede
2026-05-29 19:36 ` Dmitry Torokhov [this message]
2026-06-01 17:37 ` [PATCH 0/3] HID: i2c-hid: Fix some PRP0001 touchpads probe after OF/ACPI split 谢致邦 (XIE Zhibang)
[not found] ` <20260601173722.38151-1-Yeking@Red54.com>
2026-06-01 17:37 ` [PATCH 1/3] HID: i2c-hid-acpi: Move blacklist check to probe() before devm_kzalloc() 谢致邦 (XIE Zhibang)
2026-06-01 17:37 ` [PATCH 2/3] HID: i2c-hid: Move common ACPI _DSM helper into core 谢致邦 (XIE Zhibang)
2026-06-01 17:37 ` [PATCH 3/3] HID: i2c-hid-of: Fall back to ACPI _DSM when hid-descr-addr is missing 谢致邦 (XIE Zhibang)
2026-06-01 18:15 ` [PATCH v2 0/3] HID: i2c-hid: Fix some PRP0001 touchpads probe after OF/ACPI split 谢致邦 (XIE Zhibang)
[not found] ` <20260601181510.38705-1-Yeking@Red54.com>
2026-06-01 18:15 ` [PATCH v2 1/3] HID: i2c-hid-acpi: Move blacklist check to probe() before devm_kzalloc() 谢致邦 (XIE Zhibang)
2026-06-01 18:15 ` [PATCH v2 2/3] HID: i2c-hid: Move common ACPI _DSM helper into core 谢致邦 (XIE Zhibang)
2026-06-03 9:43 ` Benjamin Tissoires
2026-06-03 10:25 ` Hans de Goede
2026-06-03 11:59 ` Benjamin Tissoires
2026-06-03 13:12 ` Hans de Goede
2026-06-03 13:30 ` Benjamin Tissoires
2026-06-04 4:23 ` 谢致邦 (XIE Zhibang)
2026-06-05 1:29 ` [PATCH] HID: i2c-hid: Refactor _DSM helper and add i2c-hid-acpi-prp0001 driver 谢致邦 (XIE Zhibang)
2026-06-05 1:41 ` sashiko-bot
2026-06-05 12:20 ` [PATCH v2] " 谢致邦 (XIE Zhibang)
2026-06-01 18:15 ` [PATCH v2 3/3] HID: i2c-hid-of: Fall back to ACPI _DSM when hid-descr-addr is missing 谢致邦 (XIE Zhibang)
2026-06-01 18:47 ` sashiko-bot
2026-06-03 10:22 ` [PATCH v3 0/3] HID: i2c-hid: Fix some PRP0001 touchpads probe after OF/ACPI split 谢致邦 (XIE Zhibang)
[not found] ` <20260603102239.26491-1-Yeking@Red54.com>
2026-06-03 10:22 ` [PATCH v3 1/3] HID: i2c-hid-acpi: Move blacklist check to probe() before devm_kzalloc() 谢致邦 (XIE Zhibang)
2026-06-03 10:22 ` [PATCH v3 2/3] HID: i2c-hid: Move common ACPI _DSM helper into core 谢致邦 (XIE Zhibang)
2026-06-03 10:22 ` [PATCH v3 3/3] HID: i2c-hid-of: Fall back to ACPI _DSM when hid-descr-addr is missing 谢致邦 (XIE Zhibang)
2026-05-27 16:00 ` [PATCH] HID: i2c-hid-acpi: Add PRP0001 to match table and OF alias sashiko-bot
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=ahnqMMhD8jn51ch7@google.com \
--to=dmitry.torokhov@gmail.com \
--cc=Yeking@red54.com \
--cc=bentiss@kernel.org \
--cc=dianders@chromium.org \
--cc=hansg@kernel.org \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=superm1@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.