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 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: > > 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 > > > > > > > >