Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Sep 2010 16:52:49 -0400
From:      David Horn <dhorn2000@gmail.com>
To:        Norikatsu Shigemura <nork@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: psm(4) - synaptics touch pad strange behavier
Message-ID:  <AANLkTikkyHC8aFm%2BY6XJdgzL_bNpCtu4_4-HJOkSjaSX@mail.gmail.com>
In-Reply-To: <20100927004436.997b82d7.nork@FreeBSD.org>
References:  <20100927004436.997b82d7.nork@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Sep 26, 2010 at 11:44 AM, Norikatsu Shigemura <nork@freebsd.org> wr=
ote:
>
> Hi psm(4) masters!
>
> =A0 =A0 =A0 =A0I have trouble using Synaptics TouchPad, psm(4) on my CF-R=
9.
> =A0 =A0 =A0 =A0The trouble is that the mouse cursor moves at random, and =
the
> =A0 =A0 =A0 =A0mouse button is clicked without button action. =A0I heard =
same
> =A0 =A0 =A0 =A0trouble from ume@'s CF-R8.
>
> =A0 =A0 =A0 =A0So I enabled options PSM_DEBUG=3D5 and traced psm's packet=
s.
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -=
 - - - - -
> =A0:
> FreeBSD 9.0-CURRENT #39: Sun Sep 26 22:07:37 JST 2010
> =A0 =A0nork@pelsia.ninth-nine.com:/usr/obj/usr/src/sys/PELSIA amd64
> =A0:
> atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
> atkbd0: <AT Keyboard> irq 1 on atkbdc0
> atkbd: the current kbd controller command byte 0065
> atkbd: keyboard ID 0x41ab (2)
> kbd0 at atkbd0
> kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000
> ioapic0: routing intpin 1 (ISA IRQ 1) to lapic 0 vector 67
> atkbd0: [GIANT-LOCKED]
> psm0: unable to allocate IRQ
> psmcpnp0: <PS/2 mouse port> irq 12 on acpi0
> psm0: current command byte:0065
> Synaptics Touchpad v6.2
> =A0Model information:
> =A0 infoRot180: 0
> =A0 infoPortrait: 0
> =A0 infoSensor: 57
> =A0 infoHardware: 80
> =A0 infoNewAbs: 1
> =A0 capPen: 0
> =A0 infoSimplC: 1
> =A0 infoGeometry: 2
> =A0Extended capabilities:
> =A0 capExtended: 1
> =A0 capPassthrough: 0
> =A0 capSleep: 1
> =A0 capFourButtons: 0
> =A0 capMultiFinger: 0
> =A0 capPalmDetect: 1
> =A0Additional Buttons: 0
> psm0: found Synaptics Touchpad
> psm0: <PS/2 Mouse> flags 0x3000 irq 12 on atkbdc0
> ioapic0: routing intpin 12 (ISA IRQ 12) to lapic 0 vector 68
> psm0: [GIANT-LOCKED]
> psm0: model Synaptics Touchpad, device ID 0-00, 3 buttons
> psm0: config:00007000, flags:00000008, packet size:6
> psm0: syncmask:c0, syncbits:00
> =A0:
> atkbdc: atkbdc0 already exists; skipping it
> =A0:
<snipped for brevity>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -=
 - - - - -
>
> =A0 =A0 =A0 =A0I read Synaptics's "Synaptics PS/2 TouchPad Interfacing Gu=
ide",
> =A0 =A0 =A0 =A0PN: 511-000275-01 Rev.A and sys/dev/atkbdc/psm.c. =A0Accor=
dingly
> =A0 =A0 =A0 =A0these, I think no problem about implementing synaptics pro=
cessing
> =A0 =A0 =A0 =A0part, maybe.
>
> =A0 =A0 =A0 =A0But read_aux_data_no_wait is really OK? =A0Accordingly, my=
 dumped
> =A0 =A0 =A0 =A0data pointed out 'not synaptics data.'. =A0Some initializa=
tion is
> =A0 =A0 =A0 =A0required? =A0I didn't know what.
>
> psmintr() in sys/dev/atkbdc/psm.c
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -=
 - - - - -
> =A0 =A0 =A0 =A0while((c =3D read_aux_data_no_wait(sc->kbdc)) !=3D -1) {
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -=
 - - - - -
>
> =A0 =A0 =A0 =A0To fix this issue, should I do other?
>

I have not looked at this code in a while, but I seem to remember
having some problems when attempting to use the Synaptics extended
support in psm(4).=A0=A0 I'm not certain if you are running with or
without the loader tunable enabled for extended and/or a custom
device.hints.  Snippet from psm(4) man page

LOADER TUNABLES
     Extended support for Synaptics touchpads can be enabled by setting
     hw.psm.synaptics_support to 1 at boot-time.  This will enable psm to h=
an-
     dle packets from guest devices (sticks) and extra buttons.

     Tap and drag gestures can be disabled by setting hw.psm.tap_enabled to=
 0
     at boot-time.  Currently, this is only supported on Synaptics touchpad=
s
     with Extended support disabled. The behaviour may be changed after boo=
t
     by setting the sysctl with the same name and by restarting moused(8)
     using /etc/rc.d/moused.

There is also some additional documentation for the extended support
here: http://wiki.freebsd.org/SynapticsTouchpad

The last I looked, I was successfully using synaptics touchpad with
the loader tunables hw.psm.synaptics_support set to 0, and
hw.psm.tap_enabled set to 0 (at least on my Dell 1520), so that the
touchpad would just work like a normal mouse.  I seem to remember a
few pr's (84411) against psm synaptics support for your issue as well
(including a potential patch), but best to check with some recent
deveopers in this area. (Perhaps philip@ and/or dumbbell@ could chime
in ?)

Good Luck.

-_Dave



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikkyHC8aFm%2BY6XJdgzL_bNpCtu4_4-HJOkSjaSX>