Loading drivers/input/serio/i8042-x86ia64io.h +19 −19 Original line number Diff line number Diff line Loading @@ -550,9 +550,9 @@ static struct dmi_system_id __initdata i8042_dmi_dritek_table[] = { #ifdef CONFIG_PNP #include <linux/pnp.h> static int i8042_pnp_kbd_registered; static bool i8042_pnp_kbd_registered; static unsigned int i8042_pnp_kbd_devices; static int i8042_pnp_aux_registered; static bool i8042_pnp_aux_registered; static unsigned int i8042_pnp_aux_devices; static int i8042_pnp_command_reg; Loading Loading @@ -640,12 +640,12 @@ static struct pnp_driver i8042_pnp_aux_driver = { static void i8042_pnp_exit(void) { if (i8042_pnp_kbd_registered) { i8042_pnp_kbd_registered = 0; i8042_pnp_kbd_registered = false; pnp_unregister_driver(&i8042_pnp_kbd_driver); } if (i8042_pnp_aux_registered) { i8042_pnp_aux_registered = 0; i8042_pnp_aux_registered = false; pnp_unregister_driver(&i8042_pnp_aux_driver); } } Loading @@ -653,12 +653,12 @@ static void i8042_pnp_exit(void) static int __init i8042_pnp_init(void) { char kbd_irq_str[4] = { 0 }, aux_irq_str[4] = { 0 }; int pnp_data_busted = 0; int pnp_data_busted = false; int err; #ifdef CONFIG_X86 if (dmi_check_system(i8042_dmi_nopnp_table)) i8042_nopnp = 1; i8042_nopnp = true; #endif if (i8042_nopnp) { Loading @@ -668,11 +668,11 @@ static int __init i8042_pnp_init(void) err = pnp_register_driver(&i8042_pnp_kbd_driver); if (!err) i8042_pnp_kbd_registered = 1; i8042_pnp_kbd_registered = true; err = pnp_register_driver(&i8042_pnp_aux_driver); if (!err) i8042_pnp_aux_registered = 1; i8042_pnp_aux_registered = true; if (!i8042_pnp_kbd_devices && !i8042_pnp_aux_devices) { i8042_pnp_exit(); Loading Loading @@ -700,9 +700,9 @@ static int __init i8042_pnp_init(void) #if defined(__ia64__) if (!i8042_pnp_kbd_devices) i8042_nokbd = 1; i8042_nokbd = true; if (!i8042_pnp_aux_devices) i8042_noaux = 1; i8042_noaux = true; #endif if (((i8042_pnp_data_reg & ~0xf) == (i8042_data_reg & ~0xf) && Loading @@ -713,7 +713,7 @@ static int __init i8042_pnp_init(void) "using default %#x\n", i8042_pnp_data_reg, i8042_data_reg); i8042_pnp_data_reg = i8042_data_reg; pnp_data_busted = 1; pnp_data_busted = true; } if (((i8042_pnp_command_reg & ~0xf) == (i8042_command_reg & ~0xf) && Loading @@ -724,7 +724,7 @@ static int __init i8042_pnp_init(void) "using default %#x\n", i8042_pnp_command_reg, i8042_command_reg); i8042_pnp_command_reg = i8042_command_reg; pnp_data_busted = 1; pnp_data_busted = true; } if (!i8042_nokbd && !i8042_pnp_kbd_irq) { Loading @@ -732,7 +732,7 @@ static int __init i8042_pnp_init(void) "PNP: PS/2 controller doesn't have KBD irq; " "using default %d\n", i8042_kbd_irq); i8042_pnp_kbd_irq = i8042_kbd_irq; pnp_data_busted = 1; pnp_data_busted = true; } if (!i8042_noaux && !i8042_pnp_aux_irq) { Loading @@ -741,7 +741,7 @@ static int __init i8042_pnp_init(void) "PNP: PS/2 appears to have AUX port disabled, " "if this is incorrect please boot with " "i8042.nopnp\n"); i8042_noaux = 1; i8042_noaux = true; } else { printk(KERN_WARNING "PNP: PS/2 controller doesn't have AUX irq; " Loading Loading @@ -788,21 +788,21 @@ static int __init i8042_platform_init(void) return retval; #if defined(__ia64__) i8042_reset = 1; i8042_reset = true; #endif #ifdef CONFIG_X86 if (dmi_check_system(i8042_dmi_reset_table)) i8042_reset = 1; i8042_reset = true; if (dmi_check_system(i8042_dmi_noloop_table)) i8042_noloop = 1; i8042_noloop = true; if (dmi_check_system(i8042_dmi_nomux_table)) i8042_nomux = 1; i8042_nomux = true; if (dmi_check_system(i8042_dmi_dritek_table)) i8042_dritek = 1; i8042_dritek = true; #endif /* CONFIG_X86 */ return retval; Loading drivers/input/serio/i8042.c +52 −51 Original line number Diff line number Diff line Loading @@ -28,35 +28,35 @@ MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>"); MODULE_DESCRIPTION("i8042 keyboard and mouse controller driver"); MODULE_LICENSE("GPL"); static unsigned int i8042_nokbd; static bool i8042_nokbd; module_param_named(nokbd, i8042_nokbd, bool, 0); MODULE_PARM_DESC(nokbd, "Do not probe or use KBD port."); static unsigned int i8042_noaux; static bool i8042_noaux; module_param_named(noaux, i8042_noaux, bool, 0); MODULE_PARM_DESC(noaux, "Do not probe or use AUX (mouse) port."); static unsigned int i8042_nomux; static bool i8042_nomux; module_param_named(nomux, i8042_nomux, bool, 0); MODULE_PARM_DESC(nomux, "Do not check whether an active multiplexing conrtoller is present."); static unsigned int i8042_unlock; static bool i8042_unlock; module_param_named(unlock, i8042_unlock, bool, 0); MODULE_PARM_DESC(unlock, "Ignore keyboard lock."); static unsigned int i8042_reset; static bool i8042_reset; module_param_named(reset, i8042_reset, bool, 0); MODULE_PARM_DESC(reset, "Reset controller during init and cleanup."); static unsigned int i8042_direct; static bool i8042_direct; module_param_named(direct, i8042_direct, bool, 0); MODULE_PARM_DESC(direct, "Put keyboard port into non-translated mode."); static unsigned int i8042_dumbkbd; static bool i8042_dumbkbd; module_param_named(dumbkbd, i8042_dumbkbd, bool, 0); MODULE_PARM_DESC(dumbkbd, "Pretend that controller can only read data from keyboard"); static unsigned int i8042_noloop; static bool i8042_noloop; module_param_named(noloop, i8042_noloop, bool, 0); MODULE_PARM_DESC(noloop, "Disable the AUX Loopback command while probing for the AUX port"); Loading @@ -65,20 +65,20 @@ module_param_named(panicblink, i8042_blink_frequency, uint, 0600); MODULE_PARM_DESC(panicblink, "Frequency with which keyboard LEDs should blink when kernel panics"); #ifdef CONFIG_X86 static unsigned int i8042_dritek; static bool i8042_dritek; module_param_named(dritek, i8042_dritek, bool, 0); MODULE_PARM_DESC(dritek, "Force enable the Dritek keyboard extension"); #endif #ifdef CONFIG_PNP static int i8042_nopnp; static bool i8042_nopnp; module_param_named(nopnp, i8042_nopnp, bool, 0); MODULE_PARM_DESC(nopnp, "Do not use PNP to detect controller settings"); #endif #define DEBUG #ifdef DEBUG static int i8042_debug; static bool i8042_debug; module_param_named(debug, i8042_debug, bool, 0600); MODULE_PARM_DESC(debug, "Turn i8042 debugging mode on and off"); #endif Loading @@ -92,7 +92,7 @@ static DEFINE_SPINLOCK(i8042_lock); struct i8042_port { struct serio *serio; int irq; unsigned char exists; bool exists; signed char mux; }; Loading @@ -105,9 +105,9 @@ static struct i8042_port i8042_ports[I8042_NUM_PORTS]; static unsigned char i8042_initial_ctr; static unsigned char i8042_ctr; static unsigned char i8042_mux_present; static unsigned char i8042_kbd_irq_registered; static unsigned char i8042_aux_irq_registered; static bool i8042_mux_present; static bool i8042_kbd_irq_registered; static bool i8042_aux_irq_registered; static unsigned char i8042_suppress_kbd_ack; static struct platform_device *i8042_platform_device; Loading Loading @@ -316,7 +316,7 @@ static int i8042_start(struct serio *serio) { struct i8042_port *port = serio->port_data; port->exists = 1; port->exists = true; mb(); return 0; } Loading @@ -330,7 +330,7 @@ static void i8042_stop(struct serio *serio) { struct i8042_port *port = serio->port_data; port->exists = 0; port->exists = false; /* * We synchronize with both AUX and KBD IRQs because there is Loading Loading @@ -492,14 +492,15 @@ static int i8042_enable_mux_ports(void) } /* * i8042_set_mux_mode checks whether the controller has an active * multiplexor and puts the chip into Multiplexed (1) or Legacy (0) mode. * i8042_set_mux_mode checks whether the controller has an * active multiplexor and puts the chip into Multiplexed (true) * or Legacy (false) mode. */ static int i8042_set_mux_mode(unsigned int mode, unsigned char *mux_version) static int i8042_set_mux_mode(bool multiplex, unsigned char *mux_version) { unsigned char param; unsigned char param, val; /* * Get rid of bytes in the queue. */ Loading @@ -511,14 +512,21 @@ static int i8042_set_mux_mode(unsigned int mode, unsigned char *mux_version) * mouse interface, the last should be version. */ param = 0xf0; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != 0xf0) param = val = 0xf0; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != val) return -1; param = val = multiplex ? 0x56 : 0xf6; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != val) return -1; param = mode ? 0x56 : 0xf6; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != (mode ? 0x56 : 0xf6)) param = val = multiplex ? 0xa4 : 0xa5; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param == val) return -1; param = mode ? 0xa4 : 0xa5; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param == (mode ? 0xa4 : 0xa5)) /* * Workaround for interference with USB Legacy emulation * that causes a v10.12 MUX to be found. */ if (param == 0xac) return -1; if (mux_version) Loading @@ -537,14 +545,7 @@ static int __devinit i8042_check_mux(void) { unsigned char mux_version; if (i8042_set_mux_mode(1, &mux_version)) return -1; /* * Workaround for interference with USB Legacy emulation * that causes a v10.12 MUX to be found. */ if (mux_version == 0xAC) if (i8042_set_mux_mode(true, &mux_version)) return -1; printk(KERN_INFO "i8042.c: Detected active multiplexing controller, rev %d.%d.\n", Loading @@ -561,7 +562,7 @@ static int __devinit i8042_check_mux(void) return -EIO; } i8042_mux_present = 1; i8042_mux_present = true; return 0; } Loading @@ -570,7 +571,7 @@ static int __devinit i8042_check_mux(void) * The following is used to test AUX IRQ delivery. */ static struct completion i8042_aux_irq_delivered __devinitdata; static int i8042_irq_being_tested __devinitdata; static bool i8042_irq_being_tested __devinitdata; static irqreturn_t __devinit i8042_aux_test_irq(int irq, void *dev_id) { Loading @@ -597,7 +598,7 @@ static irqreturn_t __devinit i8042_aux_test_irq(int irq, void *dev_id) * verifies success by readinng CTR. Used when testing for presence of AUX * port. */ static int __devinit i8042_toggle_aux(int on) static int __devinit i8042_toggle_aux(bool on) { unsigned char param; int i; Loading Loading @@ -628,8 +629,8 @@ static int __devinit i8042_toggle_aux(int on) static int __devinit i8042_check_aux(void) { int retval = -1; int irq_registered = 0; int aux_loop_broken = 0; bool irq_registered = false; bool aux_loop_broken = false; unsigned long flags; unsigned char param; Loading Loading @@ -666,19 +667,19 @@ static int __devinit i8042_check_aux(void) * mark it as broken */ if (!retval) aux_loop_broken = 1; aux_loop_broken = true; } /* * Bit assignment test - filters out PS/2 i8042's in AT mode */ if (i8042_toggle_aux(0)) { if (i8042_toggle_aux(false)) { printk(KERN_WARNING "Failed to disable AUX port, but continuing anyway... Is this a SiS?\n"); printk(KERN_WARNING "If AUX port is really absent please use the 'i8042.noaux' option.\n"); } if (i8042_toggle_aux(1)) if (i8042_toggle_aux(true)) return -1; /* Loading @@ -699,7 +700,7 @@ static int __devinit i8042_check_aux(void) "i8042", i8042_platform_device)) goto out; irq_registered = 1; irq_registered = true; if (i8042_enable_aux_port()) goto out; Loading @@ -707,7 +708,7 @@ static int __devinit i8042_check_aux(void) spin_lock_irqsave(&i8042_lock, flags); init_completion(&i8042_aux_irq_delivered); i8042_irq_being_tested = 1; i8042_irq_being_tested = true; param = 0xa5; retval = __i8042_command(¶m, I8042_CMD_AUX_LOOP & 0xf0ff); Loading Loading @@ -844,7 +845,7 @@ static int i8042_controller_init(void) */ if (~i8042_ctr & I8042_CTR_XLATE) i8042_direct = 1; i8042_direct = true; /* * Set nontranslated mode for the kbd interface if requested by an option. Loading Loading @@ -892,7 +893,7 @@ static void i8042_controller_reset(void) */ if (i8042_mux_present) i8042_set_mux_mode(0, NULL); i8042_set_mux_mode(false, NULL); /* * Reset the controller if requested. Loading Loading @@ -1025,7 +1026,7 @@ static int i8042_pm_restore(struct device *dev) #endif if (i8042_mux_present) { if (i8042_set_mux_mode(1, NULL) || i8042_enable_mux_ports()) if (i8042_set_mux_mode(true, NULL) || i8042_enable_mux_ports()) printk(KERN_WARNING "i8042: failed to resume active multiplexor, " "mouse won't work.\n"); Loading Loading @@ -1167,7 +1168,7 @@ static void i8042_free_irqs(void) if (i8042_kbd_irq_registered) free_irq(I8042_KBD_IRQ, i8042_platform_device); i8042_aux_irq_registered = i8042_kbd_irq_registered = 0; i8042_aux_irq_registered = i8042_kbd_irq_registered = false; } static int __devinit i8042_setup_aux(void) Loading Loading @@ -1201,7 +1202,7 @@ static int __devinit i8042_setup_aux(void) if (aux_enable()) goto err_free_irq; i8042_aux_irq_registered = 1; i8042_aux_irq_registered = true; return 0; err_free_irq: Loading @@ -1228,7 +1229,7 @@ static int __devinit i8042_setup_kbd(void) if (error) goto err_free_irq; i8042_kbd_irq_registered = 1; i8042_kbd_irq_registered = true; return 0; err_free_irq: Loading Loading
drivers/input/serio/i8042-x86ia64io.h +19 −19 Original line number Diff line number Diff line Loading @@ -550,9 +550,9 @@ static struct dmi_system_id __initdata i8042_dmi_dritek_table[] = { #ifdef CONFIG_PNP #include <linux/pnp.h> static int i8042_pnp_kbd_registered; static bool i8042_pnp_kbd_registered; static unsigned int i8042_pnp_kbd_devices; static int i8042_pnp_aux_registered; static bool i8042_pnp_aux_registered; static unsigned int i8042_pnp_aux_devices; static int i8042_pnp_command_reg; Loading Loading @@ -640,12 +640,12 @@ static struct pnp_driver i8042_pnp_aux_driver = { static void i8042_pnp_exit(void) { if (i8042_pnp_kbd_registered) { i8042_pnp_kbd_registered = 0; i8042_pnp_kbd_registered = false; pnp_unregister_driver(&i8042_pnp_kbd_driver); } if (i8042_pnp_aux_registered) { i8042_pnp_aux_registered = 0; i8042_pnp_aux_registered = false; pnp_unregister_driver(&i8042_pnp_aux_driver); } } Loading @@ -653,12 +653,12 @@ static void i8042_pnp_exit(void) static int __init i8042_pnp_init(void) { char kbd_irq_str[4] = { 0 }, aux_irq_str[4] = { 0 }; int pnp_data_busted = 0; int pnp_data_busted = false; int err; #ifdef CONFIG_X86 if (dmi_check_system(i8042_dmi_nopnp_table)) i8042_nopnp = 1; i8042_nopnp = true; #endif if (i8042_nopnp) { Loading @@ -668,11 +668,11 @@ static int __init i8042_pnp_init(void) err = pnp_register_driver(&i8042_pnp_kbd_driver); if (!err) i8042_pnp_kbd_registered = 1; i8042_pnp_kbd_registered = true; err = pnp_register_driver(&i8042_pnp_aux_driver); if (!err) i8042_pnp_aux_registered = 1; i8042_pnp_aux_registered = true; if (!i8042_pnp_kbd_devices && !i8042_pnp_aux_devices) { i8042_pnp_exit(); Loading Loading @@ -700,9 +700,9 @@ static int __init i8042_pnp_init(void) #if defined(__ia64__) if (!i8042_pnp_kbd_devices) i8042_nokbd = 1; i8042_nokbd = true; if (!i8042_pnp_aux_devices) i8042_noaux = 1; i8042_noaux = true; #endif if (((i8042_pnp_data_reg & ~0xf) == (i8042_data_reg & ~0xf) && Loading @@ -713,7 +713,7 @@ static int __init i8042_pnp_init(void) "using default %#x\n", i8042_pnp_data_reg, i8042_data_reg); i8042_pnp_data_reg = i8042_data_reg; pnp_data_busted = 1; pnp_data_busted = true; } if (((i8042_pnp_command_reg & ~0xf) == (i8042_command_reg & ~0xf) && Loading @@ -724,7 +724,7 @@ static int __init i8042_pnp_init(void) "using default %#x\n", i8042_pnp_command_reg, i8042_command_reg); i8042_pnp_command_reg = i8042_command_reg; pnp_data_busted = 1; pnp_data_busted = true; } if (!i8042_nokbd && !i8042_pnp_kbd_irq) { Loading @@ -732,7 +732,7 @@ static int __init i8042_pnp_init(void) "PNP: PS/2 controller doesn't have KBD irq; " "using default %d\n", i8042_kbd_irq); i8042_pnp_kbd_irq = i8042_kbd_irq; pnp_data_busted = 1; pnp_data_busted = true; } if (!i8042_noaux && !i8042_pnp_aux_irq) { Loading @@ -741,7 +741,7 @@ static int __init i8042_pnp_init(void) "PNP: PS/2 appears to have AUX port disabled, " "if this is incorrect please boot with " "i8042.nopnp\n"); i8042_noaux = 1; i8042_noaux = true; } else { printk(KERN_WARNING "PNP: PS/2 controller doesn't have AUX irq; " Loading Loading @@ -788,21 +788,21 @@ static int __init i8042_platform_init(void) return retval; #if defined(__ia64__) i8042_reset = 1; i8042_reset = true; #endif #ifdef CONFIG_X86 if (dmi_check_system(i8042_dmi_reset_table)) i8042_reset = 1; i8042_reset = true; if (dmi_check_system(i8042_dmi_noloop_table)) i8042_noloop = 1; i8042_noloop = true; if (dmi_check_system(i8042_dmi_nomux_table)) i8042_nomux = 1; i8042_nomux = true; if (dmi_check_system(i8042_dmi_dritek_table)) i8042_dritek = 1; i8042_dritek = true; #endif /* CONFIG_X86 */ return retval; Loading
drivers/input/serio/i8042.c +52 −51 Original line number Diff line number Diff line Loading @@ -28,35 +28,35 @@ MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>"); MODULE_DESCRIPTION("i8042 keyboard and mouse controller driver"); MODULE_LICENSE("GPL"); static unsigned int i8042_nokbd; static bool i8042_nokbd; module_param_named(nokbd, i8042_nokbd, bool, 0); MODULE_PARM_DESC(nokbd, "Do not probe or use KBD port."); static unsigned int i8042_noaux; static bool i8042_noaux; module_param_named(noaux, i8042_noaux, bool, 0); MODULE_PARM_DESC(noaux, "Do not probe or use AUX (mouse) port."); static unsigned int i8042_nomux; static bool i8042_nomux; module_param_named(nomux, i8042_nomux, bool, 0); MODULE_PARM_DESC(nomux, "Do not check whether an active multiplexing conrtoller is present."); static unsigned int i8042_unlock; static bool i8042_unlock; module_param_named(unlock, i8042_unlock, bool, 0); MODULE_PARM_DESC(unlock, "Ignore keyboard lock."); static unsigned int i8042_reset; static bool i8042_reset; module_param_named(reset, i8042_reset, bool, 0); MODULE_PARM_DESC(reset, "Reset controller during init and cleanup."); static unsigned int i8042_direct; static bool i8042_direct; module_param_named(direct, i8042_direct, bool, 0); MODULE_PARM_DESC(direct, "Put keyboard port into non-translated mode."); static unsigned int i8042_dumbkbd; static bool i8042_dumbkbd; module_param_named(dumbkbd, i8042_dumbkbd, bool, 0); MODULE_PARM_DESC(dumbkbd, "Pretend that controller can only read data from keyboard"); static unsigned int i8042_noloop; static bool i8042_noloop; module_param_named(noloop, i8042_noloop, bool, 0); MODULE_PARM_DESC(noloop, "Disable the AUX Loopback command while probing for the AUX port"); Loading @@ -65,20 +65,20 @@ module_param_named(panicblink, i8042_blink_frequency, uint, 0600); MODULE_PARM_DESC(panicblink, "Frequency with which keyboard LEDs should blink when kernel panics"); #ifdef CONFIG_X86 static unsigned int i8042_dritek; static bool i8042_dritek; module_param_named(dritek, i8042_dritek, bool, 0); MODULE_PARM_DESC(dritek, "Force enable the Dritek keyboard extension"); #endif #ifdef CONFIG_PNP static int i8042_nopnp; static bool i8042_nopnp; module_param_named(nopnp, i8042_nopnp, bool, 0); MODULE_PARM_DESC(nopnp, "Do not use PNP to detect controller settings"); #endif #define DEBUG #ifdef DEBUG static int i8042_debug; static bool i8042_debug; module_param_named(debug, i8042_debug, bool, 0600); MODULE_PARM_DESC(debug, "Turn i8042 debugging mode on and off"); #endif Loading @@ -92,7 +92,7 @@ static DEFINE_SPINLOCK(i8042_lock); struct i8042_port { struct serio *serio; int irq; unsigned char exists; bool exists; signed char mux; }; Loading @@ -105,9 +105,9 @@ static struct i8042_port i8042_ports[I8042_NUM_PORTS]; static unsigned char i8042_initial_ctr; static unsigned char i8042_ctr; static unsigned char i8042_mux_present; static unsigned char i8042_kbd_irq_registered; static unsigned char i8042_aux_irq_registered; static bool i8042_mux_present; static bool i8042_kbd_irq_registered; static bool i8042_aux_irq_registered; static unsigned char i8042_suppress_kbd_ack; static struct platform_device *i8042_platform_device; Loading Loading @@ -316,7 +316,7 @@ static int i8042_start(struct serio *serio) { struct i8042_port *port = serio->port_data; port->exists = 1; port->exists = true; mb(); return 0; } Loading @@ -330,7 +330,7 @@ static void i8042_stop(struct serio *serio) { struct i8042_port *port = serio->port_data; port->exists = 0; port->exists = false; /* * We synchronize with both AUX and KBD IRQs because there is Loading Loading @@ -492,14 +492,15 @@ static int i8042_enable_mux_ports(void) } /* * i8042_set_mux_mode checks whether the controller has an active * multiplexor and puts the chip into Multiplexed (1) or Legacy (0) mode. * i8042_set_mux_mode checks whether the controller has an * active multiplexor and puts the chip into Multiplexed (true) * or Legacy (false) mode. */ static int i8042_set_mux_mode(unsigned int mode, unsigned char *mux_version) static int i8042_set_mux_mode(bool multiplex, unsigned char *mux_version) { unsigned char param; unsigned char param, val; /* * Get rid of bytes in the queue. */ Loading @@ -511,14 +512,21 @@ static int i8042_set_mux_mode(unsigned int mode, unsigned char *mux_version) * mouse interface, the last should be version. */ param = 0xf0; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != 0xf0) param = val = 0xf0; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != val) return -1; param = val = multiplex ? 0x56 : 0xf6; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != val) return -1; param = mode ? 0x56 : 0xf6; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != (mode ? 0x56 : 0xf6)) param = val = multiplex ? 0xa4 : 0xa5; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param == val) return -1; param = mode ? 0xa4 : 0xa5; if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param == (mode ? 0xa4 : 0xa5)) /* * Workaround for interference with USB Legacy emulation * that causes a v10.12 MUX to be found. */ if (param == 0xac) return -1; if (mux_version) Loading @@ -537,14 +545,7 @@ static int __devinit i8042_check_mux(void) { unsigned char mux_version; if (i8042_set_mux_mode(1, &mux_version)) return -1; /* * Workaround for interference with USB Legacy emulation * that causes a v10.12 MUX to be found. */ if (mux_version == 0xAC) if (i8042_set_mux_mode(true, &mux_version)) return -1; printk(KERN_INFO "i8042.c: Detected active multiplexing controller, rev %d.%d.\n", Loading @@ -561,7 +562,7 @@ static int __devinit i8042_check_mux(void) return -EIO; } i8042_mux_present = 1; i8042_mux_present = true; return 0; } Loading @@ -570,7 +571,7 @@ static int __devinit i8042_check_mux(void) * The following is used to test AUX IRQ delivery. */ static struct completion i8042_aux_irq_delivered __devinitdata; static int i8042_irq_being_tested __devinitdata; static bool i8042_irq_being_tested __devinitdata; static irqreturn_t __devinit i8042_aux_test_irq(int irq, void *dev_id) { Loading @@ -597,7 +598,7 @@ static irqreturn_t __devinit i8042_aux_test_irq(int irq, void *dev_id) * verifies success by readinng CTR. Used when testing for presence of AUX * port. */ static int __devinit i8042_toggle_aux(int on) static int __devinit i8042_toggle_aux(bool on) { unsigned char param; int i; Loading Loading @@ -628,8 +629,8 @@ static int __devinit i8042_toggle_aux(int on) static int __devinit i8042_check_aux(void) { int retval = -1; int irq_registered = 0; int aux_loop_broken = 0; bool irq_registered = false; bool aux_loop_broken = false; unsigned long flags; unsigned char param; Loading Loading @@ -666,19 +667,19 @@ static int __devinit i8042_check_aux(void) * mark it as broken */ if (!retval) aux_loop_broken = 1; aux_loop_broken = true; } /* * Bit assignment test - filters out PS/2 i8042's in AT mode */ if (i8042_toggle_aux(0)) { if (i8042_toggle_aux(false)) { printk(KERN_WARNING "Failed to disable AUX port, but continuing anyway... Is this a SiS?\n"); printk(KERN_WARNING "If AUX port is really absent please use the 'i8042.noaux' option.\n"); } if (i8042_toggle_aux(1)) if (i8042_toggle_aux(true)) return -1; /* Loading @@ -699,7 +700,7 @@ static int __devinit i8042_check_aux(void) "i8042", i8042_platform_device)) goto out; irq_registered = 1; irq_registered = true; if (i8042_enable_aux_port()) goto out; Loading @@ -707,7 +708,7 @@ static int __devinit i8042_check_aux(void) spin_lock_irqsave(&i8042_lock, flags); init_completion(&i8042_aux_irq_delivered); i8042_irq_being_tested = 1; i8042_irq_being_tested = true; param = 0xa5; retval = __i8042_command(¶m, I8042_CMD_AUX_LOOP & 0xf0ff); Loading Loading @@ -844,7 +845,7 @@ static int i8042_controller_init(void) */ if (~i8042_ctr & I8042_CTR_XLATE) i8042_direct = 1; i8042_direct = true; /* * Set nontranslated mode for the kbd interface if requested by an option. Loading Loading @@ -892,7 +893,7 @@ static void i8042_controller_reset(void) */ if (i8042_mux_present) i8042_set_mux_mode(0, NULL); i8042_set_mux_mode(false, NULL); /* * Reset the controller if requested. Loading Loading @@ -1025,7 +1026,7 @@ static int i8042_pm_restore(struct device *dev) #endif if (i8042_mux_present) { if (i8042_set_mux_mode(1, NULL) || i8042_enable_mux_ports()) if (i8042_set_mux_mode(true, NULL) || i8042_enable_mux_ports()) printk(KERN_WARNING "i8042: failed to resume active multiplexor, " "mouse won't work.\n"); Loading Loading @@ -1167,7 +1168,7 @@ static void i8042_free_irqs(void) if (i8042_kbd_irq_registered) free_irq(I8042_KBD_IRQ, i8042_platform_device); i8042_aux_irq_registered = i8042_kbd_irq_registered = 0; i8042_aux_irq_registered = i8042_kbd_irq_registered = false; } static int __devinit i8042_setup_aux(void) Loading Loading @@ -1201,7 +1202,7 @@ static int __devinit i8042_setup_aux(void) if (aux_enable()) goto err_free_irq; i8042_aux_irq_registered = 1; i8042_aux_irq_registered = true; return 0; err_free_irq: Loading @@ -1228,7 +1229,7 @@ static int __devinit i8042_setup_kbd(void) if (error) goto err_free_irq; i8042_kbd_irq_registered = 1; i8042_kbd_irq_registered = true; return 0; err_free_irq: Loading