2003-09-04 11:50:51

by Frederic Gobry

[permalink] [raw]
Subject: 2.6.0-test4 does not detect my touchpad

(please CC to my address)

Hi,

I've a touchpad issue with the 2.6.0-test4 kernel on a Compaq Presario
1694. This seems _not_ to be related to a missing XFree driver, rather
on the detection of the device itself.

During the boot, I only have the following messages regarding the
keyboard/mouse detection:

kernel: mice: PS/2 mouse device common for all mice
kernel: input: AT Set 2 keyboard on isa0060/serio0
kernel: serio: i8042 KBD port at 0x60,0x64 irq 1

After boot, /proc/bus/input/devices contains only:

I: Bus=0011 Vendor=0001 Product=0002 Version=ab02
N: Name="AT Set 2 keyboard"
P: Phys=isa0060/serio0/input0
H: Handlers=kbd event0
B: EV=120003
B: KEY=4 2000000 c061f9 fbc9d621 efdfffdf ffefffff ffffffff fffffffe
B: LED=7


This is with and without the psmouse_noext option.

Below is my current kernel config (the part I related to input
devices).

Is there a way to perform some probing on the PS/2 port, so that I can
provide more detailed info ?

Thanks in advance,
Fr?d?ric


--------------------------------------------------
Current configuration:
--------------------------------------------------

CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set

#
# Input I/O drivers
#
CONFIG_GAMEPORT=y
CONFIG_SOUND_GAMEPORT=y
CONFIG_GAMEPORT_NS558=y
# CONFIG_GAMEPORT_L4 is not set
# CONFIG_GAMEPORT_EMU10K1 is not set
# CONFIG_GAMEPORT_VORTEX is not set
# CONFIG_GAMEPORT_FM801 is not set
# CONFIG_GAMEPORT_CS461x is not set
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
CONFIG_SERIO_PCIPS2=m

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_SYNAPTICS=y <---- when testing with test4-mm5


--
Fr?d?ric Gobry SMARTDATA
http://www.smartdata.ch/
PGP: 5B44F4A5 Lausanne - Switzerland
+41 21 693 84 98


Attachments:
(No filename) (2.19 kB)
(No filename) (189.00 B)
Download all attachments

2003-09-04 12:25:39

by Andries Brouwer

[permalink] [raw]
Subject: Re: 2.6.0-test4 does not detect my touchpad

On Thu, Sep 04, 2003 at 01:50:44PM +0200, Frederic Gobry wrote:

> Is there a way to perform some probing on the PS/2 port, so that I can
> provide more detailed info ?

If you #define DEBUG in i8042.c and make sure you use a large
log buffer then all probing is logged via syslog, and we can
see what was sent and how the touchpad reacted.

2003-09-04 13:57:42

by Frederic Gobry

[permalink] [raw]
Subject: Re: 2.6.0-test4 does not detect my touchpad

> If you #define DEBUG in i8042.c and make sure you use a large
> log buffer then all probing is logged via syslog, and we can
> see what was sent and how the touchpad reacted.

Here we go:

kernel: mice: PS/2 mouse device common for all mice
kernel: drivers/input/serio/i8042.c: 20 -> i8042 (command) [0]
kernel: drivers/input/serio/i8042.c: 47 <- i8042 (return) [0]
kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [0]
kernel: drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [0]
kernel: drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
kernel: drivers/input/serio/i8042.c: f0 -> i8042 (parameter) [0]
kernel: drivers/input/serio/i8042.c: 0f <- i8042 (return) [0]
kernel: drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
kernel: drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [0]
kernel: drivers/input/serio/i8042.c: a9 <- i8042 (return) [0]
kernel: drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
kernel: drivers/input/serio/i8042.c: a4 -> i8042 (parameter) [0]
kernel: drivers/input/serio/i8042.c: 5b <- i8042 (return) [0]
kernel: drivers/input/serio/i8042.c: d3 -> i8042 (command) [1]
kernel: drivers/input/serio/i8042.c: 5a -> i8042 (parameter) [1]
kernel: drivers/input/serio/i8042.c: a5 <- i8042 (return) [1]
kernel: drivers/input/serio/i8042.c: a7 -> i8042 (command) [1]
kernel: drivers/input/serio/i8042.c: 20 -> i8042 (command) [1]
kernel: drivers/input/serio/i8042.c: 56 <- i8042 (return) [1]
kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [1]
kernel: drivers/input/serio/i8042.c: 46 -> i8042 (parameter) [1]
kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [1]
kernel: drivers/input/serio/i8042.c: 47 -> i8042 (parameter) [1]
kernel: drivers/input/serio/i8042.c: f2 -> i8042 (kbd-data) [1]
kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [1]
kernel: drivers/input/serio/i8042.c: ab <- i8042 (interrupt, kbd, 1) [2]
kernel: drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [7]
kernel: drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [7]
kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [8]
kernel: drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [8]
kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [8]
kernel: drivers/input/serio/i8042.c: f8 -> i8042 (kbd-data) [8]
kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [8]
kernel: drivers/input/serio/i8042.c: f4 -> i8042 (kbd-data) [8]
kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [8]
kernel: drivers/input/serio/i8042.c: f0 -> i8042 (kbd-data) [8]
kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [8]
kernel: drivers/input/serio/i8042.c: 02 -> i8042 (kbd-data) [8]
kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [8]
kernel: drivers/input/serio/i8042.c: f0 -> i8042 (kbd-data) [8]
kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [9]
kernel: drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [9]
kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [9]
kernel: drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [13]
kernel: input: AT Set 2 keyboard on isa0060/serio0
kernel: serio: i8042 KBD port at 0x60,0x64 irq 1

--
Fr?d?ric Gobry SMARTDATA
http://www.smartdata.ch/
PGP: 5B44F4A5 Lausanne - Switzerland
+41 21 693 84 98


Attachments:
(No filename) (3.35 kB)
(No filename) (189.00 B)
Download all attachments

2003-09-04 14:54:12

by Andries Brouwer

[permalink] [raw]
Subject: Re: 2.6.0-test4 does not detect my touchpad

On Thu, Sep 04, 2003 at 03:57:37PM +0200, Frederic Gobry wrote:
> > If you #define DEBUG in i8042.c and make sure you use a large
> > log buffer then all probing is logged via syslog, and we can
> > see what was sent and how the touchpad reacted.
>
> Here we go:
>
> kernel: mice: PS/2 mouse device common for all mice
> kernel: i8042.c: 20 -> i8042 (command) [0]
> kernel: i8042.c: 47 <- i8042 (return) [0]

Read controller command byte: 47 - xlate, kie, mie, sysf

> kernel: i8042.c: 60 -> i8042 (command) [0]
> kernel: i8042.c: 56 -> i8042 (parameter) [0]

Write controller command byte: 56 - disable keyboard and kbd interrupt

> kernel: i8042.c: d3 -> i8042 (command) [0]
> kernel: i8042.c: f0 -> i8042 (parameter) [0]
> kernel: i8042.c: 0f <- i8042 (return) [0]
> kernel: i8042.c: d3 -> i8042 (command) [0]
> kernel: i8042.c: 56 -> i8042 (parameter) [0]
> kernel: i8042.c: a9 <- i8042 (return) [0]
> kernel: i8042.c: d3 -> i8042 (command) [0]
> kernel: i8042.c: a4 -> i8042 (parameter) [0]
> kernel: i8042.c: 5b <- i8042 (return) [0]

Write f0, 56, a4 to mouse output buffer and see whether we read
the same values back. (They are given complemented.)
0f, a9, 5b - yes, we do. There was no special magic here.
We conclude that no multiplexer is present.

> kernel: i8042.c: d3 -> i8042 (command) [1]
> kernel: i8042.c: 5a -> i8042 (parameter) [1]
> kernel: i8042.c: a5 <- i8042 (return) [1]

Loop test succeeds.

> kernel: i8042.c: a7 -> i8042 (command) [1]

Disable mouse port.

> kernel: i8042.c: 20 -> i8042 (command) [1]
> kernel: i8042.c: 56 <- i8042 (return) [1]

Check that it really has been disabled. But wait!
The disable bit is 0x20, and it was not set.
We conclude that there is no AUX port.
No PS/2 mouse that can be used.

You can to put #if 0 ... #endif around the four
if statements following the comment

/*
* Bit assignment test - filters out PS/2 i8042's in AT mode
*/

in i8042.c (since also your mouse was filtered away).

Andries

2003-09-05 08:42:38

by Frederic Gobry

[permalink] [raw]
Subject: Re: 2.6.0-test4 does not detect my touchpad

> We conclude that there is no AUX port.
> No PS/2 mouse that can be used.

Does it mean that the hardware is somehow lying or is the check too
strong ?

> You can to put #if 0 ... #endif around the four
> if statements following the comment
>
> /*
> * Bit assignment test - filters out PS/2 i8042's in AT mode
> */
>
> in i8042.c (since also your mouse was filtered away).

I've done that. Enclosed are some logs from my tests. In short:

- with no psmouse_noext option, the synaptics touchpad is
detected, but there a lots of synchro lost error messages.

- with psmouse_noext set, the mouse is erratic when using XFree
(not with the synaptics specific driver)

Fr?d?ric


Attachments:
(No filename) (0.00 B)
(No filename) (189.00 B)
Download all attachments