aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pnp
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2006-10-01 02:27:57 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-01 03:39:23 -0400
commit30cbc22217bb3d5d4c74c88127fbf595460bdb76 (patch)
treeeab298c63f4dcf4ecd35f753da2e5ccf394a7718 /drivers/pnp
parentc69c31270c35a6b8421a8e4ba81de1247ac6df95 (diff)
[PATCH] update legacy io handling for pmac
ppc can boot one single binary on prep, chrp and pmac boards. ppc64 can boot one single binary on pseries and G5 boards. pmac has no legacy io, probing for PC style legacy hardware (or accessing the legacy io area regulary) may lead to a hard crash: * add check for parport_pc, exit on pmac. 32bit chrp has no ->check_legacy_ioport, the probe is always called. 64bit chrp has check_legacy_ioport, check for a "parallel" node * add check for isapnp, only PReP boards may have real ISA slots. 32bit PReP will have no ->check_legacy_ioport, the probe is always called. * update code in i8042_platform_init. Run ->check_legacy_ioport first, always call request_region. No functional change. Remove whitespace before i8042_reset init. Signed-off-by: Olaf Hering <olaf@aepfle.de> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Adam Belay <ambx1@neo.rr.com> Cc: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/pnp')
-rw-r--r--drivers/pnp/pnpbios/core.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c
index 551f58e29810..81a6c83d89a6 100644
--- a/drivers/pnp/pnpbios/core.c
+++ b/drivers/pnp/pnpbios/core.c
@@ -526,6 +526,10 @@ static int __init pnpbios_init(void)
526{ 526{
527 int ret; 527 int ret;
528 528
529#if defined(CONFIG_PPC_MERGE)
530 if (check_legacy_ioport(PNPBIOS_BASE))
531 return -ENODEV;
532#endif
529 if (pnpbios_disabled || dmi_check_system(pnpbios_dmi_table)) { 533 if (pnpbios_disabled || dmi_check_system(pnpbios_dmi_table)) {
530 printk(KERN_INFO "PnPBIOS: Disabled\n"); 534 printk(KERN_INFO "PnPBIOS: Disabled\n");
531 return -ENODEV; 535 return -ENODEV;
@@ -575,6 +579,10 @@ subsys_initcall(pnpbios_init);
575 579
576static int __init pnpbios_thread_init(void) 580static int __init pnpbios_thread_init(void)
577{ 581{
582#if defined(CONFIG_PPC_MERGE)
583 if (check_legacy_ioport(PNPBIOS_BASE))
584 return 0;
585#endif
578 if (pnpbios_disabled) 586 if (pnpbios_disabled)
579 return 0; 587 return 0;
580#ifdef CONFIG_HOTPLUG 588#ifdef CONFIG_HOTPLUG