Lines Matching refs:serio

29 	struct serio *serio;  member
39 struct serio *mx_serio;
65 MODULE_DEVICE_TABLE(serio, ps2mult_serio_ids);
69 struct serio *mx_serio = psm->mx_serio; in ps2mult_select_port()
76 static int ps2mult_serio_write(struct serio *serio, unsigned char data) in ps2mult_serio_write() argument
78 struct serio *mx_port = serio->parent; in ps2mult_serio_write()
80 struct ps2mult_port *port = serio->port_data; in ps2mult_serio_write()
91 dev_dbg(&serio->dev, in ps2mult_serio_write()
104 static int ps2mult_serio_start(struct serio *serio) in ps2mult_serio_start() argument
106 struct ps2mult *psm = serio_get_drvdata(serio->parent); in ps2mult_serio_start()
107 struct ps2mult_port *port = serio->port_data; in ps2mult_serio_start()
117 static void ps2mult_serio_stop(struct serio *serio) in ps2mult_serio_stop() argument
119 struct ps2mult *psm = serio_get_drvdata(serio->parent); in ps2mult_serio_stop()
120 struct ps2mult_port *port = serio->port_data; in ps2mult_serio_stop()
130 struct serio *mx_serio = psm->mx_serio; in ps2mult_create_port()
131 struct serio *serio; in ps2mult_create_port() local
133 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); in ps2mult_create_port()
134 if (!serio) in ps2mult_create_port()
137 strlcpy(serio->name, "TQC PS/2 Multiplexer", sizeof(serio->name)); in ps2mult_create_port()
138 snprintf(serio->phys, sizeof(serio->phys), in ps2mult_create_port()
140 serio->id.type = SERIO_8042; in ps2mult_create_port()
141 serio->write = ps2mult_serio_write; in ps2mult_create_port()
142 serio->start = ps2mult_serio_start; in ps2mult_create_port()
143 serio->stop = ps2mult_serio_stop; in ps2mult_create_port()
144 serio->parent = psm->mx_serio; in ps2mult_create_port()
145 serio->port_data = &psm->ports[i]; in ps2mult_create_port()
147 psm->ports[i].serio = serio; in ps2mult_create_port()
166 static int ps2mult_connect(struct serio *serio, struct serio_driver *drv) in ps2mult_connect() argument
172 if (!serio->write) in ps2mult_connect()
180 psm->mx_serio = serio; in ps2mult_connect()
191 serio_set_drvdata(serio, psm); in ps2mult_connect()
192 error = serio_open(serio, drv); in ps2mult_connect()
199 struct serio *s = psm->ports[i].serio; in ps2mult_connect()
201 dev_info(&serio->dev, "%s port at %s\n", s->name, serio->phys); in ps2mult_connect()
209 kfree(psm->ports[i].serio); in ps2mult_connect()
214 static void ps2mult_disconnect(struct serio *serio) in ps2mult_disconnect() argument
216 struct ps2mult *psm = serio_get_drvdata(serio); in ps2mult_disconnect()
219 serio_write(serio, PS2MULT_SESSION_END); in ps2mult_disconnect()
220 serio_close(serio); in ps2mult_disconnect()
223 serio_set_drvdata(serio, NULL); in ps2mult_disconnect()
226 static int ps2mult_reconnect(struct serio *serio) in ps2mult_reconnect() argument
228 struct ps2mult *psm = serio_get_drvdata(serio); in ps2mult_reconnect()
235 static irqreturn_t ps2mult_interrupt(struct serio *serio, in ps2mult_interrupt() argument
238 struct ps2mult *psm = serio_get_drvdata(serio); in ps2mult_interrupt()
242 dev_dbg(&serio->dev, "Received %02x flags %02x\n", data, dfl); in ps2mult_interrupt()
250 serio_interrupt(in_port->serio, data, dfl); in ps2mult_interrupt()
256 dev_dbg(&serio->dev, "ESCAPE\n"); in ps2mult_interrupt()
261 dev_dbg(&serio->dev, "BSYNC\n"); in ps2mult_interrupt()
266 dev_dbg(&serio->dev, "SS\n"); in ps2mult_interrupt()
270 dev_dbg(&serio->dev, "SE\n"); in ps2mult_interrupt()
274 dev_dbg(&serio->dev, "KB\n"); in ps2mult_interrupt()
279 dev_dbg(&serio->dev, "MS\n"); in ps2mult_interrupt()
286 serio_interrupt(in_port->serio, data, dfl); in ps2mult_interrupt()