Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=534565f254490227e3bec20d50f387800960acd9
Commit:     534565f254490227e3bec20d50f387800960acd9
Parent:     b9973954c5f3264a2afa6ec357adb542f4b76e06
Author:     Dmitry Torokhov <[EMAIL PROTECTED]>
AuthorDate: Wed Apr 25 00:53:18 2007 -0400
Committer:  Dmitry Torokhov <[EMAIL PROTECTED]>
CommitDate: Wed Apr 25 00:53:18 2007 -0400

    Input: add input_set_capability() helper
    
    Add input_set_capability() helper used to indicate that an input
    device supports a certain event without need to manipulate bitmaps
    directly.
    
    Signed-off-by: Dmitry Torokhov <[EMAIL PROTECTED]>
---
 drivers/input/input.c |   56 +++++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/input.h |    2 +
 2 files changed, 58 insertions(+), 0 deletions(-)

diff --git a/drivers/input/input.c b/drivers/input/input.c
index 173c286..915e9ab 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -1046,6 +1046,62 @@ void input_free_device(struct input_dev *dev)
 }
 EXPORT_SYMBOL(input_free_device);
 
+/**
+ * input_set_capability - mark device as capable of a certain event
+ * @dev: device that is capable of emitting or accepting event
+ * @type: type of the event (EV_KEY, EV_REL, etc...)
+ * @code: event code
+ *
+ * In addition to setting up corresponding bit in appropriate capability
+ * bitmap the function also adjusts dev->evbit.
+ */
+void input_set_capability(struct input_dev *dev, unsigned int type, unsigned 
int code)
+{
+       switch (type) {
+       case EV_KEY:
+               __set_bit(code, dev->keybit);
+               break;
+
+       case EV_REL:
+               __set_bit(code, dev->relbit);
+               break;
+
+       case EV_ABS:
+               __set_bit(code, dev->absbit);
+               break;
+
+       case EV_MSC:
+               __set_bit(code, dev->mscbit);
+               break;
+
+       case EV_SW:
+               __set_bit(code, dev->swbit);
+               break;
+
+       case EV_LED:
+               __set_bit(code, dev->ledbit);
+               break;
+
+       case EV_SND:
+               __set_bit(code, dev->sndbit);
+               break;
+
+       case EV_FF:
+               __set_bit(code, dev->ffbit);
+               break;
+
+       default:
+               printk(KERN_ERR
+                       "input_set_capability: unknown type %u (code %u)\n",
+                       type, code);
+               dump_stack();
+               return;
+       }
+
+       __set_bit(type, dev->evbit);
+}
+EXPORT_SYMBOL(input_set_capability);
+
 int input_register_device(struct input_dev *dev)
 {
        static atomic_t input_no = ATOMIC_INIT(0);
diff --git a/include/linux/input.h b/include/linux/input.h
index 7b6d7c4..1789ee9 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -1160,6 +1160,8 @@ static inline void input_sync(struct input_dev *dev)
        input_event(dev, EV_SYN, SYN_REPORT, 0);
 }
 
+void input_set_capability(struct input_dev *dev, unsigned int type, unsigned 
int code);
+
 static inline void input_set_abs_params(struct input_dev *dev, int axis, int 
min, int max, int fuzz, int flat)
 {
        dev->absmin[axis] = min;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to