Searched +defs:serio +path:serio +path:. +path:h (Results 1 - 1 of 1) sorted by relevance

/linux-4.1.27/include/linux/
H A Dserio.h19 #include <uapi/linux/serio.h>
21 struct serio { struct
34 int (*write)(struct serio *, unsigned char);
35 int (*open)(struct serio *);
36 void (*close)(struct serio *);
37 int (*start)(struct serio *);
38 void (*stop)(struct serio *);
40 struct serio *parent;
43 unsigned int depth; /* level of nesting in serio hierarchy */
45 struct serio_driver *drv; /* accessed from interrupt, must be protected by serio->lock and serio->sem */
46 struct mutex drv_mutex; /* protects serio->drv so attributes can pin driver */
52 #define to_serio_port(d) container_of(d, struct serio, dev)
60 void (*write_wakeup)(struct serio *);
61 irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
62 int (*connect)(struct serio *, struct serio_driver *drv);
63 int (*reconnect)(struct serio *);
64 void (*disconnect)(struct serio *);
65 void (*cleanup)(struct serio *);
71 int serio_open(struct serio *serio, struct serio_driver *drv);
72 void serio_close(struct serio *serio);
73 void serio_rescan(struct serio *serio);
74 void serio_reconnect(struct serio *serio);
75 irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags);
77 void __serio_register_port(struct serio *serio, struct module *owner);
80 #define serio_register_port(serio) \
81 __serio_register_port(serio, THIS_MODULE)
83 void serio_unregister_port(struct serio *serio);
84 void serio_unregister_child_port(struct serio *serio);
96 * module_serio_driver() - Helper macro for registering a serio driver
99 * Helper macro for serio drivers which do not do anything special in
108 static inline int serio_write(struct serio *serio, unsigned char data) serio_write() argument
110 if (serio->write) serio_write()
111 return serio->write(serio, data); serio_write()
116 static inline void serio_drv_write_wakeup(struct serio *serio) serio_drv_write_wakeup() argument
118 if (serio->drv && serio->drv->write_wakeup) serio_drv_write_wakeup()
119 serio->drv->write_wakeup(serio); serio_drv_write_wakeup()
123 * Use the following functions to manipulate serio's per-port
126 static inline void *serio_get_drvdata(struct serio *serio) serio_get_drvdata() argument
128 return dev_get_drvdata(&serio->dev); serio_get_drvdata()
131 static inline void serio_set_drvdata(struct serio *serio, void *data) serio_set_drvdata() argument
133 dev_set_drvdata(&serio->dev, data); serio_set_drvdata()
140 static inline void serio_pause_rx(struct serio *serio) serio_pause_rx() argument
142 spin_lock_irq(&serio->lock); serio_pause_rx()
145 static inline void serio_continue_rx(struct serio *serio) serio_continue_rx() argument
147 spin_unlock_irq(&serio->lock); serio_continue_rx()

Completed in 145 milliseconds