Hello,

the attached patch adds support for the wireless RC supplied with MEDION
(ALDI) PCs and fixes an obvious typo which reverses the function of the
VOL+ and VOL- keys.

The key mapping isn't perfect (this remote has some additional keys) but
I don't know to handle this without possibly breaking the original key
mapping.

Wolfgang
--- ati_remote.c.orig   2004-04-10 15:12:10.887805232 +0200
+++ ati_remote.c        2004-04-10 14:51:13.457963624 +0200
@@ -113,6 +113,7 @@ MODULE_PARM_DESC(debug, "Enable extra de
  
 static struct usb_device_id ati_remote_table[] = {
        { USB_DEVICE(ATI_REMOTE_VENDOR_ID, ATI_REMOTE_PRODUCT_ID) },
+       { USB_DEVICE(ATI_REMOTE_VENDOR_ID, 0x0006) },           /* ATI Wireless Remote 
Receiver */
        {}      /* Terminating entry */
 };
 
@@ -243,8 +244,8 @@ static struct
        {KIND_FILTERED, 0xe7, 0x22, EV_KEY, KEY_DOWN, 1},       /* down */
        {KIND_FILTERED, 0xdf, 0x1a, EV_KEY, KEY_UP, 1},         /* up */
        {KIND_FILTERED, 0xe3, 0x1e, EV_KEY, KEY_ENTER, 1},      /* "OK" */
-       {KIND_FILTERED, 0xce, 0x09, EV_KEY, KEY_VOLUMEDOWN, 1}, /* VOL + */
-       {KIND_FILTERED, 0xcd, 0x08, EV_KEY, KEY_VOLUMEUP, 1},   /* VOL - */
+       {KIND_FILTERED, 0xce, 0x09, EV_KEY, KEY_VOLUMEUP, 1},   /* VOL + */
+       {KIND_FILTERED, 0xcd, 0x08, EV_KEY, KEY_VOLUMEDOWN, 1}, /* VOL - */
        {KIND_FILTERED, 0xcf, 0x0a, EV_KEY, KEY_MUTE, 1},       /* MUTE  */
        {KIND_FILTERED, 0xd1, 0x0c, EV_KEY, KEY_CHANNELUP, 1},  /* CH + */
        {KIND_FILTERED, 0xd0, 0x0b, EV_KEY, KEY_CHANNELDOWN, 1},/* CH - */
@@ -689,12 +690,14 @@ static int ati_remote_probe(struct usb_i
        char path[64];
        char *buf = NULL;
 
+#if 0
+       /* FIXME: must we do this check? */ 
        /* See if the offered device matches what we can accept */
        if ((udev->descriptor.idVendor != ATI_REMOTE_VENDOR_ID) ||
            (udev->descriptor.idProduct != ATI_REMOTE_PRODUCT_ID)) {
                return -ENODEV;
        }
-
+#endif
        /* Allocate and clear an ati_remote struct */
        if (!(ati_remote = kmalloc(sizeof (struct ati_remote), GFP_KERNEL)))
                return -ENOMEM;

Reply via email to