kern/100687: psm problem (?): touchpad hangs, then move super slowely with no accelaration

germain lechapelaing at yahoo.fr
Fri Jul 21 20:10:30 UTC 2006


>Number:         100687
>Category:       kern
>Synopsis:       psm problem (?):  touchpad hangs, then move super slowely with no accelaration
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 21 20:10:16 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     germain
>Release:        Release 6.1
>Organization:
PI
>Environment:
FreeBSD germ 6.1-RELEASE FreeBSD 6.1-RELEASE #8: Mon Jun 26 13:41:20 UTC 2006     german at germ:/usr/obj/usr/src/sys/germ  i386
>Description:
Hi,

I have a dell latitude D600. Some time my touchpad hangs for one or two seconds and when it comes back, I loose every notion of `acceleration' I add before..

It s like moving one point on the touchpad moves of 1 pixel on the screen which is ver boring (actually not useable anymore : I have to use the TrackPoint instead. I don't know if there is changes f
or that one it is more difficult to tell.)

I have another mouse plugged in, an usb belkin with a wheel button. That one still works fine.

The values in xset remains the same before and after :

 Pointer Control:
  acceleration:  2/1    threshold:  4

and anyway restarting x doesn't change any thing. so doesn't soft reboot (kill 1 , exit single user.) The only thing I can do to get out of that hell of slowness is to reboot my beloved computer.

I don't know what to track.. so I wrote a little thing to dump value from psm:
I get the same value before and after it happens


protocol : 7
rate : -1
resolution : -1
accelfactor : 0
level : 0
packetsize : 3
syncmask [192][0]

(here is the program.. maybe there is no needs for it and there is already an tool to do that but I couldn't find it

#include <sys/ioctl.h>

#define psm_path "/dev/psm0"

int
main(int argc, char *argv[])
{
  int psm = open("/dev/psm0", O_RDONLY);

  mousemode_t mode;

  int res = ioctl( psm, MOUSE_GETMODE, &mode );

  if ( -1 == res )
      return 1;

#define print(P)        \
  printf( "%s : %d\n", #P, mode.P)

  print(protocol);
  print(rate);
  print(resolution);
  print(accelfactor);
  print(level);
  print(packetsize);

  printf("syncmask [%d][%d]\n", mode.syncmask[0], mode.syncmask[1]);

)



I rebuild with the Freeb with
device          psm             # PS/2 mouse
options         PSM_DEBUG=2
options         KBDIO_DEBUG=2

So I can show you a (maybe?) relevant dmesg output :

===================8<===================8<===================

 ( ... different things before ... )

psm: status 00 00 64
psm: ENABLE_DEV return code:00fa
psm: SEND_AUX_DEV_STATUS return code:00fa
psm: status 20 00 64
kbdc: new command byte:0047 (set_controller...)
Jul 15 20:54:25 germ kernel: psm0: found GlidePoint
psmintr: Sync bytes now 00c0,00c0
kbdc: 0:2 char read (empty_both_buffers)
psm0: current command byte: 0047 (reinitialize).
kbdc: new command byte:0054 (set_controller...)
psm: DISABLE_DEV return code:00fa
kbdc: TEST_AUX_PORT status:0000
kbdc: RESET_AUX return code:00fa
kbdc: RESET_AUX status:00aa
kbdc: RESET_AUX ID:0000
psm: ENABLE_DEV return code:00fa
psm: DISABLE_DEV return code:00fa
psm: SET_RESOLUTION (3) 00fa
psm: SET_SCALING11 return code:00fa
psm: SET_SCALING11 return code:00fa
psm: SET_SCALING11 return code:00fa
psm: SEND_AUX_DEV_STATUS return code:00fa
psm: status 00 03 64
psm: SET_RESOLUTION (3) 00fa
psm: SET_SCALING11 return code:00fa
psm: SET_SCALING11 return code:00fa
psm: SET_SCALING11 return code:00fa
psm: SEND_AUX_DEV_STATUS return code:00fa
psm: status 00 03 64
psm: SET_SCALING11 return code:00fa
psm: SET_RESOLUTION (0) 00fa
psm: SET_RESOLUTION (3) 00fa
psm: SET_RESOLUTION (2) 00fa
psm: SET_RESOLUTION (1) 00fa
psm: SET_RESOLUTION (3) 00fa
psm: SET_RESOLUTION (1) 00fa
psm: SET_RESOLUTION (2) 00fa
psm: SET_RESOLUTION (3) 00fa
psm: SEND_AUX_DEV_DATA return code:00fa
psm: data 08 00 00
psm: SET_SAMPLING_RATE (200) 00fa
psm: SET_SAMPLING_RATE (200) 00fa
psm: SET_SAMPLING_RATE (80) 00fa
psm: SEND_DEV_ID return code:00fa
psm: device ID: 0000
psm: SET_SAMPLING_RATE (200) 00fa
psm: SET_SAMPLING_RATE (100) 00fa
psm: SET_SAMPLING_RATE (80) 00fa
psm: SET_SAMPLING_RATE (60) 00fa
psm: SET_SAMPLING_RATE (40) 00fa
psm: SET_SAMPLING_RATE (20) 00fa
psm: SEND_DEV_ID return code:00fa
psm: device ID: 0000
psm: SEND_DEV_ID return code:00fa
psm: device ID: 0000
psm: SET_SAMPLING_RATE (200) 00fa
psm: SET_SAMPLING_RATE (100) 00fa
psm: SET_SAMPLING_RATE (80) 00fa
psm: SEND_DEV_ID return code:00fa
psm: device ID: 0000
psm: SET_SAMPLING_RATE (100) 00fa
psm: SET_RESOLUTION (0) 00fa
psm: SET_SCALING21 return code:00fa
psm: SET_SCALING21 return code:00fa
psm: SET_SCALING21 return code:00fa
psm: SEND_AUX_DEV_STATUS return code:00fa
psm: status 22 02 14
psm0: found GlidePoint
psm: SET_SCALING11 return code:00fa
psm: SET_STREAM_MODE return code:00fa
psm: SEND_AUX_DEV_STATUS return code:00fa
psm: status 00 00 64
psm: ENABLE_DEV return code:00fa
psm: SEND_AUX_DEV_STATUS return code:00fa
psm: status 20 00 64
kbdc: new command byte:0047 (set_controller...)
psmintr: Sync bytes now 00c0,00c0
Jul 15 20:54:26 germ kernel: psm0: found GlidePoint

===================>8===================>8===================




I would like so much somebody to help me that I even add my xorg.conf, although I guess it is useless, isn't it ?



===================8<===================8<===================

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Mouse1" "SendCoreEvents"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
        FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
        FontPath     "/usr/X11R6/lib/X11/fonts/TTF/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
        FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
        FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

Section "Module"
        Load  "extmod"
        Load  "glx"
        Load  "dri"
        Load  "dbe"
        Load  "record"
        Load  "xtrap"
        Load  "type1"
        Load  "freetype"
        Load  "vbe"
EndSection

Section "DRI"
    Mode    0666
EndSection
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver  "mouse"
        Option  "VertScrollDelta" "100"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/psm0"
EndSection

Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "off"
EndSection


Section "Monitor"
        #DisplaySize      290   210     # mm
        Identifier   "Monitor0"
        VendorName   "SEC"
        ModelName    "3450"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"                   # [<bool>]
        #Option     "SWcursor"                  # [<bool>]
        #Option     "Dac6Bit"                   # [<bool>]
        #Option     "Dac8Bit"                   # [<bool>]
        #Option     "BusType"                   # [<str>]
        #Option     "CPPIOMode"                 # [<bool>]
        #Option     "CPusecTimeout"             # <i>
        #Option     "AGPMode"                   # <i>
        #Option     "AGPFastWrite"              # [<bool>]
        #Option     "AGPSize"                   # <i>
        #Option     "GARTSize"                  # <i>
        #Option     "RingSize"                  # <i>
        #Option     "BufferSize"                # <i>
        #Option     "EnableDepthMoves"          # [<bool>]
        #Option     "EnablePageFlip"            # [<bool>]
        #Option     "NoBackBuffer"              # [<bool>]
        #Option     "PanelOff"                  # [<bool>]
        #Option     "DDCMode"                   # [<bool>]
        #Option     "MonitorLayout"             # [<str>]
        #Option     "IgnoreEDID"                # [<bool>]
        #Option     "UseFBDev"                  # [<bool>]
        #Option     "VideoKey"                  # <i>
        #Option     "MergedFB"                  # [<bool>]
        #Option     "CRT2HSync"                 # [<str>]
        #Option     "CRT2VRefresh"              # [<str>]
        #Option     "CRT2Position"              # [<str>]
        #Option     "MetaModes"                 # [<str>]
        #Option     "MergedDPI"                 # [<str>]
        #Option     "NoMergedXinerama"          # [<bool>]
        #Option     "MergedXineramaCRT2IsScreen0"       # [<bool>]
        #Option     "DisplayPriority"           # [<str>]
        #Option     "PanelSize"                 # [<str>]
        #Option     "ForceMinDotClock"          # <freq>
        #Option     "RenderAccel"               # [<bool>]
        #Option     "SubPixelOrder"             # [<str>]
        #Option     "ShowCache"                 # [<bool>]
        #Option     "DynamicClocks"             # [<bool>]
        Identifier  "Card0"
        Driver      "ati"
        VendorName  "ATI Technologies Inc"
        BoardName   "Radeon R250 Lf [Radeon Mobility 9000 M9]"
        BusID       "PCI:1:0:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Viewport   0 0
                Depth     1
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     4
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     8
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     15
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     16
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

===================>8===================>8===================


Go bsd guys !

I honestly which I could help more, I have been through all the code and all, but it seems that it will be easier for somebody who knows.. However, if somebody has any clue of where to look at, espe
cially why, having the same xset and the same ioct result, I don't have the same behavior of my touchpad..

could it be a problem from the hardware device itself ? then what to do about it ?

thanks in advance.

>How-To-Repeat:
wait
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list