Thread (94 messages) 94 messages, 6 authors, 2011-02-02

Re: 2.6.36/2.6.37: broken compatibility with userspace input-utils ?

From: Mark Lord <hidden>
Date: 2011-01-25 04:43:41
Also in: lkml

On 11-01-24 11:37 PM, Mark Lord wrote:
On 11-01-24 11:20 PM, Dmitry Torokhov wrote:
quoted
On Mon, Jan 24, 2011 at 11:13:05PM -0500, Mark Lord wrote:
quoted
On 11-01-24 07:55 PM, Dmitry Torokhov wrote:
quoted
No, as far as I know we kept ABI intact.

Okay, I hacked lsinput and input-kbd to ignore the protocol number.
input-kbd is still broken: it thinks my remote control (Hauppauge)
has only ten buttons, and won't allow me to remap codes larger than 10.

I've now hacked around that too, but without determining exactly
where the interface got broken.

Ugh.
Where are the sources? I can take a look...
I used "apt-get source input-utils" under Ubuntu-10.10.
The problem seems to be here somewhere:

static struct kbd_map* kbd_map_read(int fd)
{
        struct kbd_entry entry;
        struct kbd_map *map;
        int rc;

        map = malloc(sizeof(*map));
        memset(map,0,sizeof(*map));
        for (map->size = 0; map->size < 65536; map->size++) {
                entry.scancode = map->size;
                entry.keycode  = KEY_RESERVED;
                rc = ioctl(fd, EVIOCGKEYCODE, &entry);
                if (rc < 0) {
                        break;
...
}

This results in (map->size==10) for 2.6.36+ (wrong),
and a much larger map->size for 2.6.35 and earlier.

So perhaps EVIOCGKEYCODE has changed?
I hacked input-kbd to ignore the map->size calculated above
when writing a new map.. seems to work.  Weird that the old
method stopped working with 2.6.36, though.

I'm using this with ir-kbd-i2c.c as the hardware driver
for the hauppauge R/C interface on a PVR-250 card.

Hey.. perhaps you may also know where in the code this thing
is being forced to a repeat rate of about 4 times/sec max?
I'd like the remote to be slightly faster that this,
but my 2.5.35 (and earlier) hacks to ir-kbd-i2c now don't
work for repeat intervals less than approx 220msecs.

Cheers!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help