Input: i8042 - add i8042.nokbd module option to allow supressing
creation of keyboard port. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
c3d31e7f9a
commit
945ef0d428
3 changed files with 22 additions and 5 deletions
|
@ -549,6 +549,7 @@ running once the system is up.
|
|||
keyboard and can not control its state
|
||||
(Don't attempt to blink the leds)
|
||||
i8042.noaux [HW] Don't check for auxiliary (== mouse) port
|
||||
i8042.nokbd [HW] Don't check/create keyboard port
|
||||
i8042.nomux [HW] Don't check presence of an active multiplexing
|
||||
controller
|
||||
i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX
|
||||
|
|
|
@ -297,6 +297,8 @@ static int __init i8042_pnp_init(void)
|
|||
aux_irq_str);
|
||||
|
||||
#if defined(__ia64__)
|
||||
if (result_kbd <= 0)
|
||||
i8042_nokbd = 1;
|
||||
if (result_aux <= 0)
|
||||
i8042_noaux = 1;
|
||||
#endif
|
||||
|
@ -315,7 +317,7 @@ static int __init i8042_pnp_init(void)
|
|||
i8042_pnp_command_reg = i8042_command_reg;
|
||||
}
|
||||
|
||||
if (!i8042_pnp_kbd_irq) {
|
||||
if (!i8042_nokbd && !i8042_pnp_kbd_irq) {
|
||||
printk(KERN_WARNING "PNP: PS/2 controller doesn't have KBD irq; using default %d\n", i8042_kbd_irq);
|
||||
i8042_pnp_kbd_irq = i8042_kbd_irq;
|
||||
}
|
||||
|
|
|
@ -27,6 +27,10 @@ MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>");
|
|||
MODULE_DESCRIPTION("i8042 keyboard and mouse controller driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
static unsigned int 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;
|
||||
module_param_named(noaux, i8042_noaux, bool, 0);
|
||||
MODULE_PARM_DESC(noaux, "Do not probe or use AUX (mouse) port.");
|
||||
|
@ -1058,7 +1062,7 @@ static int __init i8042_create_mux_port(int index)
|
|||
|
||||
static int __init i8042_init(void)
|
||||
{
|
||||
int i;
|
||||
int i, have_ports = 0;
|
||||
int err;
|
||||
|
||||
dbg_init();
|
||||
|
@ -1100,11 +1104,20 @@ static int __init i8042_init(void)
|
|||
if (err)
|
||||
goto err_unregister_ports;
|
||||
}
|
||||
have_ports = 1;
|
||||
}
|
||||
|
||||
err = i8042_create_kbd_port();
|
||||
if (err)
|
||||
goto err_unregister_ports;
|
||||
if (!i8042_nokbd) {
|
||||
err = i8042_create_kbd_port();
|
||||
if (err)
|
||||
goto err_unregister_ports;
|
||||
have_ports = 1;
|
||||
}
|
||||
|
||||
if (!have_ports) {
|
||||
err = -ENODEV;
|
||||
goto err_unregister_device;
|
||||
}
|
||||
|
||||
mod_timer(&i8042_timer, jiffies + I8042_POLL_PERIOD);
|
||||
|
||||
|
@ -1114,6 +1127,7 @@ static int __init i8042_init(void)
|
|||
for (i = 0; i < I8042_NUM_PORTS; i++)
|
||||
if (i8042_ports[i].serio)
|
||||
serio_unregister_port(i8042_ports[i].serio);
|
||||
err_unregister_device:
|
||||
platform_device_unregister(i8042_platform_device);
|
||||
err_unregister_driver:
|
||||
driver_unregister(&i8042_driver);
|
||||
|
|
Loading…
Reference in a new issue