From f423ccc1a32f8111ddfec9ef7efbccc8b73f3ea5 Mon Sep 17 00:00:00 2001 From: James Hogan Date: Tue, 31 Mar 2015 14:48:10 -0300 Subject: [media] rc: rc-core: Add support for encode_wakeup drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add support in rc-core for drivers which implement the wakeup scancode filter by encoding the scancode using the raw IR encoders. This is by way of rc_dev::encode_wakeup which should be set to true and rc_dev::allowed_wakeup_protocols should be set to the raw IR encoders. We also do not permit the mask to be set as we cannot generate IR which would match that. Signed-off-by: James Hogan Signed-off-by: Antti Seppälä Signed-off-by: Sean Young Cc: David Härdeman Signed-off-by: Mauro Carvalho Chehab --- include/media/rc-core.h | 3 +++ include/media/rc-map.h | 9 +++++++++ 2 files changed, 12 insertions(+) (limited to 'include') diff --git a/include/media/rc-core.h b/include/media/rc-core.h index 62d69b171bb6..cf9fabcee33e 100644 --- a/include/media/rc-core.h +++ b/include/media/rc-core.h @@ -83,6 +83,8 @@ enum rc_filter_type { * @input_dev: the input child device used to communicate events to userspace * @driver_type: specifies if protocol decoding is done in hardware or software * @idle: used to keep track of RX state + * @encode_wakeup: wakeup filtering uses IR encode API, therefore the allowed + * wakeup protocols is the set of all raw encoders * @allowed_protocols: bitmask with the supported RC_BIT_* protocols * @enabled_protocols: bitmask with the enabled RC_BIT_* protocols * @allowed_wakeup_protocols: bitmask with the supported RC_BIT_* wakeup protocols @@ -147,6 +149,7 @@ struct rc_dev { struct input_dev *input_dev; enum rc_driver_type driver_type; bool idle; + bool encode_wakeup; u64 allowed_protocols; u64 enabled_protocols; u64 allowed_wakeup_protocols; diff --git a/include/media/rc-map.h b/include/media/rc-map.h index 40f36b8f762a..df7b032897bb 100644 --- a/include/media/rc-map.h +++ b/include/media/rc-map.h @@ -106,6 +106,15 @@ enum rc_type { RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE | RC_BIT_SHARP | \ RC_BIT_XMP) +#define RC_BIT_ALL_IR_ENCODER \ + (RC_BIT_RC5 | RC_BIT_RC5X_20 | RC_BIT_RC5_SZ | \ + RC_BIT_JVC | \ + RC_BIT_SONY12 | RC_BIT_SONY15 | RC_BIT_SONY20 | \ + RC_BIT_NEC | RC_BIT_NECX | RC_BIT_NEC32 | \ + RC_BIT_SANYO | \ + RC_BIT_RC6_0 | RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | \ + RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE | \ + RC_BIT_SHARP) #define RC_SCANCODE_UNKNOWN(x) (x) #define RC_SCANCODE_OTHER(x) (x) -- cgit v1.2.3