On Wed, Dec 9, 2020 at 4:08 AM Hui Wang <hui.wang@xxxxxxxxxxxxx> wrote: > > > On 12/8/20 10:01 PM, Rafael J. Wysocki wrote: > > On Tue, Dec 8, 2020 at 3:02 AM Hui Wang <hui.wang@xxxxxxxxxxxxx> wrote: > >> > >> On 12/7/20 9:11 PM, Rafael J. Wysocki wrote: > >>> On Fri, Dec 4, 2020 at 8:51 AM Hui Wang <hui.wang@xxxxxxxxxxxxx> wrote: > > [cut] > > > >>> Would dropping the device ID in question from acpi_pnp_device_ids[] > >>> make the problem go away? > >>> > >>> If so, why don't you do just that? > >> Yes, if remove "WACFXXX" from acpi_pnp_device_ids[], could fix this > >> issue. I planned to do so, but I found the pnp_driver in the > >> drivers/tty/serial/8250/8250_pnp.c still handle this ID, maybe it could > >> introduce regression on old machines if removing it. > > Well, "WACFXXX" is not a proper device ID, it is a wild card possibly > > matching too many devices. > > > > What device ID specifically is used in the ACPI tables for the device > > in question? > > It is "WACF2200", how about the change as below, is it safe to say the > length of a pnp device id is 7? > > diff --git a/drivers/acpi/acpi_pnp.c b/drivers/acpi/acpi_pnp.c > index 4ed755a963aa..1e828378238c 100644 > --- a/drivers/acpi/acpi_pnp.c > +++ b/drivers/acpi/acpi_pnp.c > @@ -336,6 +336,10 @@ static bool acpi_pnp_match(const char *idstr, const > struct acpi_device_id **matc > { > const struct acpi_device_id *devid; > > + /* Expect the pnp device id has CCCdddd format (C character, d > digital) */ > + if (strlen(idstr) != 7) > + return false; > + > for (devid = acpi_pnp_device_ids; devid->id[0]; devid++) > if (matching_id(idstr, (char *)devid->id)) { > if (matchid) Alternatively, matching_id() can be updated to compare the length (which arguably it should be doing).