From: Mark Lord <kernel@teksavvy.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Linux Kernel <linux-kernel@vger.kernel.org>,
linux-input@vger.kernel.org, linux-media@vger.kernel.org
Subject: Re: 2.6.36/2.6.37: broken compatibility with userspace input-utils ?
Date: Wed, 26 Jan 2011 10:05:57 -0500 [thread overview]
Message-ID: <4D403855.4050706@teksavvy.com> (raw)
In-Reply-To: <20110126020003.GA23085@core.coreip.homeip.net>
On 11-01-25 09:00 PM, Dmitry Torokhov wrote:
> On Tue, Jan 25, 2011 at 03:29:14PM -0800, Dmitry Torokhov wrote:
>> On Tue, Jan 25, 2011 at 05:22:09PM -0500, Mark Lord wrote:
>>> On 11-01-25 05:00 PM, Mauro Carvalho Chehab wrote:
>>>> Em 25-01-2011 18:54, Dmitry Torokhov escreveu:
..
>>>>> That has been done as well; we have 2 new ioctls and kept 2 old ioctls.
>>>
>>> That's the problem: you did NOT keep the two old ioctls().
>>> Those got changed too.. so now we have four NEW ioctls(),
>>> none of which backward compatible with userspace.
>>>
>>
>> Please calm down. This, in fact, is not new vs old ioctl problem but
>> rather particular driver (or rather set of drivers) implementation
>> issue. Even if we drop the new ioctls and convert the RC code to use the
>> old ones you'd be observing the same breakage as RC code responds with
>> -EINVAL to not-yet-established mappings.
>>
>> I'll see what can be done for these drivers; I guess we could supply a
>> fake KEY_RESERVED entry for not mapped scancodes if there are mapped
>> scancodes "above" current one. That should result in the same behavior
>> for RCs as before.
>>
>
> I wonder if the patch below is all that is needed...
Nope. Does not work here:
$ lsinput
protocol version mismatch (expected 65536, got 65537)
>Input: ir-keymap - return KEY_RESERVED for unknown mappings
>
>Do not respond with -EINVAL to EVIOCGKEYCODE for not-yet-mapped scancodes,
>but rather return KEY_RESERVED.
>
>This fixes breakage with Ubuntu's input-kbd utility that stopped returning
>full keymaps for remote controls.
>
>Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
>---
>
> drivers/media/IR/ir-keytable.c | 28 +++++++++++++++++-----------
> 1 files changed, 17 insertions(+), 11 deletions(-)
>
>
>diff --git a/drivers/media/IR/ir-keytable.c b/drivers/media/IR/ir-keytable.c
>index f60107c..c4645d7 100644
>--- a/drivers/media/IR/ir-keytable.c
>+++ b/drivers/media/IR/ir-keytable.c
>@@ -374,21 +374,27 @@ static int ir_getkeycode(struct input_dev *dev,
> index = ir_lookup_by_scancode(rc_tab, scancode);
> }
>
>- if (index >= rc_tab->len) {
>- if (!(ke->flags & INPUT_KEYMAP_BY_INDEX))
>- IR_dprintk(1, "unknown key for scancode 0x%04x\n",
>- scancode);
>+ if (index < rc_tab->len) {
>+ entry = &rc_tab->scan[index];
>+
>+ ke->index = index;
>+ ke->keycode = entry->keycode;
>+ ke->len = sizeof(entry->scancode);
>+ memcpy(ke->scancode, &entry->scancode, sizeof(entry->scancode));
>+
>+ } else if (!(ke->flags & INPUT_KEYMAP_BY_INDEX)) {
>+ /*
>+ * We do not really know the valid range of scancodes
>+ * so let's respond with KEY_RESERVED to anything we
>+ * do not have mapping for [yet].
>+ */
>+ ke->index = index;
>+ ke->keycode = KEY_RESERVED;
>+ } else {
> retval = -EINVAL;
> goto out;
> }
>
>- entry = &rc_tab->scan[index];
>-
>- ke->index = index;
>- ke->keycode = entry->keycode;
>- ke->len = sizeof(entry->scancode);
>- memcpy(ke->scancode, &entry->scancode, sizeof(entry->scancode));
>-
> retval = 0;
>
> out:
next prev parent reply other threads:[~2011-01-26 15:05 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4D3C5F73.2050408@teksavvy.com>
[not found] ` <20110124175456.GA17855@core.coreip.homeip.net>
[not found] ` <4D3E1A08.5060303@teksavvy.com>
[not found] ` <20110125005555.GA18338@core.coreip.homeip.net>
[not found] ` <4D3E4DD1.60705@teksavvy.com>
[not found] ` <20110125042016.GA7850@core.coreip.homeip.net>
[not found] ` <4D3E5372.9010305@teksavvy.com>
[not found] ` <20110125045559.GB7850@core.coreip.homeip.net>
[not found] ` <4D3E59CA.6070107@teksavvy.com>
[not found] ` <4D3E5A91.30207@teksavvy.com>
2011-01-25 5:31 ` 2.6.36/2.6.37: broken compatibility with userspace input-utils ? Dmitry Torokhov
2011-01-25 6:52 ` Dmitry Torokhov
2011-01-25 14:42 ` Extending rc-core/userspace to handle bigger scancodes - Was: " Mauro Carvalho Chehab
2011-01-25 16:55 ` Dmitry Torokhov
2011-01-26 9:44 ` Mauro Carvalho Chehab
2011-01-25 11:42 ` Mauro Carvalho Chehab
2011-01-25 14:32 ` Mark Lord
2011-01-25 16:48 ` Dmitry Torokhov
2011-01-25 20:09 ` Linus Torvalds
2011-01-25 20:54 ` Dmitry Torokhov
2011-01-25 21:01 ` Dmitry Torokhov
2011-01-25 21:20 ` Linus Torvalds
2011-01-25 21:50 ` Dmitry Torokhov
2011-01-25 22:00 ` Mauro Carvalho Chehab
2011-01-25 22:22 ` Mark Lord
2011-01-25 23:29 ` Dmitry Torokhov
2011-01-26 2:00 ` Dmitry Torokhov
2011-01-26 11:26 ` Mauro Carvalho Chehab
2011-01-26 13:08 ` Gerd Hoffmann
2011-01-26 14:18 ` Mauro Carvalho Chehab
2011-01-26 14:52 ` Gerd Hoffmann
2011-01-26 16:46 ` Dmitry Torokhov
2011-01-26 16:51 ` Dmitry Torokhov
2011-01-26 17:29 ` Mauro Carvalho Chehab
2011-01-26 18:24 ` Dmitry Torokhov
2011-01-26 19:16 ` Gerd Hoffmann
2011-01-26 19:28 ` Mark Lord
2011-01-26 20:09 ` Gerd Hoffmann
2011-01-26 19:28 ` Mauro Carvalho Chehab
2011-01-26 19:32 ` Dmitry Torokhov
2011-01-26 20:07 ` Gerd Hoffmann
2011-01-26 19:27 ` Mark Lord
2011-01-26 14:58 ` Mark Lord
2011-01-26 17:41 ` Mauro Carvalho Chehab
2011-01-26 17:59 ` Dmitry Torokhov
2011-01-26 19:30 ` Mark Lord
2011-01-26 15:05 ` Mark Lord [this message]
2011-01-26 16:44 ` Dmitry Torokhov
2011-01-26 19:31 ` Mark Lord
2011-01-26 19:38 ` Dmitry Torokhov
2011-01-26 17:32 ` Mauro Carvalho Chehab
2011-01-26 19:33 ` Mark Lord
2011-01-26 19:41 ` Dmitry Torokhov
2011-01-26 19:47 ` Mark Lord
2011-01-26 19:50 ` Dmitry Torokhov
2011-01-26 21:41 ` Mark Lord
2011-01-26 21:49 ` Mark Lord
2011-01-26 22:07 ` Dmitry Torokhov
2011-01-26 22:04 ` Dmitry Torokhov
2011-01-27 1:01 ` Mark Lord
2011-01-27 1:07 ` Mark Lord
2011-01-27 2:12 ` Dmitry Torokhov
2011-01-27 3:18 ` Mark Lord
2011-01-27 6:38 ` Dmitry Torokhov
2011-01-27 10:30 ` Mauro Carvalho Chehab
2011-01-27 15:00 ` Mark Lord
2011-01-27 17:21 ` Dmitry Torokhov
2011-01-27 18:58 ` Mauro Carvalho Chehab
2011-01-28 9:39 ` Dmitry Torokhov
2011-01-28 11:55 ` Mauro Carvalho Chehab
2011-01-28 16:40 ` Dmitry Torokhov
2011-01-28 17:01 ` Mauro Carvalho Chehab
2011-01-28 17:33 ` Dmitry Torokhov
2011-01-28 18:15 ` Mauro Carvalho Chehab
2011-01-28 18:34 ` Dmitry Torokhov
2011-01-28 20:53 ` Mark Lord
2011-01-27 14:54 ` Mark Lord
2011-01-27 16:39 ` Dmitry Torokhov
2011-01-27 18:12 ` Mark Lord
2011-01-27 19:53 ` Dmitry Torokhov
2011-01-28 16:42 ` Dmitry Torokhov
2011-01-28 20:55 ` Mark Lord
2011-01-28 21:03 ` Mark Lord
2011-01-28 21:09 ` Dmitry Torokhov
2011-01-25 22:25 ` Linus Torvalds
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D403855.4050706@teksavvy.com \
--to=kernel@teksavvy.com \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@redhat.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox