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)
Thanks.