Re: [2/6] 2.6.21-rc2: known regressions

Linus Torvalds
2007-03-07T16:14:34Z

On Wed, 7 Mar 2007, Jeff Garzik wrote:
>
> Adrian Bunk wrote:
> > Subject : AT keyboard only works with pci=noacpi
> > References : http://lkml.org/lkml/2007/3/3/68
> > Submitter : Ash Milsted <thatistosayiseenem@gawab.com>
> > Status : unknown
>
> sounds like a BIOS bug, even though it appears to be a regression?

So?

BIOS bugs are not bugs we can fix, they are things we have to work around.
They are like hardware bugs in a network chip: a "driver" that doesn't
work around a BIOS bug is simply a *buggy* driver, exactly the same way a
network driver has to work around errata in the hardware.

So it doesn't really matter if something is a BIOS bug or not. It's not
reasonable to expect people to upgrade their BIOS'es - even if such an
upgrade were to exist (which is fairly rare in itself).

If it used to work, that just makes it (a) doubly important to try to fix
it, since regressions are BAD BAD BAD and (b) a fair amount *easier* to
fix, since we can hopefully get an idea of what broke it.

Ash, can you try to use "git bisect" to figure where it started? But
perhaps just try -rc3 first to see if it's been fixed?

The working setups (whether with irqfixup or with pci=noacpi seem to both
have a nice

input: AT Translated Set 2 keyboard as /class/input/inputX

but the nonworking one does not. But even the nonworking one actually
*found* the controller:

PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
PNP: PS/2 controller doesn't have AUX irq; using default 12
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice

which probably means that the "atkbd_probe()" function fails (probably
because it never gets a reply, which in turn is probably because the
interrupt routing is broken).

If you use "atkbd.reset=1" on the kernel command line, you would probably
get a message like "keyboard reset failed"..

Now, the most likely cause is obviously just the ACPI changes that mess up
irq routing somehow, but it would be important to figure out *what* makes
it happen, which is why "git bisect" would be wonderful to try.

So Ash, if you get the git tree, just start with

git bisect start
git bisect good v2.6.20
git bisect bad v2.6.21-rc1

and off you go.. git isn't really that hard to use any more.

Linus