Merge branch 'for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
[cascardo/linux.git] / include / media / rc-map.h
index daa75fc..e1cc14c 100644 (file)
 
 #include <linux/input.h>
 
+/**
+ * enum rc_type - type of the Remote Controller protocol
+ *
+ * @RC_TYPE_UNKNOWN: Protocol not known
+ * @RC_TYPE_OTHER: Protocol known but proprietary
+ * @RC_TYPE_RC5: Philips RC5 protocol
+ * @RC_TYPE_RC5X: Philips RC5x protocol
+ * @RC_TYPE_RC5_SZ: StreamZap variant of RC5
+ * @RC_TYPE_JVC: JVC protocol
+ * @RC_TYPE_SONY12: Sony 12 bit protocol
+ * @RC_TYPE_SONY15: Sony 15 bit protocol
+ * @RC_TYPE_SONY20: Sony 20 bit protocol
+ * @RC_TYPE_NEC: NEC protocol
+ * @RC_TYPE_NECX: Extended NEC protocol
+ * @RC_TYPE_NEC32: NEC 32 bit protocol
+ * @RC_TYPE_SANYO: Sanyo protocol
+ * @RC_TYPE_MCE_KBD: RC6-ish MCE keyboard/mouse
+ * @RC_TYPE_RC6_0: Philips RC6-0-16 protocol
+ * @RC_TYPE_RC6_6A_20: Philips RC6-6A-20 protocol
+ * @RC_TYPE_RC6_6A_24: Philips RC6-6A-24 protocol
+ * @RC_TYPE_RC6_6A_32: Philips RC6-6A-32 protocol
+ * @RC_TYPE_RC6_MCE: MCE (Philips RC6-6A-32 subtype) protocol
+ * @RC_TYPE_SHARP: Sharp protocol
+ * @RC_TYPE_XMP: XMP protocol
+ * @RC_TYPE_CEC: CEC protocol
+ */
 enum rc_type {
-       RC_TYPE_UNKNOWN         = 0,    /* Protocol not known */
-       RC_TYPE_OTHER           = 1,    /* Protocol known but proprietary */
-       RC_TYPE_RC5             = 2,    /* Philips RC5 protocol */
-       RC_TYPE_RC5X            = 3,    /* Philips RC5x protocol */
-       RC_TYPE_RC5_SZ          = 4,    /* StreamZap variant of RC5 */
-       RC_TYPE_JVC             = 5,    /* JVC protocol */
-       RC_TYPE_SONY12          = 6,    /* Sony 12 bit protocol */
-       RC_TYPE_SONY15          = 7,    /* Sony 15 bit protocol */
-       RC_TYPE_SONY20          = 8,    /* Sony 20 bit protocol */
-       RC_TYPE_NEC             = 9,    /* NEC protocol */
-       RC_TYPE_SANYO           = 10,   /* Sanyo protocol */
-       RC_TYPE_MCE_KBD         = 11,   /* RC6-ish MCE keyboard/mouse */
-       RC_TYPE_RC6_0           = 12,   /* Philips RC6-0-16 protocol */
-       RC_TYPE_RC6_6A_20       = 13,   /* Philips RC6-6A-20 protocol */
-       RC_TYPE_RC6_6A_24       = 14,   /* Philips RC6-6A-24 protocol */
-       RC_TYPE_RC6_6A_32       = 15,   /* Philips RC6-6A-32 protocol */
-       RC_TYPE_RC6_MCE         = 16,   /* MCE (Philips RC6-6A-32 subtype) protocol */
-       RC_TYPE_SHARP           = 17,   /* Sharp protocol */
-       RC_TYPE_XMP             = 18,   /* XMP protocol */
-       RC_TYPE_CEC             = 19,   /* CEC protocol */
+       RC_TYPE_UNKNOWN         = 0,
+       RC_TYPE_OTHER           = 1,
+       RC_TYPE_RC5             = 2,
+       RC_TYPE_RC5X            = 3,
+       RC_TYPE_RC5_SZ          = 4,
+       RC_TYPE_JVC             = 5,
+       RC_TYPE_SONY12          = 6,
+       RC_TYPE_SONY15          = 7,
+       RC_TYPE_SONY20          = 8,
+       RC_TYPE_NEC             = 9,
+       RC_TYPE_NECX            = 10,
+       RC_TYPE_NEC32           = 11,
+       RC_TYPE_SANYO           = 12,
+       RC_TYPE_MCE_KBD         = 13,
+       RC_TYPE_RC6_0           = 14,
+       RC_TYPE_RC6_6A_20       = 15,
+       RC_TYPE_RC6_6A_24       = 16,
+       RC_TYPE_RC6_6A_32       = 17,
+       RC_TYPE_RC6_MCE         = 18,
+       RC_TYPE_SHARP           = 19,
+       RC_TYPE_XMP             = 20,
+       RC_TYPE_CEC             = 21,
 };
 
 #define RC_BIT_NONE            0ULL
@@ -45,6 +73,8 @@ enum rc_type {
 #define RC_BIT_SONY15          (1ULL << RC_TYPE_SONY15)
 #define RC_BIT_SONY20          (1ULL << RC_TYPE_SONY20)
 #define RC_BIT_NEC             (1ULL << RC_TYPE_NEC)
+#define RC_BIT_NECX            (1ULL << RC_TYPE_NECX)
+#define RC_BIT_NEC32           (1ULL << RC_TYPE_NEC32)
 #define RC_BIT_SANYO           (1ULL << RC_TYPE_SANYO)
 #define RC_BIT_MCE_KBD         (1ULL << RC_TYPE_MCE_KBD)
 #define RC_BIT_RC6_0           (1ULL << RC_TYPE_RC6_0)
@@ -60,8 +90,9 @@ enum rc_type {
                         RC_BIT_RC5 | RC_BIT_RC5X | RC_BIT_RC5_SZ | \
                         RC_BIT_JVC | \
                         RC_BIT_SONY12 | RC_BIT_SONY15 | RC_BIT_SONY20 | \
-                        RC_BIT_NEC | RC_BIT_SANYO | RC_BIT_MCE_KBD | \
-                        RC_BIT_RC6_0 | RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | \
+                        RC_BIT_NEC | RC_BIT_NECX | RC_BIT_NEC32 | \
+                        RC_BIT_SANYO | RC_BIT_MCE_KBD | 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 | \
                         RC_BIT_XMP | RC_BIT_CEC)
 
@@ -76,21 +107,45 @@ enum rc_type {
 #define RC_SCANCODE_RC6_0(sys, cmd)            (((sys) << 8) | (cmd))
 #define RC_SCANCODE_RC6_6A(vendor, sys, cmd)   (((vendor) << 16) | ((sys) << 8) | (cmd))
 
+/**
+ * struct rc_map_table - represents a scancode/keycode pair
+ *
+ * @scancode: scan code (u32)
+ * @keycode: Linux input keycode
+ */
 struct rc_map_table {
        u32     scancode;
        u32     keycode;
 };
 
+/**
+ * struct rc_map - represents a keycode map table
+ *
+ * @scan: pointer to struct &rc_map_table
+ * @size: Max number of entries
+ * @len: Number of entries that are in use
+ * @alloc: size of \*scan, in bytes
+ * @rc_type: type of the remote controller protocol, as defined at
+ *          enum &rc_type
+ * @name: name of the key map table
+ * @lock: lock to protect access to this structure
+ */
 struct rc_map {
        struct rc_map_table     *scan;
-       unsigned int            size;   /* Max number of entries */
-       unsigned int            len;    /* Used number of entries */
-       unsigned int            alloc;  /* Size of *scan in bytes */
+       unsigned int            size;
+       unsigned int            len;
+       unsigned int            alloc;
        enum rc_type            rc_type;
        const char              *name;
        spinlock_t              lock;
 };
 
+/**
+ * struct rc_map_list - list of the registered &rc_map maps
+ *
+ * @list: pointer to struct &list_head
+ * @map: pointer to struct &rc_map
+ */
 struct rc_map_list {
        struct list_head         list;
        struct rc_map map;