On 8/26/07, Alfred E. Heggestad <[EMAIL PROTECTED]> wrote:
> I have made a new version of the CM109 driver which updates the
> usb hid-quirks.c blacklist, please find it here:
>
>    http://aeh.db.org/patch/cm109-20070826.patch
>
> (All versions here: http://aeh.db.org/patch/)

In fact, I already tried adding the CM109 to the blacklist. Oddly
enough, the usbhid driver still grabs the CM109 HID device. I must be
doing something wrong...

$ grep -1 CMEDIA drivers/hid/usbhid/hid-quirks.c

#define USB_VENDOR_ID_CMEDIA            0x0d8c
#define USB_DEVICE_ID_CMEDIA_CM109      0x000e

--
        { USB_VENDOR_ID_CIDC, 0x0103, HID_QUIRK_IGNORE },
        { USB_VENDOR_ID_CMEDIA, USB_DEVICE_ID_CMEDIA_CM109, HID_QUIRK_IGNORE },
        { USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_HIDCOM,
HID_QUIRK_IGNORE },
$ make modules
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CC [M]  drivers/hid/usbhid/hid-quirks.o
  LD [M]  drivers/hid/usbhid/usbhid.o
  Building modules, stage 2.
  MODPOST 1648 modules
  LD [M]  drivers/hid/usbhid/usbhid.ko
$ sudo cp drivers/hid/usbhid/usbhid.ko
/lib/modules/2.6.23-rc3/kernel/drivers/hid/usbhid/usbhid.ko

> You can also try to unload the usbhid.ko module (while the USB phone
> is plugged in), and then manually load the cm109.ko driver

That's difficult for me, as both my keyboard and mouse are HID
devices. The detach-usb utility is working for me until I can get the
blacklist working.

> Another outstanding issue with the CM109 driver is that it seems
> like all phone vendors have different key-mappings. That means
> that the keymapping defined in my version of the cm109 driver
> works with the KIP-1000 USB phone. I have got reports from other
> users with other phones, that the keymapping is different. It
> would be very interesting to see which keymapping your phone
> (Genius G-talk) has.

It's one of the guarantees in electronics that if two people are given
an arbitrary binary choice, they will certainly choose opposite each
other. A keyboard matrix, which is well more than a binary choice,
will yield endless different key arrangements. The Genius G-Talk
keymap follows this mail.

> I am not sure how to fix this problem, does anyone on this list
> have any good suggestions?

I haven't been able to dump the EEPROM yet. I'll think on it.

Cheers,
Shaun

/*
 Genius G-Talk keyboard matrix
    0 1 2 3
 4: 0 4 8 Talk
 5: 1 5 9 End
 6: 2 6 # Up
 7: 3 7 * Down
*/

        case 0x11: return KEY_0;
        case 0x21: return KEY_1;
        case 0x41: return KEY_2;
        case 0x81: return KEY_3;
        case 0x12: return KEY_4;
        case 0x22: return KEY_5;
        case 0x42: return KEY_6;
        case 0x82: return KEY_7;
        case 0x14: return KEY_8;
        case 0x24: return KEY_9;
        case 0x44: return KEY_LEFTSHIFT | KEY_3 << 8; /* # */
        case 0x84: return KEY_KPASTERISK;
        case 0x18: return KEY_ENTER; /* Talk (green handset) */
        case 0x28: return KEY_ESC; /* End (red handset) */
        case 0x48: return KEY_UP; /* Menu up (rocker switch) */
        case 0x88: return KEY_DOWN; /* Menu down (rocker switch) */

Reply via email to