Re: Fw: ati-remote strangeness from 2.6.12 onwards

From: mdew
Date: Wed Aug 03 2005 - 05:15:00 EST


Hi Pavel,

Further testing, I initated xmodmap -e "keycode $X = p" (where X was
10->255), so theoritcally, all the buttons on the ati-remote should be
mapped to "p". I found the TV Button, The DVD Button, the CH-/+ and
the OK Button all non-working, every other button produced the "p".
xbindkeys -mk doesnt respond to those particular keys either.

these changes occured after 2.6.11, which have caused it not to
respond correctly

- {KIND_FILTERED, 0xc8, 0x03, EV_KEY, KEY_PROG1, 1}, /* TV */
- {KIND_FILTERED, 0xc9, 0x04, EV_KEY, KEY_PROG2, 1}, /* DVD */
+ {KIND_FILTERED, 0xc8, 0x03, EV_KEY, KEY_TV, 1}, /* TV */
+ {KIND_FILTERED, 0xc9, 0x04, EV_KEY, KEY_DVD, 1}, /* DVD */
- {KIND_FILTERED, 0xe3, 0x1e, EV_KEY, KEY_ENTER, 1}, /* "OK" */
+ {KIND_FILTERED, 0xe3, 0x1e, EV_KEY, KEY_OK, 1}, /* "OK" */

couldnt get the channelup/down to work correctly, even reversing the
orginal patch doesnt help.

- {KIND_FILTERED, 0xd1, 0x0c, EV_KEY, KEY_CHANNELUP, 1}, /* CH + */
- {KIND_FILTERED, 0xd0, 0x0b, EV_KEY, KEY_CHANNELDOWN, 1},/* CH - */
+ {KIND_FILTERED, 0xd0, 0x0b, EV_KEY, KEY_CHANNELUP, 1}, /* CH + */
+ {KIND_FILTERED, 0xd1, 0x0c, EV_KEY, KEY_CHANNELDOWN, 1},/* CH - */

however this one change is fine.

- {KIND_FILTERED, 0xea, 0x25, EV_KEY, KEY_PLAYCD, 1}, /* ( >) */
+ {KIND_FILTERED, 0xea, 0x25, EV_KEY, KEY_PLAY, 1}, /* ( >) */


My orginal patch was incorrect, heres a revised patch, fixes the OK
button and the TV/DVD button issue. Would be nice to get it included
into 2.6.13 ;-)

On 8/3/05, Pavel Machek <pavel@xxxxxxx> wrote:
> Hi!
>
> > I discovered a minor change in 2.6.10-mm1, changing this value back
> > corrects the "ok" button issue.
> >
> >
> > diff -urN linux/drivers/usb/input/ati_remote.c
> > linux-2.6.11/drivers/usb/input/ati_remote.c
> > --- linux/drivers/usb/input/ati_remote.c 2005-08-02
> > 17:56:26.000000000 +1200
> > +++ linux-2.6.11/drivers/usb/input/ati_remote.c 2005-08-02
> > 17:54:34.000000000 +1200
> > @@ -263,7 +263,7 @@
> > {KIND_FILTERED, 0xe4, 0x1f, EV_KEY, KEY_RIGHT, 1}, /* right */
> > {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, 0xe3, 0x1e, EV_KEY, KEY_OK, 1}, /* "OK" */
> > {KIND_FILTERED, 0xce, 0x09, EV_KEY, KEY_VOLUMEDOWN, 1}, /* VOL + */
> > {KIND_FILTERED, 0xcd, 0x08, EV_KEY, KEY_VOLUMEUP, 1}, /* VOL - */
> > {KIND_FILTERED, 0xcf, 0x0a, EV_KEY, KEY_MUTE, 1}, /* MUTE */
>
> I'd say that KEY_ENTER is perhaps more logical there? It is certainly
> more usefull than "OK" key.
> Pavel
>
> --
> teflon -- maybe it is a trademark, but it should not be.
>
diff -ruN linux-2.6.12/drivers/usb/input/ati_remote.c linux-2.6.12-modified/drivers/usb/input/ati_remote.c
--- linux-2.6.12/drivers/usb/input/ati_remote.c 2005-06-18 07:48:29.000000000 +1200
+++ linux-2.6.12-modified/drivers/usb/input/ati_remote.c 2005-08-03 09:54:48.000000000 +1200
@@ -252,8 +252,8 @@
{KIND_FILTERED, 0xdd, 0x18, EV_KEY, KEY_KPENTER, 1}, /* "check" */
{KIND_FILTERED, 0xdb, 0x16, EV_KEY, KEY_MENU, 1}, /* "menu" */
{KIND_FILTERED, 0xc7, 0x02, EV_KEY, KEY_POWER, 1}, /* Power */
- {KIND_FILTERED, 0xc8, 0x03, EV_KEY, KEY_TV, 1}, /* TV */
- {KIND_FILTERED, 0xc9, 0x04, EV_KEY, KEY_DVD, 1}, /* DVD */
+ {KIND_FILTERED, 0xc8, 0x03, EV_KEY, KEY_PROG1, 1}, /* TV */
+ {KIND_FILTERED, 0xc9, 0x04, EV_KEY, KEY_PROG2, 1}, /* DVD */
{KIND_FILTERED, 0xca, 0x05, EV_KEY, KEY_WWW, 1}, /* WEB */
{KIND_FILTERED, 0xcb, 0x06, EV_KEY, KEY_BOOKMARKS, 1}, /* "book" */
{KIND_FILTERED, 0xcc, 0x07, EV_KEY, KEY_EDIT, 1}, /* "hand" */
@@ -263,7 +263,7 @@
{KIND_FILTERED, 0xe4, 0x1f, EV_KEY, KEY_RIGHT, 1}, /* right */
{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_OK, 1}, /* "OK" */
+ {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, 0xcf, 0x0a, EV_KEY, KEY_MUTE, 1}, /* MUTE */