Messages in this thread | | | Date | Tue, 28 Jun 2022 09:42:14 -0500 | Subject | Re: [PATCH] HID: amd_sfh: Ignore uninitialized device | From | "Limonciello, Mario" <> |
| |
On 6/26/2022 03:13, Akihiko Odaki wrote: > Lenovo ThinkPad C13 Yoga has AMD Sensor Fusion Hub, but it is not used > because Chrome OS EC Sensor Hub is used instead. The system therefore > never loads the firmware for MP2 and MP2 does not work. It results in > AMD_P2C_MSG3 register to have -1 as its value. > > Without this change, the driver interprets the value as it supports all > sensor types and exposes them, which confuses a userspace program, > iio-sensor-proxy, and makes it to use the non-functioning sensors > instead of functioning sensors exposed via Chrome OS EC Sensor Hub. > > Check the version bits included in AMD_P2C_MSG3 register and ignore the > device if all of the bits are set. >
Have you already confirmed this failure happens in 5.19-rc1 or later as well? I would think that b5d7f43e97dabfa04a4be5ff027ce7da119332be should have fixed it.
> Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> > --- > drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c > index dadc491bbf6b..4137e5da77ad 100644 > --- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c > +++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c > @@ -271,6 +271,8 @@ static void mp2_select_ops(struct amd_mp2_dev *privdata) > case V2_STATUS: > privdata->mp2_ops = &amd_sfh_ops_v2; > break; > + case 15: > + break; > default: > privdata->mp2_ops = &amd_sfh_ops; > break; > @@ -317,6 +319,8 @@ static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *i > return -ENOMEM; > > mp2_select_ops(privdata); > + if (!privdata->mp2_ops) > + return -ENODEV; > > rc = amd_sfh_irq_init(privdata); > if (rc) {
| |