diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-04-04 13:06:55 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-05-19 11:56:58 -0400 |
commit | 9dfe4e8339499bfe8e9a362fefc290b4cb9c3803 (patch) | |
tree | a42ab74108d03f8009f01e2fc896df15638dfc06 /include/media/ir-core.h | |
parent | 4f9256b496677adf799342cee7d406dd46e566d9 (diff) |
V4L/DVB: ir-core: Add support for badly-implemented hardware decoders
A few hardware Remote Controller decoders, even using a standard protocol,
aren't able to provide the entire scancode. Due to that, the capability
of using other IR's are limited on those hardware.
Adds a way to indicate to ir-core what are the bits that the hardware
provides, from a scancode, allowing the addition of a complete IR table
to the kernel and allowing a limited support for changing the Remote
Controller on those devices.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media/ir-core.h')
-rw-r--r-- | include/media/ir-core.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/include/media/ir-core.h b/include/media/ir-core.h index 0f64b48ecd90..4397ea3d9754 100644 --- a/include/media/ir-core.h +++ b/include/media/ir-core.h | |||
@@ -33,12 +33,28 @@ enum raw_event_type { | |||
33 | IR_STOP_EVENT = (1 << 3), | 33 | IR_STOP_EVENT = (1 << 3), |
34 | }; | 34 | }; |
35 | 35 | ||
36 | /** | ||
37 | * struct ir_dev_props - Allow caller drivers to set special properties | ||
38 | * @allowed_protos: bitmask with the supported IR_TYPE_* protocols | ||
39 | * @scanmask: some hardware decoders are not capable of providing the full | ||
40 | * scancode to the application. As this is a hardware limit, we can't do | ||
41 | * anything with it. Yet, as the same keycode table can be used with other | ||
42 | * devices, a mask is provided to allow its usage. Drivers should generally | ||
43 | * leave this field in blank | ||
44 | * @priv: driver-specific data, to be used on the callbacks | ||
45 | * @change_protocol: allow changing the protocol used on hardware decoders | ||
46 | * @open: callback to allow drivers to enable polling/irq when IR input device | ||
47 | * is opened. | ||
48 | * @close: callback to allow drivers to disable polling/irq when IR input device | ||
49 | * is opened. | ||
50 | */ | ||
36 | struct ir_dev_props { | 51 | struct ir_dev_props { |
37 | unsigned long allowed_protos; | 52 | unsigned long allowed_protos; |
53 | u32 scanmask; | ||
38 | void *priv; | 54 | void *priv; |
39 | int (*change_protocol)(void *priv, u64 ir_type); | 55 | int (*change_protocol)(void *priv, u64 ir_type); |
40 | int (*open)(void *priv); | 56 | int (*open)(void *priv); |
41 | void (*close)(void *priv); | 57 | void (*close)(void *priv); |
42 | }; | 58 | }; |
43 | 59 | ||
44 | struct ir_raw_event { | 60 | struct ir_raw_event { |