Thread (6 messages) 6 messages, 4 authors, 2007-08-27

Re: USB: driver for CM109 chipset

flat view

From: Shaun Jackman <hidden>
Date: 2007-08-26 16:43:55

The detach-yealink tool worked well; thanks. I generalised it (now
called detach-usb) to take a vendor/product/interface argument on the
command line. The patch is attached.

The EEPROM dumping tool did not work. It failed with
	cm109_eeprom_read: Mode check failed witch HID_IR0=0xc0

I tried commenting out the HID_IR0 test, but it then read only zeros.

Thanks!
Shaun

$ sudo ./dump-eeprom
Found device:
  idVendor=0x0d8c
  idProduct=0x000e
  iSerialNumber=0x00
Found HID interface #3
Successfully claimed interface
Manufacturer: "?"
Product: "Generic USB Audio Device   "
Serial#: "?"
cm109_eeprom_read: Mode check failed witch HID_IR0=0xc0

On 8/26/07, Thomas Reitmayr [off-list ref] wrote:
Hi Shaun,
the CM109 VID and PID are probably not included in the kernel's
blacklisted device list (see static array hid_blacklist in hid-core.c).
Just for your tests you can write a little tool to detach the usbhid
driver and then load the cm109 module manually using modprobe or insmod.
An example for this tool (not using libusb) can be found at
http://www.devbase.at/svn/view.cgi/yealink-tools/trunk/detach-yealink.c?revision=1&root=experimental&view=markup
or inside the EEPROM tool below.
BTW, there is still the issue with varying key mappings among different
models. The EEPROM contents might give a hint for distinguishing the
models, it would be interesting if you could read the EEPROM and tell us
what you see. The tool for this task can be found at
http://www.devbase.at/svn/view.cgi/cm109-tools/trunk/?root=experimental
Regards,
-Thomas

Shaun Jackman wrote:
quoted
I am testing your cm109 driver with my Genius G-Talk USB phone. It
identifies itself as a cm109 device (0d8c:000e C-Media Electronics,
Inc.). I compiled and loaded the cm109 module. However when I plug the
phone in the, the usbhid driver grabs the device rather than the cm109
driver. The following snippet is from /proc/bus/usb/devices and shows
the Class/Subclass/Protocol 3/0/0 device is nabbed by the usbhid
driver. Why isn't the cm109 driver grabbing the device?

Thanks for writing the driver, and I hope I can get it to work!
Shaun

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  7 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0d8c ProdID=000e Rev= 1.00
S:  Product=Generic USB Audio Device
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:* If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 1 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E:  Ad=01(O) Atr=09(Isoc) MxPS= 200 Ivl=1ms
I:* If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 2 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E:  Ad=82(I) Atr=05(Isoc) MxPS= 100 Ivl=1ms
I:* If#= 3 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=83(I) Atr=03(Int.) MxPS=   4 Ivl=32ms

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help