*** pc_keyb.c.orig Thu Oct 4 21:48:24 2001 --- pc_keyb.c Thu Oct 4 21:52:41 2001 *************** *** 63,68 **** --- 63,69 ---- #ifdef CONFIG_PSMOUSE static void aux_write_ack(int val); static void __aux_write_ack(int val); + static int aux_reconnect = 0; #endif static spinlock_t kbd_controller_lock = SPIN_LOCK_UNLOCKED; *************** *** 403,409 **** } mouse_reply_expected = 0; } ! else if(scancode == AUX_RECONNECT){ queue->head = queue->tail = 0; /* Flush input queue */ __aux_write_ack(AUX_ENABLE_DEV); /* ping the mouse :) */ return; --- 404,411 ---- } mouse_reply_expected = 0; } ! else if(scancode == AUX_RECONNECT && aux_reconnect){ ! printk(KERN_DEBUG "AUX_RECONNECT scancode read\n"); queue->head = queue->tail = 0; /* Flush input queue */ __aux_write_ack(AUX_ENABLE_DEV); /* ping the mouse :) */ return; *************** *** 751,756 **** --- 753,776 ---- } #if defined CONFIG_PSMOUSE + + /* + AUX_RECONNECT support becomes a boot option, default off + + WARNING: aux-reconnect breaks synaptics ps2 touchpad support + (synaptics generates spurious AUX_RECONNECT scancodes ?) + + ported from 2.2.18 by MAtteo HCE Valsasna (hce@uninsubria.it) + */ + + static int __init aux_reconnect_setup(char *str, int *ints) + { + aux_reconnect=1; + printk(KERN_INFO "AUX_RECONNECT support enabled, forget your synaptics\n"); + return 1; + } + + __setup("aux-reconnect", aux_reconnect_setup); /* * Check if this is a dual port controller.