diff options
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/ir-kbd-i2c.h | 2 | ||||
-rw-r--r-- | include/media/rc-core.h | 4 | ||||
-rw-r--r-- | include/media/rc-map.h | 64 |
3 files changed, 51 insertions, 19 deletions
diff --git a/include/media/ir-kbd-i2c.h b/include/media/ir-kbd-i2c.h index 768aa77925cd..e221bc74020b 100644 --- a/include/media/ir-kbd-i2c.h +++ b/include/media/ir-kbd-i2c.h | |||
@@ -37,7 +37,7 @@ enum ir_kbd_get_key_fn { | |||
37 | struct IR_i2c_init_data { | 37 | struct IR_i2c_init_data { |
38 | char *ir_codes; | 38 | char *ir_codes; |
39 | const char *name; | 39 | const char *name; |
40 | u64 type; /* RC_TYPE_RC5, etc */ | 40 | u64 type; /* RC_BIT_RC5, etc */ |
41 | u32 polling_interval; /* 0 means DEFAULT_POLLING_INTERVAL */ | 41 | u32 polling_interval; /* 0 means DEFAULT_POLLING_INTERVAL */ |
42 | 42 | ||
43 | /* | 43 | /* |
diff --git a/include/media/rc-core.h b/include/media/rc-core.h index b0c494a69079..f03445f3c767 100644 --- a/include/media/rc-core.h +++ b/include/media/rc-core.h | |||
@@ -50,7 +50,7 @@ enum rc_driver_type { | |||
50 | * @input_dev: the input child device used to communicate events to userspace | 50 | * @input_dev: the input child device used to communicate events to userspace |
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_TYPE_* protocols | 53 | * @allowed_protos: bitmask with the supported RC_BIT_* protocols |
54 | * @scanmask: some hardware decoders are not capable of providing the full | 54 | * @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 | 55 | * 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 | 56 | * anything with it. Yet, as the same keycode table can be used with other |
@@ -113,7 +113,7 @@ struct rc_dev { | |||
113 | u32 max_timeout; | 113 | u32 max_timeout; |
114 | u32 rx_resolution; | 114 | u32 rx_resolution; |
115 | u32 tx_resolution; | 115 | u32 tx_resolution; |
116 | int (*change_protocol)(struct rc_dev *dev, u64 rc_type); | 116 | int (*change_protocol)(struct rc_dev *dev, u64 *rc_type); |
117 | int (*open)(struct rc_dev *dev); | 117 | int (*open)(struct rc_dev *dev); |
118 | void (*close)(struct rc_dev *dev); | 118 | void (*close)(struct rc_dev *dev); |
119 | int (*s_tx_mask)(struct rc_dev *dev, u32 mask); | 119 | int (*s_tx_mask)(struct rc_dev *dev, u32 mask); |
diff --git a/include/media/rc-map.h b/include/media/rc-map.h index cfd5163ff7f3..74f55a3f14eb 100644 --- a/include/media/rc-map.h +++ b/include/media/rc-map.h | |||
@@ -11,22 +11,54 @@ | |||
11 | 11 | ||
12 | #include <linux/input.h> | 12 | #include <linux/input.h> |
13 | 13 | ||
14 | #define RC_TYPE_UNKNOWN 0 | 14 | enum rc_type { |
15 | #define RC_TYPE_RC5 (1 << 0) /* Philips RC5 protocol */ | 15 | RC_TYPE_UNKNOWN = 0, /* Protocol not known */ |
16 | #define RC_TYPE_NEC (1 << 1) | 16 | RC_TYPE_OTHER = 1, /* Protocol known but proprietary */ |
17 | #define RC_TYPE_RC6 (1 << 2) /* Philips RC6 protocol */ | 17 | RC_TYPE_LIRC = 2, /* Pass raw IR to lirc userspace */ |
18 | #define RC_TYPE_JVC (1 << 3) /* JVC protocol */ | 18 | RC_TYPE_RC5 = 3, /* Philips RC5 protocol */ |
19 | #define RC_TYPE_SONY (1 << 4) /* Sony12/15/20 protocol */ | 19 | RC_TYPE_RC5X = 4, /* Philips RC5x protocol */ |
20 | #define RC_TYPE_RC5_SZ (1 << 5) /* RC5 variant used by Streamzap */ | 20 | RC_TYPE_RC5_SZ = 5, /* StreamZap variant of RC5 */ |
21 | #define RC_TYPE_SANYO (1 << 6) /* Sanyo protocol */ | 21 | RC_TYPE_JVC = 6, /* JVC protocol */ |
22 | #define RC_TYPE_MCE_KBD (1 << 29) /* RC6-ish MCE keyboard/mouse */ | 22 | RC_TYPE_SONY12 = 7, /* Sony 12 bit protocol */ |
23 | #define RC_TYPE_LIRC (1 << 30) /* Pass raw IR to lirc userspace */ | 23 | RC_TYPE_SONY15 = 8, /* Sony 15 bit protocol */ |
24 | #define RC_TYPE_OTHER (1u << 31) | 24 | RC_TYPE_SONY20 = 9, /* Sony 20 bit protocol */ |
25 | RC_TYPE_NEC = 10, /* NEC protocol */ | ||
26 | RC_TYPE_SANYO = 11, /* Sanyo protocol */ | ||
27 | RC_TYPE_MCE_KBD = 12, /* RC6-ish MCE keyboard/mouse */ | ||
28 | RC_TYPE_RC6_0 = 13, /* Philips RC6-0-16 protocol */ | ||
29 | RC_TYPE_RC6_6A_20 = 14, /* Philips RC6-6A-20 protocol */ | ||
30 | RC_TYPE_RC6_6A_24 = 15, /* Philips RC6-6A-24 protocol */ | ||
31 | RC_TYPE_RC6_6A_32 = 16, /* Philips RC6-6A-32 protocol */ | ||
32 | RC_TYPE_RC6_MCE = 17, /* MCE (Philips RC6-6A-32 subtype) protocol */ | ||
33 | }; | ||
34 | |||
35 | #define RC_BIT_NONE 0 | ||
36 | #define RC_BIT_UNKNOWN (1 << RC_TYPE_UNKNOWN) | ||
37 | #define RC_BIT_OTHER (1 << RC_TYPE_OTHER) | ||
38 | #define RC_BIT_LIRC (1 << RC_TYPE_LIRC) | ||
39 | #define RC_BIT_RC5 (1 << RC_TYPE_RC5) | ||
40 | #define RC_BIT_RC5X (1 << RC_TYPE_RC5X) | ||
41 | #define RC_BIT_RC5_SZ (1 << RC_TYPE_RC5_SZ) | ||
42 | #define RC_BIT_JVC (1 << RC_TYPE_JVC) | ||
43 | #define RC_BIT_SONY12 (1 << RC_TYPE_SONY12) | ||
44 | #define RC_BIT_SONY15 (1 << RC_TYPE_SONY15) | ||
45 | #define RC_BIT_SONY20 (1 << RC_TYPE_SONY20) | ||
46 | #define RC_BIT_NEC (1 << RC_TYPE_NEC) | ||
47 | #define RC_BIT_SANYO (1 << RC_TYPE_SANYO) | ||
48 | #define RC_BIT_MCE_KBD (1 << RC_TYPE_MCE_KBD) | ||
49 | #define RC_BIT_RC6_0 (1 << RC_TYPE_RC6_0) | ||
50 | #define RC_BIT_RC6_6A_20 (1 << RC_TYPE_RC6_6A_20) | ||
51 | #define RC_BIT_RC6_6A_24 (1 << RC_TYPE_RC6_6A_24) | ||
52 | #define RC_BIT_RC6_6A_32 (1 << RC_TYPE_RC6_6A_32) | ||
53 | #define RC_BIT_RC6_MCE (1 << RC_TYPE_RC6_MCE) | ||
25 | 54 | ||
26 | #define RC_TYPE_ALL (RC_TYPE_RC5 | RC_TYPE_NEC | RC_TYPE_RC6 | \ | 55 | #define RC_BIT_ALL (RC_BIT_UNKNOWN | RC_BIT_OTHER | RC_BIT_LIRC | \ |
27 | RC_TYPE_JVC | RC_TYPE_SONY | RC_TYPE_LIRC | \ | 56 | RC_BIT_RC5 | RC_BIT_RC5X | RC_BIT_RC5_SZ | \ |
28 | RC_TYPE_RC5_SZ | RC_TYPE_SANYO | RC_TYPE_MCE_KBD | \ | 57 | RC_BIT_JVC | \ |
29 | RC_TYPE_OTHER) | 58 | RC_BIT_SONY12 | RC_BIT_SONY15 | RC_BIT_SONY20 | \ |
59 | RC_BIT_NEC | RC_BIT_SANYO | RC_BIT_MCE_KBD | \ | ||
60 | RC_BIT_RC6_0 | RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | \ | ||
61 | RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE) | ||
30 | 62 | ||
31 | struct rc_map_table { | 63 | struct rc_map_table { |
32 | u32 scancode; | 64 | u32 scancode; |
@@ -38,7 +70,7 @@ struct rc_map { | |||
38 | unsigned int size; /* Max number of entries */ | 70 | unsigned int size; /* Max number of entries */ |
39 | unsigned int len; /* Used number of entries */ | 71 | unsigned int len; /* Used number of entries */ |
40 | unsigned int alloc; /* Size of *scan in bytes */ | 72 | unsigned int alloc; /* Size of *scan in bytes */ |
41 | u64 rc_type; | 73 | enum rc_type rc_type; |
42 | const char *name; | 74 | const char *name; |
43 | spinlock_t lock; | 75 | spinlock_t lock; |
44 | }; | 76 | }; |