powerpc: Fix for Pegasos keyboard and mouse
authorGabriel Paubert <paubert@iram.es>
Fri, 13 May 2011 01:03:13 +0000 (01:03 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 19 May 2011 07:32:27 +0000 (17:32 +1000)
[See http://lists.ozlabs.org/pipermail/linuxppc-dev/2010-October/086424.html
and followups. Part of the commit message is directly copied from that.]

Commit 540c6c392f01887dcc96bef0a41e63e6c1334f01 tries to find i8042 IRQs in
the device-tree but doesn't fall back to the old hardcoded 1 and 12 in all
failure cases.

Specifically, the case where the device-tree contains nothing matching
pnpPNP,303 or pnpPNP,f03 doesn't seem to be handled well. It sort of falls
through to the old code, but leaves the IRQs set to 0.

Signed-off-by: Gabriel Paubert <paubert@iram.es>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/setup-common.c

index ef33a084fcf4ddd24d7535ddfa2ba7dcf110068e..79fca2651b65909d9358f3b144d8195b66f732f0 100644 (file)
@@ -602,6 +602,10 @@ int check_legacy_ioport(unsigned long base_port)
                 * name instead */
                if (!np)
                        np = of_find_node_by_name(NULL, "8042");
+               if (np) {
+                       of_i8042_kbd_irq = 1;
+                       of_i8042_aux_irq = 12;
+               }
                break;
        case FDC_BASE: /* FDC1 */
                np = of_find_node_by_type(NULL, "fdc");