Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Jul 2014 16:52:24 +0200
From:      Norbert Koch <nkoch@demig.de>
To:        <freebsd-drivers@freebsd.org>
Subject:   touch controller problem: uep_intr_callback not called
Message-ID:  <53CFCC28.5070302@demig.de>

next in thread | raw e-mail | index | archive | help
Hello.

I have here a USB touch controller which should be handled by the *uep
*driver.

This is what usbconfig shows:

ugen0.2: <USB TouchController eGalax Inc.> at usbus0, cfg=0 md=HOST
spd=FULL (12Mbps) pwr=ON

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0110
  bDeviceClass = 0x0000
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0040
  idVendor = *0x0eef*
  idProduct = *0x0001*
  bcdDevice = *0x0100*
  iManufacturer = *0x0001  *<eGalax Inc.>
  iProduct = *0x0002  *<USB TouchController>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001

First scenario: *ums.ko loaded, uep.ko not loaded*

When I connect the controller driver ums is attached (*/dev/ums0*).
When I touch the screen I see incoming traffic with usbdump.
The messages are not correctly recognized, which is to be expected.

16:40:22.902239 usbus0.2
DONE-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=8,IVAL=3,ERR=0
 frame[0] READ 6 bytes
 0000  01 *80 3A 0A F6 07* -- --  -- -- -- -- -- -- -- -- 
|..:...          |
16:40:22.903240 usbus0.2 SUBM-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=3
 frame[0] READ 64 bytes
16:40:22.908189 usbus0.2
DONE-INTR-EP=00000081,SPD=FULL,NFR=1,SLEN=8,IVAL=3,ERR=0
 frame[0] READ 6 bytes
 0000  01 *81 3A 0A F8 07* -- --  -- -- -- -- -- -- -- -- 
|..:...          |

The byte sequences above seem to correspond to up/down touch events.

Second scenario: *both ums.ko and uep.ko loaded*

When I connect the controller driver uep is attached (*/dev/ums0*).
Whe I now touch the screen I don't see any traffic coming in.

After putting some printfs in uep.c, ums.c and usb_transfer.c I found
that neither *uep_intr_callback*() nor usbpf_xfertap() are being
called.

As uep.c is quite similar to ums.c in probing/attaching
I don't understand why this is so.

Could any usb driver expert give me a hint where to search further?

Thank you.

Norbert Koch



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53CFCC28.5070302>