Re: asus_atk0110: i8042: keys get stuck and keyboard stops responding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Jonathan,

On Wed, Mar 21, 2012 at 12:16 AM, Jonathan Nieder <jrnieder@xxxxxxxxx> wrote:
> Hi Luca et al,
>
> Several people have been finding the PS/2 keyboard and mouse suddenly
> stop working a few hours after loading the asus_atk0110 module on
> machines using the Asus P7P55D or P7P55D-E board.  For example:
[...]
> From [2] I see that you tracked it down to a BIOS problem.

Not really, I _suspect_ that there's a bug in the BIOS, but I wasn't
able to confirm it; maybe it's something that the driver does.
In the thread that you link Javier never replied with the results of the test.

> So I am
> curious: would there be a way to detect affected machines and
> automatically work around this?  Toy patch just to give the idea
> follows.

That would leave the user without any monitoring options; using the
native driver is very risky in this situation, the board has an EC
that goes out and reads the sensors on its own.
Furthermore the bug does not seem to affect all the users of that
board, it may be BIOS and/or board revision dependent.

I'm adding Jean and Guenter in CC: what do you think about blalisting
the driver on P7P55D?

>
> [1] http://bugs.debian.org/662895
> [2] http://thread.gmane.org/gmane.linux.drivers.sensors/24194/focus=26426
>
> diff --git i/drivers/hwmon/asus_atk0110.c w/drivers/hwmon/asus_atk0110.c
> index 00e98517f94c..494090df89f2 100644
> --- i/drivers/hwmon/asus_atk0110.c
> +++ w/drivers/hwmon/asus_atk0110.c
> @@ -38,6 +38,19 @@ static const struct dmi_system_id __initconst atk_force_new_if[] = {
>        { }
>  };
>
> +static const struct dmi_system_id __initconst atk0110_blacklist[] = {
> +       {
> +               /* http://bugs.debian.org/662895 */
> +               .ident = "Asus P7P55D",
> +               .matches = {
> +                       DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
> +                       DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
> +                       DMI_MATCH(DMI_BOARD_NAME, "P7P55D")
> +               }
> +       },
> +       { }
> +};
> +
>  /* Minimum time between readings, enforced in order to avoid
>  * hogging the CPU.
>  */
> @@ -1439,6 +1452,9 @@ static int __init atk0110_init(void)
>        if (dmi_check_system(atk_force_new_if))
>                new_if = true;
>
> +       if (dmi_check_system(atk0110_blacklist))
> +               return -ENODEV;
> +
>        ret = acpi_bus_register_driver(&atk_driver);
>        if (ret)
>                pr_info("acpi_bus_register_driver failed: %d\n", ret);

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux