diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/input/serio/i8042-io.h | 15 | ||||
-rw-r--r-- | drivers/parport/parport_pc.c | 4 | ||||
-rw-r--r-- | drivers/pnp/pnpbios/core.c | 8 |
3 files changed, 18 insertions, 9 deletions
diff --git a/drivers/input/serio/i8042-io.h b/drivers/input/serio/i8042-io.h index cc21914fbc7..3b4e13b9ce1 100644 --- a/drivers/input/serio/i8042-io.h +++ b/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/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c index fe800dc0be9..43894ddec7d 100644 --- a/drivers/parport/parport_pc.c +++ b/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/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c index 551f58e2981..81a6c83d89a 100644 --- a/drivers/pnp/pnpbios/core.c +++ b/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 |