diff options
author | David Härdeman <david@hardeman.nu> | 2013-03-06 14:52:05 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-23 10:25:54 -0400 |
commit | 9719afae5e589b409e137c36f89073d134f0de33 (patch) | |
tree | 62d24aef194d46c95e607828902cd1c13bd2c0c8 /include/media | |
parent | efa914d7d05e69013054710e6aacaf225b8fc2a2 (diff) |
[media] rc-core: don't treat dev->rc_map.rc_type as a bitmap
store_protocols() treats dev->rc_map.rc_type as a bitmap which is wrong for
two reasons. First of all, it is pretty bogus to change the protocol type of
the keymap just because the hardware has been asked to decode a different
protocol.
Second, dev->rc_map.rc_type is an enum (i.e. a single protocol) as pointed
out by James Hogan <james.hogan@imgtec.com>.
Fix both issues by introducing a separate enabled_protocols member to
struct rc_dev.
Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/rc-core.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/media/rc-core.h b/include/media/rc-core.h index f03445f3c767..06a75deff553 100644 --- a/include/media/rc-core.h +++ b/include/media/rc-core.h | |||
@@ -51,6 +51,7 @@ enum rc_driver_type { | |||
51 | * @driver_type: specifies if protocol decoding is done in hardware or software | 51 | * @driver_type: specifies if protocol decoding is done in hardware or software |
52 | * @idle: used to keep track of RX state | 52 | * @idle: used to keep track of RX state |
53 | * @allowed_protos: bitmask with the supported RC_BIT_* protocols | 53 | * @allowed_protos: bitmask with the supported RC_BIT_* protocols |
54 | * @enabled_protocols: bitmask with the enabled RC_BIT_* protocols | ||
54 | * @scanmask: some hardware decoders are not capable of providing the full | 55 | * @scanmask: some hardware decoders are not capable of providing the full |
55 | * scancode to the application. As this is a hardware limit, we can't do | 56 | * scancode to the application. As this is a hardware limit, we can't do |
56 | * anything with it. Yet, as the same keycode table can be used with other | 57 | * anything with it. Yet, as the same keycode table can be used with other |
@@ -99,6 +100,7 @@ struct rc_dev { | |||
99 | enum rc_driver_type driver_type; | 100 | enum rc_driver_type driver_type; |
100 | bool idle; | 101 | bool idle; |
101 | u64 allowed_protos; | 102 | u64 allowed_protos; |
103 | u64 enabled_protocols; | ||
102 | u32 scanmask; | 104 | u32 scanmask; |
103 | void *priv; | 105 | void *priv; |
104 | spinlock_t keylock; | 106 | spinlock_t keylock; |