mirror of
https://github.com/torvalds/linux.git
synced 2024-11-19 02:21:47 +00:00
[media] dib0700: Fix IR keycode handling
Fixes Fedora 14 bug: https://bugzilla.redhat.com/show_bug.cgi?id=667157 There are a few bugs at the code that generates the scancode at dib0700: - RC keycode is wrong (it outputs a 24 bits keycode); - NEC extended outputs a keycode that have endiannes issues; - keycode tables for NEC extended remotes need to be updated. The last issue need to be done as we get reports, as we don't have the complete NEC-extended keycodes at the dibcom table. This patch fixes the first two issues. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
312d63e4b0
commit
59aa346009
@ -514,8 +514,8 @@ struct dib0700_rc_response {
|
||||
union {
|
||||
u16 system16;
|
||||
struct {
|
||||
u8 system;
|
||||
u8 not_system;
|
||||
u8 system;
|
||||
};
|
||||
};
|
||||
u8 data;
|
||||
@ -575,7 +575,7 @@ static void dib0700_rc_urb_completion(struct urb *purb)
|
||||
if ((poll_reply->system ^ poll_reply->not_system) != 0xff) {
|
||||
deb_data("NEC extended protocol\n");
|
||||
/* NEC extended code - 24 bits */
|
||||
keycode = poll_reply->system16 << 8 | poll_reply->data;
|
||||
keycode = be16_to_cpu(poll_reply->system16) << 8 | poll_reply->data;
|
||||
} else {
|
||||
deb_data("NEC normal protocol\n");
|
||||
/* normal NEC code - 16 bits */
|
||||
@ -587,7 +587,7 @@ static void dib0700_rc_urb_completion(struct urb *purb)
|
||||
deb_data("RC5 protocol\n");
|
||||
/* RC5 Protocol */
|
||||
toggle = poll_reply->report_id;
|
||||
keycode = poll_reply->system16 << 8 | poll_reply->data;
|
||||
keycode = poll_reply->system << 8 | poll_reply->data;
|
||||
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user