aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/setup-common.c
diff options
context:
space:
mode:
authorAlan Curry <pacman@theworld.com>2007-07-24 21:28:32 -0400
committerPaul Mackerras <paulus@samba.org>2007-07-26 02:17:45 -0400
commitf5d834fc34e61f1a40435981062000e5d2b2baa8 (patch)
tree3ed0b4a2ba4870b733e66483b01d69903142aa59 /arch/powerpc/kernel/setup-common.c
parent16782a604c458e1edcefca52457a82395b788bed (diff)
[POWERPC] Fix Pegasos keyboard detection
As of 2.6.22 the kernel doesn't recognize the i8042 keyboard/mouse controller on the PegasosPPC. This is because of a feature/bug in the OF device tree: the "device_type" attribute is an empty string instead of "8042" as the kernel expects. This adds a secondary detection which looks for a device whose *name* is "8042" if there is no device whose *type* is "8042". Signed-off-by: Alan Curry <pacman@world.std.com> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/setup-common.c')
-rw-r--r--arch/powerpc/kernel/setup-common.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 4924c48cb1ff..50ef38cffdbf 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -496,6 +496,10 @@ int check_legacy_ioport(unsigned long base_port)
496 break; 496 break;
497 } 497 }
498 np = of_find_node_by_type(NULL, "8042"); 498 np = of_find_node_by_type(NULL, "8042");
499 /* Pegasos has no device_type on its 8042 node, look for the
500 * name instead */
501 if (!np)
502 np = of_find_node_by_name(NULL, "8042");
499 break; 503 break;
500 case FDC_BASE: /* FDC1 */ 504 case FDC_BASE: /* FDC1 */
501 np = of_find_node_by_type(NULL, "fdc"); 505 np = of_find_node_by_type(NULL, "fdc");