/linux/drivers/input/serio/ |
H A D | serio.c | 3 * The Serio abstraction module 14 #include <linux/serio.h> 22 MODULE_DESCRIPTION("Serio abstraction core"); 26 * serio_mutex protects entire serio subsystem and is taken every time 27 * serio port or driver registered or unregistered. 33 static void serio_add_port(struct serio *serio); 34 static int serio_reconnect_port(struct serio *serio); 35 static void serio_disconnect_port(struct serio *serio); 36 static void serio_reconnect_subtree(struct serio *serio); 39 static int serio_connect_driver(struct serio *serio, struct serio_driver *drv) in serio_connect_driver() argument [all …]
|
H A D | ps2mult.c | 12 #include <linux/serio.h> 26 struct serio *serio; member 36 struct serio *mx_serio; 62 MODULE_DEVICE_TABLE(serio, ps2mult_serio_ids); 66 struct serio *mx_serio = psm->mx_serio; in ps2mult_select_port() 73 static int ps2mult_serio_write(struct serio *serio, unsigned char data) in ps2mult_serio_write() argument 75 struct serio *mx_port = serio->parent; in ps2mult_serio_write() 77 struct ps2mult_port *port = serio->port_data; in ps2mult_serio_write() 87 dev_dbg(&serio->dev, in ps2mult_serio_write() 98 static int ps2mult_serio_start(struct serio *serio) in ps2mult_serio_start() argument [all …]
|
H A D | ams_delta_serio.c | 24 #include <linux/serio.h> 28 #define DRIVER_NAME "ams-delta-serio" 35 struct serio *serio; member 40 static int check_data(struct serio *serio, int data) in check_data() argument 46 dev_warn(&serio->dev, "invalid stop bit, data=0x%X\n", data); in check_data() 56 dev_warn(&serio->dev, in check_data() 75 * and then pass it on the serio in ams_delta_serio_interrupt() 85 dfl = check_data(priv->serio, data); in ams_delta_serio_interrupt() 87 serio_interrupt(priv->serio, scancode, dfl); in ams_delta_serio_interrupt() 92 static int ams_delta_serio_open(struct serio *serio) in ams_delta_serio_open() argument [all …]
|
H A D | rpckbd.c | 13 #include <linux/serio.h> 32 static int rpckbd_write(struct serio *port, unsigned char val) in rpckbd_write() 44 struct serio *port = dev_id; in rpckbd_rx() 62 static int rpckbd_open(struct serio *port) in rpckbd_open() 85 static void rpckbd_close(struct serio *port) in rpckbd_close() 94 * Allocate and initialize serio structure for subsequent registration 95 * with serio core. 100 struct serio *serio; in rpckbd_probe() local 111 serio = kzalloc(sizeof(*serio), GFP_KERNEL); in rpckbd_probe() 113 if (!serio || !rpckbd) { in rpckbd_probe() [all …]
|
H A D | serport.c | 18 #include <linux/serio.h> 34 struct serio *serio; member 41 * Callback functions from the serio code. 44 static int serport_serio_write(struct serio *serio, unsigned char data) in serport_serio_write() argument 46 struct serport *serport = serio->port_data; in serport_serio_write() 50 static int serport_serio_open(struct serio *serio) in serport_serio_open() argument 52 struct serport *serport = serio->port_data; in serport_serio_open() 61 static void serport_serio_close(struct serio *serio) in serport_serio_close() argument 63 struct serport *serport = serio->port_data; in serport_serio_close() 71 * discipline on a tty. It prepares the serio struct. [all …]
|
H A D | i8042.c | 17 #include <linux/serio.h> 158 struct serio *serio; member 183 struct serio *serio); 198 struct serio *serio)) in i8042_install_filter() argument 211 struct serio *port)) in i8042_remove_filter() 343 static int i8042_kbd_write(struct serio *port, unsigned char c) in i8042_kbd_write() 363 static int i8042_aux_write(struct serio *serio, unsigned char c) in i8042_aux_write() argument 365 struct i8042_port *port = serio->port_data; in i8042_aux_write() 378 static void i8042_port_close(struct serio *serio) in i8042_port_close() argument 384 if (serio == i8042_ports[I8042_AUX_PORT_NO].serio) { in i8042_port_close() [all …]
|
H A D | serio_raw.c | 3 * Raw serio device providing access to a raw byte stream from underlying 4 * serio port. Closely emulates behavior of pre-2.6 /dev/psaux device 14 #include <linux/serio.h> 21 #define DRIVER_DESC "Raw serio driver" 34 struct serio *serio; member 96 scoped_guard(serio_pause_rx, serio_raw->serio) in serio_raw_open() 110 put_device(&serio_raw->serio->dev); in serio_raw_free() 119 scoped_guard(serio_pause_rx, serio_raw->serio) in serio_raw_release() 131 guard(serio_pause_rx)(serio_raw->serio); in serio_raw_fetch_byte() 202 if (serio_write(serio_raw->serio, c)) { in serio_raw_write() [all …]
|
H A D | sun4i-ps2.c | 10 #include <linux/serio.h> 81 struct serio *serio; member 131 serio_interrupt(drvdata->serio, byte, rxflags); in sun4i_ps2_interrupt() 140 static int sun4i_ps2_open(struct serio *serio) in sun4i_ps2_open() argument 142 struct sun4i_ps2data *drvdata = serio->port_data; in sun4i_ps2_open() 177 static void sun4i_ps2_close(struct serio *serio) in sun4i_ps2_close() argument 179 struct sun4i_ps2data *drvdata = serio->port_data; in sun4i_ps2_close() 189 static int sun4i_ps2_write(struct serio *serio, unsigned char val) in sun4i_ps2_write() argument 192 struct sun4i_ps2data *drvdata = serio->port_data; in sun4i_ps2_write() 208 struct serio *serio; in sun4i_ps2_probe() local [all …]
|
/linux/include/linux/ |
H A D | serio.h | 17 #include <uapi/linux/serio.h> 21 struct serio { struct 35 int (*write)(struct serio *, unsigned char); argument 36 int (*open)(struct serio *); argument 37 void (*close)(struct serio *); argument 38 int (*start)(struct serio *); argument 39 void (*stop)(struct serio *); argument 41 struct serio *parent; argument 45 /* Level of nesting in serio hierarchy */ argument 49 * serio->drv is accessed from interrupt handlers; when modifying argument [all …]
|
/linux/drivers/input/rmi4/ |
H A D | rmi_f03.c | 9 #include <linux/serio.h> 31 struct serio *serio; member 62 struct serio *serio = f03->serio; in rmi_f03_commit_buttons() local 64 guard(serio_pause_rx)(serio); in rmi_f03_commit_buttons() 66 if (serio->drv) { in rmi_f03_commit_buttons() 67 serio->drv->interrupt(serio, PSMOUSE_OOB_EXTRA_BTNS, in rmi_f03_commit_buttons() 69 serio->drv->interrupt(serio, f03->overwrite_buttons, in rmi_f03_commit_buttons() 74 static int rmi_f03_pt_write(struct serio *id, unsigned char val) in rmi_f03_pt_write() 139 static int rmi_f03_pt_open(struct serio *serio) in rmi_f03_pt_open() argument 141 struct f03_data *f03 = serio->port_data; in rmi_f03_pt_open() [all …]
|
/linux/drivers/input/touchscreen/ |
H A D | gunze.c | 15 #include <linux/serio.h> 35 struct serio *serio; member 57 static irqreturn_t gunze_interrupt(struct serio *serio, in gunze_interrupt() argument 60 struct gunze *gunze = serio_get_drvdata(serio); in gunze_interrupt() 76 static void gunze_disconnect(struct serio *serio) in gunze_disconnect() argument 78 struct gunze *gunze = serio_get_drvdata(serio); in gunze_disconnect() 82 serio_close(serio); in gunze_disconnect() 83 serio_set_drvdata(serio, NULL); in gunze_disconnect() 90 * new serio device that supports Gunze protocol and registers it as 94 static int gunze_connect(struct serio *serio, struct serio_driver *drv) in gunze_connect() argument [all …]
|
H A D | egalax_ts_serial.c | 18 #include <linux/serio.h> 42 struct serio *serio; member 68 static irqreturn_t egalax_interrupt(struct serio *serio, in egalax_interrupt() argument 71 struct egalax *egalax = serio_get_drvdata(serio); in egalax_interrupt() 83 dev_dbg(&serio->dev, "unknown/unsynchronized data: %x\n", in egalax_interrupt() 93 * new serio device that supports egalax protocol and registers it as 96 static int egalax_connect(struct serio *serio, struct serio_driver *drv) in egalax_connect() argument 109 egalax->serio = serio; in egalax_connect() 112 "%s/input0", serio->phys); in egalax_connect() 120 input_dev->dev.parent = &serio->dev; in egalax_connect() [all …]
|
H A D | dynapro.c | 21 #include <linux/serio.h> 52 struct serio *serio; member 73 static irqreturn_t dynapro_interrupt(struct serio *serio, in dynapro_interrupt() argument 76 struct dynapro *pdynapro = serio_get_drvdata(serio); in dynapro_interrupt() 83 dev_dbg(&serio->dev, "unknown/unsynchronized data: %x\n", in dynapro_interrupt() 89 static void dynapro_disconnect(struct serio *serio) in dynapro_disconnect() argument 91 struct dynapro *pdynapro = serio_get_drvdata(serio); in dynapro_disconnect() 95 serio_close(serio); in dynapro_disconnect() 96 serio_set_drvdata(serio, NULL); in dynapro_disconnect() 103 * new serio device that supports dynapro protocol and registers it as [all …]
|
H A D | tsc40.c | 13 #include <linux/serio.h> 18 struct serio *serio; member 41 static irqreturn_t tsc_interrupt(struct serio *serio, in tsc_interrupt() argument 44 struct tsc_ser *ptsc = serio_get_drvdata(serio); in tsc_interrupt() 51 dev_dbg(&serio->dev, in tsc_interrupt() 64 dev_dbg(&serio->dev, in tsc_interrupt() 80 static int tsc_connect(struct serio *serio, struct serio_driver *drv) in tsc_connect() argument 93 ptsc->serio = serio; in tsc_connect() 95 snprintf(ptsc->phys, sizeof(ptsc->phys), "%s/input0", serio->phys); in tsc_connect() 103 input_dev->dev.parent = &serio->dev; in tsc_connect() [all …]
|
H A D | touchright.c | 18 #include <linux/serio.h> 47 struct serio *serio; member 53 static irqreturn_t tr_interrupt(struct serio *serio, in tr_interrupt() argument 56 struct tr *tr = serio_get_drvdata(serio); in tr_interrupt() 81 static void tr_disconnect(struct serio *serio) in tr_disconnect() argument 83 struct tr *tr = serio_get_drvdata(serio); in tr_disconnect() 87 serio_close(serio); in tr_disconnect() 88 serio_set_drvdata(serio, NULL); in tr_disconnect() 95 * new serio device that supports the Touchright protocol and registers it as 99 static int tr_connect(struct serio *serio, struct serio_driver *drv) in tr_connect() argument [all …]
|
H A D | hampshire.c | 20 #include <linux/serio.h> 51 struct serio *serio; member 72 static irqreturn_t hampshire_interrupt(struct serio *serio, in hampshire_interrupt() argument 75 struct hampshire *phampshire = serio_get_drvdata(serio); in hampshire_interrupt() 82 dev_dbg(&serio->dev, "unknown/unsynchronized data: %x\n", in hampshire_interrupt() 88 static void hampshire_disconnect(struct serio *serio) in hampshire_disconnect() argument 90 struct hampshire *phampshire = serio_get_drvdata(serio); in hampshire_disconnect() 94 serio_close(serio); in hampshire_disconnect() 95 serio_set_drvdata(serio, NULL); in hampshire_disconnect() 102 * new serio device that supports hampshire protocol and registers it as [all …]
|
H A D | touchwin.c | 25 #include <linux/serio.h> 50 struct serio *serio; member 57 static irqreturn_t tw_interrupt(struct serio *serio, in tw_interrupt() argument 60 struct tw *tw = serio_get_drvdata(serio); in tw_interrupt() 88 static void tw_disconnect(struct serio *serio) in tw_disconnect() argument 90 struct tw *tw = serio_get_drvdata(serio); in tw_disconnect() 94 serio_close(serio); in tw_disconnect() 95 serio_set_drvdata(serio, NULL); in tw_disconnect() 102 * new serio device that supports the Touchwin protocol and registers it as 106 static int tw_connect(struct serio *serio, struct serio_driver *drv) in tw_connect() argument [all …]
|
H A D | inexio.c | 20 #include <linux/serio.h> 54 struct serio *serio; member 74 static irqreturn_t inexio_interrupt(struct serio *serio, in inexio_interrupt() argument 77 struct inexio *pinexio = serio_get_drvdata(serio); in inexio_interrupt() 93 static void inexio_disconnect(struct serio *serio) in inexio_disconnect() argument 95 struct inexio *pinexio = serio_get_drvdata(serio); in inexio_disconnect() 99 serio_close(serio); in inexio_disconnect() 100 serio_set_drvdata(serio, NULL); in inexio_disconnect() 107 * new serio device that supports iNexio protocol and registers it as 111 static int inexio_connect(struct serio *serio, struct serio_driver *drv) in inexio_connect() argument [all …]
|
H A D | fujitsu_ts.c | 14 #include <linux/serio.h> 29 struct serio *serio; member 43 static irqreturn_t fujitsu_interrupt(struct serio *serio, in fujitsu_interrupt() argument 46 struct fujitsu *fujitsu = serio_get_drvdata(serio); in fujitsu_interrupt() 79 static void fujitsu_disconnect(struct serio *serio) in fujitsu_disconnect() argument 81 struct fujitsu *fujitsu = serio_get_drvdata(serio); in fujitsu_disconnect() 85 serio_close(serio); in fujitsu_disconnect() 86 serio_set_drvdata(serio, NULL); in fujitsu_disconnect() 93 * new serio device that supports the Fujitsu protocol and registers it 96 static int fujitsu_connect(struct serio *serio, struct serio_driver *drv) in fujitsu_connect() argument [all …]
|
H A D | mtouch.c | 19 #include <linux/serio.h> 55 struct serio *serio; member 86 static irqreturn_t mtouch_interrupt(struct serio *serio, in mtouch_interrupt() argument 89 struct mtouch *mtouch = serio_get_drvdata(serio); in mtouch_interrupt() 107 static void mtouch_disconnect(struct serio *serio) in mtouch_disconnect() argument 109 struct mtouch *mtouch = serio_get_drvdata(serio); in mtouch_disconnect() 113 serio_close(serio); in mtouch_disconnect() 114 serio_set_drvdata(serio, NULL); in mtouch_disconnect() 121 * new serio device that supports MicroTouch (Format Tablet) protocol and registers it as 125 static int mtouch_connect(struct serio *serio, struct serio_driver *drv) in mtouch_connect() argument [all …]
|
/linux/drivers/input/joystick/iforce/ |
H A D | iforce-serio.c | 9 #include <linux/serio.h> 15 struct serio *serio; member 45 serio_write(iforce_serio->serio, 0x2b); in iforce_serio_xmit() 47 serio_write(iforce_serio->serio, in iforce_serio_xmit() 53 serio_write(iforce_serio->serio, in iforce_serio_xmit() 59 serio_write(iforce_serio->serio, cs); in iforce_serio_xmit() 114 static void iforce_serio_write_wakeup(struct serio *serio) in iforce_serio_write_wakeup() argument 116 struct iforce *iforce = serio_get_drvdata(serio); in iforce_serio_write_wakeup() 121 static irqreturn_t iforce_serio_irq(struct serio *serio, in iforce_serio_irq() argument 124 struct iforce_serio *iforce_serio = serio_get_drvdata(serio); in iforce_serio_irq() [all …]
|
/linux/drivers/input/keyboard/ |
H A D | newtonkbd.c | 13 #include <linux/serio.h> 43 struct serio *serio; member 47 static irqreturn_t nkbd_interrupt(struct serio *serio, in nkbd_interrupt() argument 50 struct nkbd *nkbd = serio_get_drvdata(serio); in nkbd_interrupt() 59 printk(KERN_INFO "input: %s on %s\n", nkbd->dev->name, serio->phys); in nkbd_interrupt() 64 static int nkbd_connect(struct serio *serio, struct serio_driver *drv) in nkbd_connect() argument 76 nkbd->serio = serio; in nkbd_connect() 78 snprintf(nkbd->phys, sizeof(nkbd->phys), "%s/input0", serio->phys); in nkbd_connect() 87 input_dev->dev.parent = &serio->dev; in nkbd_connect() 97 serio_set_drvdata(serio, nkbd); in nkbd_connect() [all …]
|
H A D | sunkbd.c | 16 #include <linux/serio.h> 59 struct serio *serio; member 75 static irqreturn_t sunkbd_interrupt(struct serio *serio, in sunkbd_interrupt() argument 78 struct sunkbd *sunkbd = serio_get_drvdata(serio); in sunkbd_interrupt() 144 serio_write(sunkbd->serio, SUNKBD_CMD_SETLED); in sunkbd_event() 145 serio_write(sunkbd->serio, in sunkbd_event() 157 serio_write(sunkbd->serio, SUNKBD_CMD_NOCLICK - value); in sunkbd_event() 161 serio_write(sunkbd->serio, SUNKBD_CMD_BELLOFF - value); in sunkbd_event() 179 serio_write(sunkbd->serio, SUNKBD_CMD_RESET); in sunkbd_initialize() 188 serio_write(sunkbd->serio, SUNKBD_CMD_LAYOUT); in sunkbd_initialize() [all …]
|
H A D | xtkbd.c | 13 #include <linux/serio.h> 40 struct serio *serio; member 44 static irqreturn_t xtkbd_interrupt(struct serio *serio, in xtkbd_interrupt() argument 47 struct xtkbd *xtkbd = serio_get_drvdata(serio); in xtkbd_interrupt() 66 static int xtkbd_connect(struct serio *serio, struct serio_driver *drv) in xtkbd_connect() argument 78 xtkbd->serio = serio; in xtkbd_connect() 80 snprintf(xtkbd->phys, sizeof(xtkbd->phys), "%s/input0", serio->phys); in xtkbd_connect() 89 input_dev->dev.parent = &serio->dev; in xtkbd_connect() 100 serio_set_drvdata(serio, xtkbd); in xtkbd_connect() 102 err = serio_open(serio, drv); in xtkbd_connect() [all …]
|
H A D | stowaway.c | 16 #include <linux/serio.h> 49 struct serio *serio; member 53 static irqreturn_t skbd_interrupt(struct serio *serio, unsigned char data, in skbd_interrupt() argument 56 struct skbd *skbd = serio_get_drvdata(serio); in skbd_interrupt() 68 static int skbd_connect(struct serio *serio, struct serio_driver *drv) in skbd_connect() argument 80 skbd->serio = serio; in skbd_connect() 82 snprintf(skbd->phys, sizeof(skbd->phys), "%s/input0", serio->phys); in skbd_connect() 91 input_dev->dev.parent = &serio->dev; in skbd_connect() 101 serio_set_drvdata(serio, skbd); in skbd_connect() 103 err = serio_open(serio, drv); in skbd_connect() [all …]
|