diff options
Diffstat (limited to 'drivers/input/serio/i8042-io.h')
| -rw-r--r-- | drivers/input/serio/i8042-io.h | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/drivers/input/serio/i8042-io.h b/drivers/input/serio/i8042-io.h index 9a922164425..a5eed2ade53 100644 --- a/drivers/input/serio/i8042-io.h +++ b/drivers/input/serio/i8042-io.h @@ -25,8 +25,13 @@ #elif defined(__arm__) /* defined in include/asm-arm/arch-xxx/irqs.h */ #include <asm/irq.h> -#elif defined(CONFIG_SUPERH64) +#elif defined(CONFIG_SH_CAYMAN) #include <asm/irq.h> +#elif defined(CONFIG_PPC) +extern int of_i8042_kbd_irq; +extern int of_i8042_aux_irq; +# define I8042_KBD_IRQ of_i8042_kbd_irq +# define I8042_AUX_IRQ of_i8042_aux_irq #else # define I8042_KBD_IRQ 1 # define I8042_AUX_IRQ 12 @@ -67,25 +72,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_PPC64) - if (!request_region(I8042_DATA_REG, 16, "i8042")) - return -EBUSY; -#endif - - i8042_reset = 1; - -#if defined(CONFIG_PPC64) +#if defined(CONFIG_PPC) if (check_legacy_ioport(I8042_DATA_REG)) - return -EBUSY; + return -ENODEV; +#endif +#if !defined(__sh__) && !defined(__alpha__) 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 } |
