Messages in this thread |  | | | Date | Wed, 20 Jan 2010 11:14:41 -0800 | | From | "Justin P. Mattock" <> | | Subject | Re: [PATCH] Disable i8042 checks on Intel Apple Macs |
| |
On 01/20/10 10:23, 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@hadess.net> > --- > drivers/input/serio/i8042.c | 18 ++++++++++++++++++ > 1 files changed, 18 insertions(+), 0 deletions(-) > > diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c > index d84a36e..2be7207 100644 > --- a/drivers/input/serio/i8042.c > +++ b/drivers/input/serio/i8042.c > @@ -1438,12 +1438,30 @@ static struct platform_driver i8042_driver = { > .shutdown = i8042_shutdown, > }; > > +static struct dmi_system_id __initdata dmi_system_table[] = { > + { > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR, "Apple Computer, Inc.") > + }, > + }, > + { > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR, "Apple Inc.") > + }, > + }, > + {} > +}; > + > static int __init i8042_init(void) > { > int err; > > dbg_init(); > > + /* Intel Apple Macs never have an i8042 controller */ > + if (dmi_check_system(dmi_system_table)> 0) > + return -ENODEV; > + > err = i8042_platform_init(); > if (err) > return err;
glad you submitted this. i.g. been looking at some dmi blacklist thing over here(been racking my brain around a bit, and seeing your idea simplified it a bit more for me).
as for what you have here, do you think individually defining each machine is safer, or does it not matter?
I've been looking at this as well, to get a better idea: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7121413f2accf14cf05b38539fb7a8be77543370;hp=1a133e0c9dabda23e6693cabfdc1d5106dca5fc2
Justin P. Mattock
|  |