From owner-freebsd-usb@FreeBSD.ORG Thu Mar 5 19:09:06 2009 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 84EE6106566B for ; Thu, 5 Mar 2009 19:09:06 +0000 (UTC) (envelope-from boris.kotzev@gmail.com) Received: from mail-fx0-f158.google.com (mail-fx0-f158.google.com [209.85.220.158]) by mx1.freebsd.org (Postfix) with ESMTP id D88FA8FC26 for ; Thu, 5 Mar 2009 19:09:05 +0000 (UTC) (envelope-from boris.kotzev@gmail.com) Received: by fxm2 with SMTP id 2so65891fxm.43 for ; Thu, 05 Mar 2009 11:09:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:organization:to:subject :date:user-agent:references:in-reply-to:cc:mime-version :content-disposition:content-type:content-transfer-encoding :message-id; bh=XNFLjKm2JBz3LKu/PkY9rrKyPFKhEI0yj2szCS3h/Rk=; b=MbTeY8BP6HpyVosawp3dIQF7gDaLFMwM2OJ73DAINAzG5eLmVUabPWzCgH3+LEOWxG sY9Ot9cMqBHYO4f8demteWmKGmmqkjZsP1PjFXEcTZLKpoDF5/Ef3gcOGJYm8fO7zjcd j2S77Ai1J6A6FzLHF30MQV+zdhqXGVj6NRAEw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:organization:to:subject:date:user-agent:references:in-reply-to :cc:mime-version:content-disposition:content-type :content-transfer-encoding:message-id; b=Of89mZYg0oZpWseFtRokmYGeiCDi9njDYl5SY1QkHe44+j0LvcCxsoh0XLkt78GFA2 hJoEZq2+UHVM9VylDxeYdUlnmuhgWIM+tZKnCLz5O7Cc78JFhATSTVibEW4t0yKzGxh5 QP3YtAcw1O854y2Jkg83ImPdJ0VFZS28zSgCI= Received: by 10.103.240.5 with SMTP id s5mr685827mur.133.1236280144806; Thu, 05 Mar 2009 11:09:04 -0800 (PST) Received: from host7.net62.hdsl-213-169.fastbg.net (host7.net62.HDSL-213-169.FastBG.NET [213.169.62.7]) by mx.google.com with ESMTPS id g1sm506814muf.12.2009.03.05.11.09.01 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 05 Mar 2009 11:09:02 -0800 (PST) From: Boris Kotzev Organization: Home To: Hans Petter Selasky Date: Thu, 5 Mar 2009 21:08:59 +0200 User-Agent: KMail/1.11.0 (FreeBSD/8.0-CURRENT; KDE/4.2.0; amd64; ; ) References: <200903041946.15105.boris.kotzev@gmail.com> <200903042346.00840.boris.kotzev@gmail.com> <200903051431.22066.hselasky@c2i.net> In-Reply-To: <200903051431.22066.hselasky@c2i.net> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200903052109.00282.boris.kotzev@gmail.com> Cc: freebsd-usb@freebsd.org Subject: Re: usb touchpad not working properly on CURRENT with usb2 X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Mar 2009 19:09:06 -0000 > On Wednesday 04 March 2009, Boris Kotzev wrote: > > > On Wednesday 04 March 2009, Boris Kotzev wrote: > > > > Hi, > > > > > > > > The touchpad of my laptop is not responding properly to input > > > > anymore. It used to work fine with the old usb stack. > > > > > > > > The laptop is running CURRENT from yesterday: > > > > > > > > FreeBSD zembla.universe 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Wed Mar > > > > 4 17:30:05 EET 2009 user@zembla.universe:/usr/obj/usr/src/sys/CUSTOM > > > > amd64 > > > > > > > > When I move my finger horizontally on the touchpad of the laptop, the > > > > cursor moves up and down. Moving the finger vertically moves the > > > > cursor a little and then it stops. Pressing the touchpad button moves > > > > the cursor to the right. > > > > > > > > The touchpad is detected as: > > > > > > > > ugen0.2: at > > > > usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON > > > > > > > > Resetting the touchpad produces the following dmesg output: > > > > > > > > ukbd0: at uhub0, port 2, addr 2 (disconnected) > > > > ums1: at uhub0, port 2, addr 2 (disconnected) > > > > ums_detach:608: sc=0xffffff000188c400 > > > > uhid1: at uhub0, port 2, addr 2 (disconnected) > > > > ukbd0: on usbus0 > > > > kbd1 at ukbd0 > > > > ums1: on usbus0 > > > > ums_attach:530: WARNING: report size, 67 bytes, is larger than > > > > interrupt size, 64 bytes! ums1: 3 buttons and [XY] coordinates > > > > ums_attach:546: sc=0xffffff000184e800 > > > > ums_attach:547: X 8/8 > > > > ums_attach:548: Y 16/8 > > > > ums_attach:549: Z 0/0 > > > > ums_attach:550: T 0/0 > > > > ums_attach:551: W 0/0 > > > > ums_attach:555: B1 0/1 > > > > ums_attach:555: B2 1/1 > > > > ums_attach:555: B3 2/1 > > > > ums_attach:557: size=67, id=0 > > > > uhid1: on usbus0 > > > > > > > > What other information should I provide to help solving this problem? > > > > > > > > Sincerely, > > > > > > > > Boris Kotzev > > > > > > Could you get the USB HID descriptors dumped using: > > > > > > usbhidctl > > > > > > --HPS > > > > All information I managed to extract by using usbhidctl is below: > > > > # usbhidctl -f /dev/uhid1 -ra > > Report descriptor: > > Collection page=Consumer usage=Consumer_Control > > Input size=8 count=1 page=Consumer usage=Eject, logical range 0..255 > > End collection > > Total input size 1 bytes > > Total output size 0 bytes > > Total feature size 0 bytes > > usbhidctl: USB_SET_IMMED: Device not configured > > > > If it is not enough, will you explain to me how to use this utility? > > Hi, > > I think you have to unload ums module. Then replug the device and search > for the new uhid device. > > Can you also do: > > usbconfig -u 0 -a 2 dump_device_desc dump_curr_config_desc > > --HPS Hi, After the removal of the ums and ukbd devices from the kernel, a lot more uhid devices showed up in /dev: # dmesg | grep uhid uhid0: on usbus4 uhid1: on usbus4 uhid2: on usbus0 uhid3: on usbus0 uhid4: on usbus0 uhid5: on usbus2 uhid6: on usbus3 uhid7: on usbus3 The dump for uhid2, uhid3 and uhid4 is shown below. # usbhidctl -f /dev/uhid2 -r Report descriptor: Collection page=Generic_Desktop usage=Keyboard Input size=1 count=1 page=Keyboard usage=Keyboard_LeftControl, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_LeftShift, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_LeftAlt, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_Left_GUI, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_RightControl, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_RightShift, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_RightAlt, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_Right_GUI, logical range 0..1 Output size=1 count=1 page=LEDs usage=Num_Lock, logical range 0..1 Output size=1 count=1 page=LEDs usage=Caps_Lock, logical range 0..1 Output size=1 count=1 page=LEDs usage=Scroll_Lock, logical range 0..1 Output size=1 count=1 page=LEDs usage=Compose, logical range 0..1 Output size=1 count=1 page=LEDs usage=Kana, logical range 0..1 Input size=8 count=5 page=Keyboard usage=Reserved_(no_event_indicated), logical range 0..101 Input size=8 count=1 page=0x00ff usage=0x0003, logical range 0..101 End collection Total input size 8 bytes Total output size 1 bytes Total feature size 0 bytes # usbhidctl -f /dev/uhid3 -r Report descriptor: Collection page=Generic_Desktop usage=Mouse Total input size 0 bytes Total output size 0 bytes Total feature size 0 bytes # usbhidctl -f /dev/uhid4 -r Report descriptor: Collection page=Consumer usage=Consumer_Control Input size=8 count=1 page=Consumer usage=Eject, logical range 0..255 End collection Total input size 1 bytes Total output size 0 bytes Total feature size 0 bytes The output of usbconfig is as follows: # usbconfig -u 0 -a 2 dump_device_desc dump_curr_config_desc ugen0.2: at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x0000 bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0008 idVendor = 0x05ac idProduct = 0x0218 bcdDevice = 0x0064 iManufacturer = 0x0001 iProduct = 0x0002 iSerialNumber = 0x0000 bNumConfigurations = 0x0001 Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x0054 bNumInterfaces = 0x0003 bConfigurationValue = 0x0001 iConfiguration = 0x0000 bmAttributes = 0x00a0 bMaxPower = 0x0014 Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0000 bNumEndpoints = 0x0001 bInterfaceClass = 0x0003 bInterfaceSubClass = 0x0001 bInterfaceProtocol = 0x0001 iInterface = 0x0003 Additional Descriptor bLength = 0x09 bDescriptorType = 0x21 bDescriptorSubType = 0x11 RAW dump: 0x00 | 0x09, 0x21, 0x11, 0x01, 0x0d, 0x01, 0x22, 0x49, 0x08 | 0x00 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0083 bmAttributes = 0x0003 wMaxPacketSize = 0x0008 bInterval = 0x0008 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x0000 bNumEndpoints = 0x0001 bInterfaceClass = 0x0003 bInterfaceSubClass = 0x0001 bInterfaceProtocol = 0x0002 iInterface = 0x0004 Additional Descriptor bLength = 0x09 bDescriptorType = 0x21 bDescriptorSubType = 0x11 RAW dump: 0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x59, 0x08 | 0x00 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 bmAttributes = 0x0003 wMaxPacketSize = 0x0040 bInterval = 0x0008 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 2 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0002 bAlternateSetting = 0x0000 bNumEndpoints = 0x0001 bInterfaceClass = 0x0003 bInterfaceSubClass = 0x0000 bInterfaceProtocol = 0x0000 iInterface = 0x0003 Additional Descriptor bLength = 0x09 bDescriptorType = 0x21 bDescriptorSubType = 0x11 RAW dump: 0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x14, 0x08 | 0x00 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0084 bmAttributes = 0x0003 wMaxPacketSize = 0x0001 bInterval = 0x0008 bRefresh = 0x0000 bSynchAddress = 0x0000 Thanks! Boris Kotzev