Logitech iFeel working

Karl Andersson karland at home.se
Sun Oct 23 13:54:45 PDT 2005


Hello

I have an USB Logitech iFeel mouse that haven't worked under freebsd for
sometime but now i actually got it working. I have an pretty old motherboard
type KT333 (athlon xp).

The common error message is:
device_probe_and_attach: ums0 attach returned 6

See also http://www.freebsd.org/cgi/query-pr.cgi?pr=40657

After enabling debuging and attaching the mouse i found that the USB stalls
after the driver tries to get the the language. The following patch "solves"
it. The mouse works perfectly after disabling that usb_get_string.
I know this isn't an good solution but maybee someone could point me
into what should
be done after the mouse stalls.

--- sys/dev/usb/usbdi.c.orig    Sun Oct 16 23:37:47 2005
+++ sys/dev/usb/usbdi.c Tue Oct 18 22:13:43 2005
@@ -1207,8 +1207,10 @@
                return (USBD_STALLED);
        if (dev->langid == USBD_NOLANG) {
                /* Set up default language */
-               err = usbd_get_string_desc(dev, USB_LANGUAGE_TABLE, 0, &us,
-                   &size);
+               //err = usbd_get_string_desc(dev, USB_LANGUAGE_TABLE, 0,
&us,
+               //    &size);
+               err = 1;
+               DPRINTFN(-1,("usbd_get_string: skipping get lang\n"));
                if (err || size < 4) {
                        DPRINTFN(-1,("usbd_get_string: getting lang
failed, usin
g 0\n"));
                        dev->langid = 0; /* Well, just pick something
then */

When attatching the following happens. After the BABBLE/STALLED
everything times
out.
uhci_open: pipe=0xc45f6980, addr=0, endpt=0 (1)
uhci_device_control type=0x00, request=0x05, wValue=0x0002,
wIndex=0x0000 len=0,
 addr=0, endpt=0
uhci_device_control type=0x80, request=0x06, wValue=0x0100,
wIndex=0x0000 len=8,
 addr=2, endpt=0
uhci_device_control type=0x80, request=0x06, wValue=0x0100,
wIndex=0x0000 len=18
, addr=2, endpt=0
uhci_device_control type=0x80, request=0x06, wValue=0x0200,
wIndex=0x0000 len=9,
 addr=2, endpt=0
uhci_device_control type=0x80, request=0x06, wValue=0x0200,
wIndex=0x0000 len=41
, addr=2, endpt=0
uhci_device_control type=0x00, request=0x09, wValue=0x0001,
wIndex=0x0000 len=0
, addr=2, endpt=0
uhci_device_control type=0x81, request=0x06, wValue=0x2200,
wIndex=0x0000 len=74
, addr=2, endpt=0
uhci_device_control type=0x81, request=0x06, wValue=0x2200,
wIndex=0x0000 len=74
, addr=2, endpt=0
uhci_device_control type=0x80, request=0x06, wValue=0x0300,
wIndex=0x0000 len=2,
 addr=2, endpt=0
uhci_idone: error, addr=2, endpt=0x00, status 0x500000<BABBLE,STALLED>
usbd_get_string: getting lang failed, using 0
uhci_device_control type=0x80, request=0x06, wValue=0x0304,
wIndex=0x0000 len=2,
 addr=2, endpt=0
uhci_timeout: uxfer=0xc463e700
uhci_timeout_task: xfer=0xc463e700
uhci_abort_xfer: xfer=0xc463e700, status=15
uhci_abort_xfer: stop ii=0xc463e770
uhci_check_intr: aborted xfer=0xc463e700
uhci_abort_xfer: callback
..
 
pciconv -l -v gives:
hostb0 at pci0:0:0:        class=0x060000 card=0x00001106 chip=0x30991106
rev=0x00
hdr=0x00
    vendor   = 'VIA Technologies Inc'
    device   = 'VT8366/A,VT8367 Apollo KT266/A,KT333 CPU to PCI Bridge'
    class    = bridge
    subclass = HOST-PCI
..
uhci0 at pci0:17:2:        class=0x0c0300 card=0x12340925 chip=0x30381106
rev=0x23
hdr=0x00
    vendor   = 'VIA Technologies Inc'
    device   = 'VT82xxxxx UHCI USB 1.1 Controller (All VIA Chipsets)'
    class    = serial bus
    subclass = USB
uhci1 at pci0:17:3:        class=0x0c0300 card=0x12340925 chip=0x30381106
rev=0x23
hdr=0x00
    vendor   = 'VIA Technologies Inc'
    device   = 'VT82xxxxx UHCI USB 1.1 Controller (All VIA Chipsets)'
    class    = serial bus
    subclass = USB



More information about the freebsd-usb mailing list