Hi, I confirmed the fix posted in upstream does not fix my situation.
I then checked source and finally figure out cryptic BTS report of original #210993. I added "DEBUG_LEVEL=3" to tpconfig.c source and compiled. Yes I get this debug report. ======================================================================== = = = tpconfig version: 3.1.3 = = = = Synaptics Touchpad and ALPS GlidePad/Stickpointer configuration tool = = = = Copyright (C) 1997 C. Scott Ananian<[EMAIL PROTECTED]> = = Copyright (C) 1998-2001 Bruce Kall <[EMAIL PROTECTED]> = = Last Modified (Version 3.1.3) by Bruce Kall, 2/22/2002 = = = = tpconfig comes with ABSOLUTELY NO WARRANTY. This is free software, = = and you are welcome to redistribute it under the terms of the GPL. = = = ======================================================================== putbyte: write 0xe6 PS2_write: 1 bytes PS2_write: 0xe6 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 0xe8 PS2_write: 1 bytes PS2_write: 0xe8 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 00 PS2_write: 1 bytes PS2_write: 0 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 0xe8 PS2_write: 1 bytes PS2_write: 0xe8 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 00 PS2_write: 1 bytes PS2_write: 0 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 0xe8 PS2_write: 1 bytes PS2_write: 0xe8 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 00 PS2_write: 1 bytes PS2_write: 0 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 0xe8 PS2_write: 1 bytes PS2_write: 0xe8 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 00 PS2_write: 1 bytes PS2_write: 0 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 0xe9 PS2_write: 1 bytes PS2_write: 0xe9 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa PS2_read: 1 bytes PS2_read: 0x60 PS2_read: read 1 ps2_read_byte: read 0x60 PS2_read: 1 bytes PS2_read: 0x3 PS2_read: read 1 ps2_read_byte: read 0x3 PS2_read: 1 bytes PS2_read: 0xc8 PS2_read: read 1 ps2_read_byte: read 0xc8 [query 00 => 0x60 0x3 0xc8] putbyte: write 0xe7 PS2_write: 1 bytes PS2_write: 0xe7 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 0xe7 PS2_write: 1 bytes PS2_write: 0xe7 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa putbyte: write 0xe7 PS2_write: 1 bytes PS2_write: 0xe7 PS2_write: done PS2_read: 1 bytes PS2_read: 0xfa PS2_read: read 1 ps2_read_byte: read 0xfa Writing Initial [e9] in is_ALPS PS2_write: 1 bytes PS2_write: 0xe9 PS2_write: done PS2_read: 4 bytes PS2_read: 0xfa 0x60 0x3 0xc8 PS2_read: read 4 ALPS Configuration Info [60][ 3][c8] fatal: No Synaptics or ALPS touchpad device found There are minor differences due probably the debug level used but this is essentially the same pattern as the original bug reporter reported. So this is still there. Let me do brute force rough trace of code. To me flow of code looks like is_Synaptics is called and should fail on my system in tpconfig.c. Here is_Synaptic() code is in synaptic.c. Then is_ALPS is called and funny thing happens. This last part is key. | PS2_read: 4 bytes | PS2_read: 0xfa 0x60 0x3 0xc8 | PS2_read: read 4 | ALPS Configuration Info [60][ 3][c8] | fatal: | | No Synaptics or ALPS touchpad device found In the reported 2.4 case: PS2_read: 0xfa 0x22 0x2 0x14 This means the difference 2.4 2.6 response[1] = 0x22 0x60 response[2] = 0x02 0x03 response[3] = 0x14 0xc8 So these different values are fead to this portion of code in ALPS.c (int is_ALPS(int fd)) : | return_value = 0; | for(i = 0;i < NUM_SINGLES;i++) | { | if((response[1] == singles[i * 3] && (response[2] == singles[i * 3 + 1]) && | response[3] == singles[i * 3 + 2])) | { | touchpad_type = ALPS_GLIDEPAD; | return_value = 1; | } | } | if(return_value == 0) | { | for(i = 0;i < NUM_DUALS;i++) | { | if((response[1] == duals[i * 3]) && (response[2] == duals[i * 3 + 1]) && | (response[3] == duals[i * 3 + 2])) | { | touchpad_type = ALPS_STICKPOINTER_AND_GLIDEPOINT; | return_value = 1; | } | } | } This is table matching, so for the heck, I added new parameter set. #define NUM_DUALS 4 static int duals[NUM_DUALS * 3]={ 0x20,0x2,0xe, /* as reported by William Moran, [EMAIL PROTECTED] CPxH*/ 0x22,0x2,0xa, 0x60,0x3,0xc8, /* for 2.6 kernel, [EMAIL PROTECTED] */ 0x22,0x2,0x14}; Well, it does detect ALPS device now but other things seems to be broken so I do not have luck to change tap mode. Oh, well. That's all I checked and gave up. Osamu -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]