diff options
author | Alan Curry <pacman@theworld.com> | 2007-07-24 21:28:32 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-07-26 02:17:45 -0400 |
commit | f5d834fc34e61f1a40435981062000e5d2b2baa8 (patch) | |
tree | 3ed0b4a2ba4870b733e66483b01d69903142aa59 /arch/powerpc | |
parent | 16782a604c458e1edcefca52457a82395b788bed (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')
-rw-r--r-- | arch/powerpc/kernel/setup-common.c | 4 |
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"); |