aboutsummaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorDavid Härdeman <david@hardeman.nu>2013-03-06 14:52:05 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-03-23 10:25:54 -0400
commit9719afae5e589b409e137c36f89073d134f0de33 (patch)
tree62d24aef194d46c95e607828902cd1c13bd2c0c8 /include/media
parentefa914d7d05e69013054710e6aacaf225b8fc2a2 (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.h2
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;