lkml.org 
[lkml]   [2010]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Disable i8042 checks on Intel Apple Macs
On Thu, Jan 21, 2010 at 02:17:01PM -0800, Dmitry Torokhov wrote:
> This is from the changelog when this was introduced:
>
> -------------------------------------------------------------------------
> 2005/02/25 21:21:03+01:00 vojtech
> input: After testing on real world hardware, it's obvious we can't trust
> ACPIPnP nor PnPBIOS to properly report the existence of a keyboard
> and mouse port in all cases. Some BIOSes hide the ports if no mouse
> or keyboard is connected, causing trouble with eg. KVM switches.
>
> The i8042 driver now does read-only probing first, which should
> not cause any problems even if an i8042 controller really is not
> present.
>
> However, on IA64 we still need to trust ACPI, since legacy-free
> hardware is common there and invalid port accesses cause exceptions.
>
> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
>
> >> Input: Add ACPI-based i8042 keyboard and aux controller enumeration;
> > > can be disabled by passing i8042.noacpi as a boot parameter.
> >
> > On a whim I decided to turn on ACPI, only to discover that my keyboard
> > no longer worked. Passing i8042.noacpi=1 makes it work again.
> > Attached please find boot messages with and without the boot
> > parameter. Inlined below is a diff of the two.
>
> --------------------------------------------------------------------------
>
> I'm adding Vojtech in case he manages to recall what other failures he
> has seen.

I don't think I can really recall what other problems we've had back
then, but I do remember it was quite an avalanche of mails that I've
started receiving after enabling the PnPBIOS/ACPIPnP probing and
trusting it fully.

Now, from the hardware point of view it doesn't make much sense for the
BIOS to hide/disable the i8042 controller, as both the keyboard IRQ and
the 0x60-0x6f address space are reserved for it (since the IBM PC/AT
times) and no other hardware can make use of those on an x86
architecture.

And this means that even on a Mac there should be no hardware present on
these addresses if there is no i8042 and Apple is claiming x86
compatibility.

Thus I believe that the right fix here is to figure out why the accesses
to the ports 0x60/0x64 take a long time or forever on a Mac. Is it just
that the kernel is timing out waiting for the i8042? Or is it something
more sinister?

--
Vojtech Pavlik
Director SuSE Labs


\
 
 \ /
  Last update: 2010-01-25 17:37    [from the cache]
©2003-2011 Jasper Spaans