From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Alexandre Lissy <lissyx+mozfr@lissyx.dyndns.org>
Cc: Alexey Klimov <klimov.linux@gmail.com>,
Alexandre LISSY <alexandrelissy@free.fr>,
linux-media@vger.kernel.org, Jarod Wilson <jarod@wilsonet.com>
Subject: Re: iMon Knob driver issue
Date: Tue, 1 Jan 2013 11:12:42 -0200 [thread overview]
Message-ID: <20130101111242.051a352e@redhat.com> (raw)
In-Reply-To: <50DEE9C5.7020407@lissyx.dyndns.org>
Em Sat, 29 Dec 2012 14:01:57 +0100
Alexandre Lissy <lissyx+mozfr@lissyx.dyndns.org> escreveu:
> From cca7718a9902a4d5cffbf158b5853980a08ef930 Mon Sep 17 00:00:00 2001
> From: Alexandre Lissy <alexandrelissy@free.fr>
> Date: Sun, 2 Sep 2012 20:35:20 +0200
> Subject: [PATCH] fix: iMon Knob event interpretation issues
>
> Events for the iMon Knob pad where not correctly interpreted, resulting
> in buggy mouse movements (cursor going straight out of the screen), key
> pad only generating KEY_RIGHT and KEY_DOWN events. A reproducer is:
>
> int main(int argc, char ** argv)
> {
> char rel_x = 0x00; printf("rel_x:%d @%s:%d\n", rel_x, __FILE__, __LINE__);
> rel_x = 0x0f; printf("rel_x:%d @%s:%d\n", rel_x, __FILE__, __LINE__);
> rel_x |= ~0x0f; printf("rel_x:%d @%s:%d\n", rel_x, __FILE__, __LINE__);
>
> return 0;
> }
>
> (running on x86 or amd64)
> $ ./test
> rel_x:0 @test.c:6
> rel_x:15 @test.c:7
> rel_x:-1 @test.c:8
>
> (running on armv6)
> rel_x:0 @test.c:6
> rel_x:15 @test.c:7
> rel_x:255 @test.c:8
>
> Forcing the rel_x and rel_y variables as signed char fixes the issue.
>
> Signed-off-by: Alexandre Lissy <alexandrelissy@free.fr>
> ---
> drivers/media/rc/imon.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c
> index 5dd0386..9d30ca9 100644
> --- a/drivers/media/rc/imon.c
> +++ b/drivers/media/rc/imon.c
> @@ -1225,7 +1225,7 @@ static u32 imon_panel_key_lookup(u64 code)
> static bool imon_mouse_event(struct imon_context *ictx,
> unsigned char *buf, int len)
> {
> - char rel_x = 0x00, rel_y = 0x00;
> + signed char rel_x = 0x00, rel_y = 0x00;
(c/c Jarod, as he is the maintainer of this driver)
That looks weird, as, AFAIKT "char" is signed. Are you sure that this fix
is correct?
If so, maybe this could be a gcc-version-specific bug. What gcc version are
you using?
Btw, we generally use "s8" type for signed 8bit integers inside the Kernel.
> u8 right_shift = 1;
> bool mouse_input = true;
> int dir = 0;
> @@ -1301,7 +1301,7 @@ static void imon_touch_event(struct imon_context *ictx, unsigned char *buf)
> static void imon_pad_to_keys(struct imon_context *ictx, unsigned char *buf)
> {
> int dir = 0;
> - char rel_x = 0x00, rel_y = 0x00;
> + signed char rel_x = 0x00, rel_y = 0x00;
> u16 timeout, threshold;
> u32 scancode = KEY_RESERVED;
> unsigned long flags;
--
Cheers,
Mauro
next prev parent reply other threads:[~2013-01-01 13:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <5081109E.7060809@free.fr>
2012-12-29 12:08 ` iMon Knob driver issue Alexandre LISSY
2012-12-29 12:31 ` Alexey Klimov
2012-12-29 13:01 ` Alexandre Lissy
2013-01-01 13:12 ` Mauro Carvalho Chehab [this message]
2013-01-01 14:01 ` Alexandre LISSY
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=20130101111242.051a352e@redhat.com \
--to=mchehab@redhat.com \
--cc=alexandrelissy@free.fr \
--cc=jarod@wilsonet.com \
--cc=klimov.linux@gmail.com \
--cc=linux-media@vger.kernel.org \
--cc=lissyx+mozfr@lissyx.dyndns.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