From 4b1f8f89d53d419f0e93ac88e956bdd0b19a5090 Mon Sep 17 00:00:00 2001 From: Olaf Hering Date: Sat, 30 Sep 2006 23:27:57 -0700 Subject: [PATCH] --- yaml --- r: 37649 b: refs/heads/master c: 30cbc22217bb3d5d4c74c88127fbf595460bdb76 h: refs/heads/master i: 37647: 7967f29f7bd8c8c6b6c121e342a04f397c882abc v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/pseries/setup.c | 6 ++++++ trunk/drivers/input/serio/i8042-io.h | 15 ++++++--------- trunk/drivers/parport/parport_pc.c | 4 ++++ trunk/drivers/pnp/pnpbios/core.c | 8 ++++++++ trunk/include/asm-powerpc/io.h | 2 ++ 6 files changed, 27 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index c601a87af014..6bf11388b166 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c69c31270c35a6b8421a8e4ba81de1247ac6df95 +refs/heads/master: 30cbc22217bb3d5d4c74c88127fbf595460bdb76 diff --git a/trunk/arch/powerpc/platforms/pseries/setup.c b/trunk/arch/powerpc/platforms/pseries/setup.c index a6398fbe530d..8ed362140452 100644 --- a/trunk/arch/powerpc/platforms/pseries/setup.c +++ b/trunk/arch/powerpc/platforms/pseries/setup.c @@ -415,6 +415,12 @@ static int pSeries_check_legacy_ioport(unsigned int baseport) return -ENODEV; of_node_put(np); break; + case PARALLEL_BASE: + np = of_find_node_by_type(NULL, "parallel"); + if (np == NULL) + return -ENODEV; + of_node_put(np); + break; } return 0; } diff --git a/trunk/drivers/input/serio/i8042-io.h b/trunk/drivers/input/serio/i8042-io.h index cc21914fbc72..3b4e13b9ce1b 100644 --- a/trunk/drivers/input/serio/i8042-io.h +++ b/trunk/drivers/input/serio/i8042-io.h @@ -67,25 +67,22 @@ static inline int i8042_platform_init(void) * On some platforms touching the i8042 data register region can do really * bad things. Because of this the region is always reserved on such boxes. */ -#if !defined(__sh__) && !defined(__alpha__) && !defined(__mips__) && !defined(CONFIG_PPC_MERGE) - if (!request_region(I8042_DATA_REG, 16, "i8042")) - return -EBUSY; -#endif - - i8042_reset = 1; - #if defined(CONFIG_PPC_MERGE) if (check_legacy_ioport(I8042_DATA_REG)) - return -EBUSY; + return -ENODEV; +#endif +#if !defined(__sh__) && !defined(__alpha__) && !defined(__mips__) if (!request_region(I8042_DATA_REG, 16, "i8042")) return -EBUSY; #endif + + i8042_reset = 1; return 0; } static inline void i8042_platform_exit(void) { -#if !defined(__sh__) && !defined(__alpha__) && !defined(CONFIG_PPC64) +#if !defined(__sh__) && !defined(__alpha__) release_region(I8042_DATA_REG, 16); #endif } diff --git a/trunk/drivers/parport/parport_pc.c b/trunk/drivers/parport/parport_pc.c index fe800dc0be9f..43894ddec7dc 100644 --- a/trunk/drivers/parport/parport_pc.c +++ b/trunk/drivers/parport/parport_pc.c @@ -3374,6 +3374,10 @@ __setup("parport_init_mode=",parport_init_mode_setup); static int __init parport_pc_init(void) { +#if defined(CONFIG_PPC_MERGE) + if (check_legacy_ioport(PARALLEL_BASE)) + return -ENODEV; +#endif if (parse_parport_params()) return -EINVAL; diff --git a/trunk/drivers/pnp/pnpbios/core.c b/trunk/drivers/pnp/pnpbios/core.c index 551f58e29810..81a6c83d89a6 100644 --- a/trunk/drivers/pnp/pnpbios/core.c +++ b/trunk/drivers/pnp/pnpbios/core.c @@ -526,6 +526,10 @@ static int __init pnpbios_init(void) { int ret; +#if defined(CONFIG_PPC_MERGE) + if (check_legacy_ioport(PNPBIOS_BASE)) + return -ENODEV; +#endif if (pnpbios_disabled || dmi_check_system(pnpbios_dmi_table)) { printk(KERN_INFO "PnPBIOS: Disabled\n"); return -ENODEV; @@ -575,6 +579,10 @@ subsys_initcall(pnpbios_init); static int __init pnpbios_thread_init(void) { +#if defined(CONFIG_PPC_MERGE) + if (check_legacy_ioport(PNPBIOS_BASE)) + return 0; +#endif if (pnpbios_disabled) return 0; #ifdef CONFIG_HOTPLUG diff --git a/trunk/include/asm-powerpc/io.h b/trunk/include/asm-powerpc/io.h index 46bae1cf385b..19b2ec1ec665 100644 --- a/trunk/include/asm-powerpc/io.h +++ b/trunk/include/asm-powerpc/io.h @@ -11,6 +11,8 @@ /* Check of existence of legacy devices */ extern int check_legacy_ioport(unsigned long base_port); +#define PARALLEL_BASE 0x378 +#define PNPBIOS_BASE 0xf000 /* only relevant for PReP */ #ifndef CONFIG_PPC64 #include