Revert "Seperate read and write statistics of in_flight requests"
[safe/jmp/linux-2.6] / include / linux / serio.h
index 3a697cc..a640bc2 100644 (file)
@@ -15,6 +15,7 @@
 
 #ifdef __KERNEL__
 
+#include <linux/types.h>
 #include <linux/interrupt.h>
 #include <linux/list.h>
 #include <linux/spinlock.h>
@@ -28,7 +29,8 @@ struct serio {
        char name[32];
        char phys[32];
 
-       unsigned int manual_bind;
+       bool manual_bind;
+       bool registered;        /* port has been fully registered with driver core */
 
        struct serio_device_id id;
 
@@ -41,12 +43,12 @@ struct serio {
        void (*stop)(struct serio *);
 
        struct serio *parent, *child;
+       unsigned int depth;             /* level of nesting in serio hierarchy */
 
        struct serio_driver *drv;       /* accessed from interrupt, must be protected by serio->lock and serio->sem */
        struct mutex drv_mutex;         /* protects serio->drv so attributes can pin driver */
 
        struct device dev;
-       unsigned int registered;        /* port has been fully registered with driver core */
 
        struct list_head node;
 };
@@ -57,7 +59,7 @@ struct serio_driver {
        char *description;
 
        struct serio_device_id *id_table;
-       unsigned int manual_bind;
+       bool manual_bind;
 
        void (*write_wakeup)(struct serio *);
        irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
@@ -84,18 +86,12 @@ static inline void serio_register_port(struct serio *serio)
 
 void serio_unregister_port(struct serio *serio);
 void serio_unregister_child_port(struct serio *serio);
-void __serio_unregister_port_delayed(struct serio *serio, struct module *owner);
-static inline void serio_unregister_port_delayed(struct serio *serio)
-{
-       __serio_unregister_port_delayed(serio, THIS_MODULE);
-}
 
-void __serio_register_driver(struct serio_driver *drv, struct module *owner);
-static inline void serio_register_driver(struct serio_driver *drv)
+int __serio_register_driver(struct serio_driver *drv, struct module *owner, const char *mod_name);
+static inline int __must_check serio_register_driver(struct serio_driver *drv)
 {
-       __serio_register_driver(drv, THIS_MODULE);
+       return __serio_register_driver(drv, THIS_MODULE, KBUILD_MODNAME);
 }
-
 void serio_unregister_driver(struct serio_driver *drv);
 
 static inline int serio_write(struct serio *serio, unsigned char data)
@@ -112,12 +108,6 @@ static inline void serio_drv_write_wakeup(struct serio *serio)
                serio->drv->write_wakeup(serio);
 }
 
-static inline void serio_cleanup(struct serio *serio)
-{
-       if (serio->drv && serio->drv->cleanup)
-               serio->drv->cleanup(serio);
-}
-
 /*
  * Use the following functions to manipulate serio's per-port
  * driver-specific data.
@@ -185,7 +175,7 @@ static inline void serio_unpin_driver(struct serio *serio)
 #define SERIO_8042_XL  0x06
 
 /*
- * Serio types
+ * Serio protocols
  */
 #define SERIO_UNKNOWN  0x00
 #define SERIO_MSC      0x01
@@ -219,5 +209,11 @@ static inline void serio_unpin_driver(struct serio *serio)
 #define SERIO_PENMOUNT 0x31
 #define SERIO_TOUCHRIGHT       0x32
 #define SERIO_TOUCHWIN 0x33
+#define SERIO_TAOSEVM  0x34
+#define SERIO_FUJITSU  0x35
+#define SERIO_ZHENHUA  0x36
+#define SERIO_INEXIO   0x37
+#define SERIO_TOUCHIT213       0x38
+#define SERIO_W8001    0x39
 
 #endif