Re: [PATCH] Disable i8042 checks on Intel Apple Macs

From: Robert Hancock
Date: Wed Jan 20 2010 - 21:19:37 EST


On Wed, Jan 20, 2010 at 7:31 PM, Bastien Nocera <hadess@xxxxxxxxxx> wrote:
> On Wed, 2010-01-20 at 18:41 -0600, Robert Hancock wrote:
>> On 01/20/2010 12:23 PM, Bastien Nocera wrote:
>> > As those computers never had any i8042 controllers, and the
>> > current lookup code could potentially lock up/hang/wait for
>> > timeout for long periods of time.
>> >
>> > Fixes intermittent hangs on boot on a MacbookAir1,1
>> >
>> > Signed-off-by: Bastien Nocera<hadess@xxxxxxxxxx>
>>
>> I assume this is happening because of this code in
>> drivers/input/serio/i8042-x86ia64io.h:
>>
>>          if (!i8042_pnp_kbd_devices && !i8042_pnp_aux_devices) {
>>                  i8042_pnp_exit();
>> #if defined(__ia64__)
>>                  return -ENODEV;
>> #else
>>                  printk(KERN_INFO "PNP: No PS/2 controller found.
>> Probing ports directly.\n");
>>                  return 0;
>> #endif
>
> Actually, the error message is "i8042.c: No controller found". Which
> happens very early in a sub-function of i8042_init().
>
> So I don't think this would solve the problem.

That message comes out of i8042_controller_check which gets called
after i8042_platform_init, which does the check above. So it appears
either the "PNP: No PS/2 controller found" message should have been
printed or PNP did in fact show a controller is present..

>
>> In other words, on x86, if PNP and/or ACPI don't indicate any PS/2
>> controller exists, we randomly bang on the ports in the expectation
>> they'll be there anyway. This seems rather misguided. It would seem like
>> a better idea to fix this rather than adding yet another DMI list
>> (especially since there likely are, or will be, machines without i8042
>> other than Macs).
>
> They might also have a better BIOS than the Macs and avoid hanging when
> that happens...
>
>> I can see continuing on and probing if PNP isn't present on the machine,
>> but certainly if ACPI is enabled, I don't think we should be doing such
>> things.
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/