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
- detach-usb.diff [text/plain] 3389 bytes · preview
- detach-usb.c [text/x-csrc] 5052 bytes · preview