Searched refs:serio (Results 1 - 99 of 99) sorted by relevance

/linux-4.1.27/drivers/input/serio/
H A Dserio.c33 #include <linux/serio.h>
45 * serio_mutex protects entire serio subsystem and is taken every time
46 * serio port or driver registered or unregistered.
54 static void serio_add_port(struct serio *serio);
55 static int serio_reconnect_port(struct serio *serio);
56 static void serio_disconnect_port(struct serio *serio);
57 static void serio_reconnect_subtree(struct serio *serio);
60 static int serio_connect_driver(struct serio *serio, struct serio_driver *drv) serio_connect_driver() argument
64 mutex_lock(&serio->drv_mutex); serio_connect_driver()
65 retval = drv->connect(serio, drv); serio_connect_driver()
66 mutex_unlock(&serio->drv_mutex); serio_connect_driver()
71 static int serio_reconnect_driver(struct serio *serio) serio_reconnect_driver() argument
75 mutex_lock(&serio->drv_mutex); serio_reconnect_driver()
76 if (serio->drv && serio->drv->reconnect) serio_reconnect_driver()
77 retval = serio->drv->reconnect(serio); serio_reconnect_driver()
78 mutex_unlock(&serio->drv_mutex); serio_reconnect_driver()
83 static void serio_disconnect_driver(struct serio *serio) serio_disconnect_driver() argument
85 mutex_lock(&serio->drv_mutex); serio_disconnect_driver()
86 if (serio->drv) serio_disconnect_driver()
87 serio->drv->disconnect(serio); serio_disconnect_driver()
88 mutex_unlock(&serio->drv_mutex); serio_disconnect_driver()
91 static int serio_match_port(const struct serio_device_id *ids, struct serio *serio) serio_match_port() argument
94 if ((ids->type == SERIO_ANY || ids->type == serio->id.type) && serio_match_port()
95 (ids->proto == SERIO_ANY || ids->proto == serio->id.proto) && serio_match_port()
96 (ids->extra == SERIO_ANY || ids->extra == serio->id.extra) && serio_match_port()
97 (ids->id == SERIO_ANY || ids->id == serio->id.id)) serio_match_port()
105 * Basic serio -> driver core mappings
108 static int serio_bind_driver(struct serio *serio, struct serio_driver *drv) serio_bind_driver() argument
112 if (serio_match_port(drv->id_table, serio)) { serio_bind_driver()
114 serio->dev.driver = &drv->driver; serio_bind_driver()
115 if (serio_connect_driver(serio, drv)) { serio_bind_driver()
116 serio->dev.driver = NULL; serio_bind_driver()
120 error = device_bind_driver(&serio->dev); serio_bind_driver()
122 dev_warn(&serio->dev, serio_bind_driver()
124 serio->phys, serio->name, serio_bind_driver()
126 serio_disconnect_driver(serio); serio_bind_driver()
127 serio->dev.driver = NULL; serio_bind_driver()
134 static void serio_find_driver(struct serio *serio) serio_find_driver() argument
138 error = device_attach(&serio->dev); serio_find_driver()
140 dev_warn(&serio->dev, serio_find_driver()
142 serio->phys, serio->name, error); serio_find_driver()
268 * Scan event list for the other events for the same serio port, serio_queue_event()
311 * object, be it serio port or driver.
331 * Locate child serio port (if any) that has not been fully registered yet.
336 static struct serio *serio_get_pending_child(struct serio *parent) serio_get_pending_child()
339 struct serio *serio, *child = NULL; serio_get_pending_child() local
346 serio = event->object; serio_get_pending_child()
347 if (serio->parent == parent) { serio_get_pending_child()
348 child = serio; serio_get_pending_child()
364 struct serio *serio = to_serio_port(dev); serio_show_description() local
365 return sprintf(buf, "%s\n", serio->name); serio_show_description()
370 struct serio *serio = to_serio_port(dev); modalias_show() local
372 return sprintf(buf, "serio:ty%02Xpr%02Xid%02Xex%02X\n", modalias_show()
373 serio->id.type, serio->id.proto, serio->id.id, serio->id.extra); modalias_show()
378 struct serio *serio = to_serio_port(dev); type_show() local
379 return sprintf(buf, "%02x\n", serio->id.type); type_show()
384 struct serio *serio = to_serio_port(dev); proto_show() local
385 return sprintf(buf, "%02x\n", serio->id.proto); proto_show()
390 struct serio *serio = to_serio_port(dev); id_show() local
391 return sprintf(buf, "%02x\n", serio->id.id); id_show()
396 struct serio *serio = to_serio_port(dev); extra_show() local
397 return sprintf(buf, "%02x\n", serio->id.extra); extra_show()
402 struct serio *serio = to_serio_port(dev); drvctl_store() local
411 serio_disconnect_port(serio); drvctl_store()
413 serio_reconnect_subtree(serio); drvctl_store()
415 serio_disconnect_port(serio); drvctl_store()
416 serio_find_driver(serio); drvctl_store()
417 serio_remove_duplicate_events(serio, SERIO_RESCAN_PORT); drvctl_store()
419 serio_disconnect_port(serio); drvctl_store()
420 error = serio_bind_driver(serio, to_serio_driver(drv)); drvctl_store()
421 serio_remove_duplicate_events(serio, SERIO_RESCAN_PORT); drvctl_store()
433 struct serio *serio = to_serio_port(dev); serio_show_bind_mode() local
434 return sprintf(buf, "%s\n", serio->manual_bind ? "manual" : "auto"); serio_show_bind_mode()
439 struct serio *serio = to_serio_port(dev); serio_set_bind_mode() local
444 serio->manual_bind = true; serio_set_bind_mode()
446 serio->manual_bind = false; serio_set_bind_mode()
456 struct serio *serio = to_serio_port(dev); firmware_id_show() local
458 return sprintf(buf, "%s\n", serio->firmware_id); firmware_id_show()
506 struct serio *serio = to_serio_port(dev); serio_release_port() local
508 kfree(serio); serio_release_port()
513 * Prepare serio port for registration.
515 static void serio_init_port(struct serio *serio) serio_init_port() argument
521 INIT_LIST_HEAD(&serio->node); serio_init_port()
522 INIT_LIST_HEAD(&serio->child_node); serio_init_port()
523 INIT_LIST_HEAD(&serio->children); serio_init_port()
524 spin_lock_init(&serio->lock); serio_init_port()
525 mutex_init(&serio->drv_mutex); serio_init_port()
526 device_initialize(&serio->dev); serio_init_port()
527 dev_set_name(&serio->dev, "serio%lu", serio_init_port()
529 serio->dev.bus = &serio_bus; serio_init_port()
530 serio->dev.release = serio_release_port; serio_init_port()
531 serio->dev.groups = serio_device_attr_groups; serio_init_port()
532 if (serio->parent) { serio_init_port()
533 serio->dev.parent = &serio->parent->dev; serio_init_port()
534 serio->depth = serio->parent->depth + 1; serio_init_port()
536 serio->depth = 0; serio_init_port()
537 lockdep_set_subclass(&serio->lock, serio->depth); serio_init_port()
541 * Complete serio port registration.
544 static void serio_add_port(struct serio *serio) serio_add_port() argument
546 struct serio *parent = serio->parent; serio_add_port()
551 list_add_tail(&serio->child_node, &parent->children); serio_add_port()
555 list_add_tail(&serio->node, &serio_list); serio_add_port()
557 if (serio->start) serio_add_port()
558 serio->start(serio); serio_add_port()
560 error = device_add(&serio->dev); serio_add_port()
562 dev_err(&serio->dev, serio_add_port()
564 serio->phys, serio->name, error); serio_add_port()
571 static void serio_destroy_port(struct serio *serio) serio_destroy_port() argument
573 struct serio *child; serio_destroy_port()
575 while ((child = serio_get_pending_child(serio)) != NULL) { serio_destroy_port()
580 if (serio->stop) serio_destroy_port()
581 serio->stop(serio); serio_destroy_port()
583 if (serio->parent) { serio_destroy_port()
584 serio_pause_rx(serio->parent); serio_destroy_port()
585 list_del_init(&serio->child_node); serio_destroy_port()
586 serio_continue_rx(serio->parent); serio_destroy_port()
587 serio->parent = NULL; serio_destroy_port()
590 if (device_is_registered(&serio->dev)) serio_destroy_port()
591 device_del(&serio->dev); serio_destroy_port()
593 list_del_init(&serio->node); serio_destroy_port()
594 serio_remove_pending_events(serio); serio_destroy_port()
595 put_device(&serio->dev); serio_destroy_port()
599 * Reconnect serio port (re-initialize attached device).
604 static int serio_reconnect_port(struct serio *serio) serio_reconnect_port() argument
606 int error = serio_reconnect_driver(serio); serio_reconnect_port()
609 serio_disconnect_port(serio); serio_reconnect_port()
610 serio_find_driver(serio); serio_reconnect_port()
617 * Reconnect serio port and all its children (re-initialize attached
620 static void serio_reconnect_subtree(struct serio *root) serio_reconnect_subtree()
622 struct serio *s = root; serio_reconnect_subtree()
634 struct serio, child_node); serio_reconnect_subtree()
645 struct serio *parent = s->parent; serio_reconnect_subtree()
649 struct serio, child_node); serio_reconnect_subtree()
662 static void serio_disconnect_port(struct serio *serio) serio_disconnect_port() argument
664 struct serio *s = serio; serio_disconnect_port()
670 while (!list_empty(&serio->children)) { serio_disconnect_port()
675 struct serio, child_node); serio_disconnect_port()
681 if (s != serio) { serio_disconnect_port()
682 struct serio *parent = s->parent; serio_disconnect_port()
694 device_release_driver(&serio->dev); serio_disconnect_port()
697 void serio_rescan(struct serio *serio) serio_rescan() argument
699 serio_queue_event(serio, NULL, SERIO_RESCAN_PORT); serio_rescan()
703 void serio_reconnect(struct serio *serio) serio_reconnect() argument
705 serio_queue_event(serio, NULL, SERIO_RECONNECT_SUBTREE); serio_reconnect()
713 void __serio_register_port(struct serio *serio, struct module *owner) __serio_register_port() argument
715 serio_init_port(serio); __serio_register_port()
716 serio_queue_event(serio, owner, SERIO_REGISTER_PORT); __serio_register_port()
721 * Synchronously unregisters serio port.
723 void serio_unregister_port(struct serio *serio) serio_unregister_port() argument
726 serio_disconnect_port(serio); serio_unregister_port()
727 serio_destroy_port(serio); serio_unregister_port()
735 void serio_unregister_child_port(struct serio *serio) serio_unregister_child_port() argument
737 struct serio *s, *next; serio_unregister_child_port()
740 list_for_each_entry_safe(s, next, &serio->children, child_node) { serio_unregister_child_port()
793 struct serio *serio = to_serio_port(dev); serio_driver_probe() local
796 return serio_connect_driver(serio, drv); serio_driver_probe()
801 struct serio *serio = to_serio_port(dev); serio_driver_remove() local
803 serio_disconnect_driver(serio); serio_driver_remove()
807 static void serio_cleanup(struct serio *serio) serio_cleanup() argument
809 mutex_lock(&serio->drv_mutex); serio_cleanup()
810 if (serio->drv && serio->drv->cleanup) serio_cleanup()
811 serio->drv->cleanup(serio); serio_cleanup()
812 mutex_unlock(&serio->drv_mutex); serio_cleanup()
817 struct serio *serio = to_serio_port(dev); serio_shutdown() local
819 serio_cleanup(serio); serio_shutdown()
873 struct serio *serio; serio_unregister_driver() local
881 list_for_each_entry(serio, &serio_list, node) { serio_unregister_driver()
882 if (serio->drv == drv) { serio_unregister_driver()
883 serio_disconnect_port(serio); serio_unregister_driver()
884 serio_find_driver(serio); serio_unregister_driver()
895 static void serio_set_drv(struct serio *serio, struct serio_driver *drv) serio_set_drv() argument
897 serio_pause_rx(serio); serio_set_drv()
898 serio->drv = drv; serio_set_drv()
899 serio_continue_rx(serio); serio_set_drv()
904 struct serio *serio = to_serio_port(dev); serio_bus_match() local
907 if (serio->manual_bind || serio_drv->manual_bind) serio_bus_match()
910 return serio_match_port(serio_drv->id_table, serio); serio_bus_match()
922 struct serio *serio; serio_uevent() local
927 serio = to_serio_port(dev); serio_uevent()
929 SERIO_ADD_UEVENT_VAR("SERIO_TYPE=%02x", serio->id.type); serio_uevent()
930 SERIO_ADD_UEVENT_VAR("SERIO_PROTO=%02x", serio->id.proto); serio_uevent()
931 SERIO_ADD_UEVENT_VAR("SERIO_ID=%02x", serio->id.id); serio_uevent()
932 SERIO_ADD_UEVENT_VAR("SERIO_EXTRA=%02x", serio->id.extra); serio_uevent()
934 SERIO_ADD_UEVENT_VAR("MODALIAS=serio:ty%02Xpr%02Xid%02Xex%02X", serio_uevent()
935 serio->id.type, serio->id.proto, serio->id.id, serio->id.extra); serio_uevent()
937 if (serio->firmware_id[0]) serio_uevent()
939 serio->firmware_id); serio_uevent()
948 struct serio *serio = to_serio_port(dev); serio_suspend() local
950 serio_cleanup(serio); serio_suspend()
957 struct serio *serio = to_serio_port(dev); serio_resume() local
963 serio_queue_event(serio, NULL, SERIO_RECONNECT_PORT); serio_resume()
977 int serio_open(struct serio *serio, struct serio_driver *drv) serio_open() argument
979 serio_set_drv(serio, drv); serio_open()
981 if (serio->open && serio->open(serio)) { serio_open()
982 serio_set_drv(serio, NULL); serio_open()
990 void serio_close(struct serio *serio) serio_close() argument
992 if (serio->close) serio_close()
993 serio->close(serio); serio_close()
995 serio_set_drv(serio, NULL); serio_close()
999 irqreturn_t serio_interrupt(struct serio *serio, serio_interrupt() argument
1005 spin_lock_irqsave(&serio->lock, flags); serio_interrupt()
1007 if (likely(serio->drv)) { serio_interrupt()
1008 ret = serio->drv->interrupt(serio, data, dfl); serio_interrupt()
1009 } else if (!dfl && device_is_registered(&serio->dev)) { serio_interrupt()
1010 serio_rescan(serio); serio_interrupt()
1014 spin_unlock_irqrestore(&serio->lock, flags); serio_interrupt()
1021 .name = "serio",
1039 pr_err("Failed to register serio bus, error: %d\n", error); serio_init()
H A Dps2mult.c15 #include <linux/serio.h>
29 struct serio *serio; member in struct:ps2mult_port
39 struct serio *mx_serio;
65 MODULE_DEVICE_TABLE(serio, ps2mult_serio_ids);
69 struct serio *mx_serio = psm->mx_serio; ps2mult_select_port()
76 static int ps2mult_serio_write(struct serio *serio, unsigned char data) ps2mult_serio_write() argument
78 struct serio *mx_port = serio->parent; ps2mult_serio_write()
80 struct ps2mult_port *port = serio->port_data; ps2mult_serio_write()
91 dev_dbg(&serio->dev, ps2mult_serio_write()
104 static int ps2mult_serio_start(struct serio *serio) ps2mult_serio_start() argument
106 struct ps2mult *psm = serio_get_drvdata(serio->parent); ps2mult_serio_start()
107 struct ps2mult_port *port = serio->port_data; ps2mult_serio_start()
117 static void ps2mult_serio_stop(struct serio *serio) ps2mult_serio_stop() argument
119 struct ps2mult *psm = serio_get_drvdata(serio->parent); ps2mult_serio_stop()
120 struct ps2mult_port *port = serio->port_data; ps2mult_serio_stop()
130 struct serio *mx_serio = psm->mx_serio; ps2mult_create_port()
131 struct serio *serio; ps2mult_create_port() local
133 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); ps2mult_create_port()
134 if (!serio) ps2mult_create_port()
137 strlcpy(serio->name, "TQC PS/2 Multiplexer", sizeof(serio->name)); ps2mult_create_port()
138 snprintf(serio->phys, sizeof(serio->phys), ps2mult_create_port()
140 serio->id.type = SERIO_8042; ps2mult_create_port()
141 serio->write = ps2mult_serio_write; ps2mult_create_port()
142 serio->start = ps2mult_serio_start; ps2mult_create_port()
143 serio->stop = ps2mult_serio_stop; ps2mult_create_port()
144 serio->parent = psm->mx_serio; ps2mult_create_port()
145 serio->port_data = &psm->ports[i]; ps2mult_create_port()
147 psm->ports[i].serio = serio; ps2mult_create_port()
166 static int ps2mult_connect(struct serio *serio, struct serio_driver *drv) ps2mult_connect() argument
172 if (!serio->write) ps2mult_connect()
180 psm->mx_serio = serio; ps2mult_connect()
191 serio_set_drvdata(serio, psm); ps2mult_connect()
192 error = serio_open(serio, drv); ps2mult_connect()
199 struct serio *s = psm->ports[i].serio; ps2mult_connect()
201 dev_info(&serio->dev, "%s port at %s\n", s->name, serio->phys); ps2mult_connect()
209 kfree(psm->ports[i].serio); ps2mult_connect()
214 static void ps2mult_disconnect(struct serio *serio) ps2mult_disconnect() argument
216 struct ps2mult *psm = serio_get_drvdata(serio); ps2mult_disconnect()
218 /* Note that serio core already take care of children ports */ ps2mult_disconnect()
219 serio_write(serio, PS2MULT_SESSION_END); ps2mult_disconnect()
220 serio_close(serio); ps2mult_disconnect()
223 serio_set_drvdata(serio, NULL); ps2mult_disconnect()
226 static int ps2mult_reconnect(struct serio *serio) ps2mult_reconnect() argument
228 struct ps2mult *psm = serio_get_drvdata(serio); ps2mult_reconnect()
235 static irqreturn_t ps2mult_interrupt(struct serio *serio, ps2mult_interrupt() argument
238 struct ps2mult *psm = serio_get_drvdata(serio); ps2mult_interrupt()
242 dev_dbg(&serio->dev, "Received %02x flags %02x\n", data, dfl); ps2mult_interrupt()
250 serio_interrupt(in_port->serio, data, dfl); ps2mult_interrupt()
256 dev_dbg(&serio->dev, "ESCAPE\n"); ps2mult_interrupt()
261 dev_dbg(&serio->dev, "BSYNC\n"); ps2mult_interrupt()
266 dev_dbg(&serio->dev, "SS\n"); ps2mult_interrupt()
270 dev_dbg(&serio->dev, "SE\n"); ps2mult_interrupt()
274 dev_dbg(&serio->dev, "KB\n"); ps2mult_interrupt()
279 dev_dbg(&serio->dev, "MS\n"); ps2mult_interrupt()
286 serio_interrupt(in_port->serio, data, dfl); ps2mult_interrupt()
H A Dserio_raw.c2 * Raw serio device providing access to a raw byte stream from underlying
3 * serio port. Closely emulates behavior of pre-2.6 /dev/psaux device
17 #include <linux/serio.h>
24 #define DRIVER_DESC "Raw serio driver"
37 struct serio *serio; member in struct:serio_raw
109 serio_pause_rx(serio_raw->serio); serio_raw_open()
111 serio_continue_rx(serio_raw->serio); serio_raw_open()
123 put_device(&serio_raw->serio->dev); serio_raw_free()
132 serio_pause_rx(serio_raw->serio); serio_raw_release()
134 serio_continue_rx(serio_raw->serio); serio_raw_release()
147 serio_pause_rx(serio_raw->serio); serio_raw_fetch_byte()
155 serio_continue_rx(serio_raw->serio); serio_raw_fetch_byte()
227 if (serio_write(serio_raw->serio, c)) { serio_raw_write()
270 * Interface with serio port *
273 static irqreturn_t serio_raw_interrupt(struct serio *serio, unsigned char data, serio_raw_interrupt() argument
276 struct serio_raw *serio_raw = serio_get_drvdata(serio); serio_raw_interrupt()
280 /* we are holding serio->lock here so we are protected */ serio_raw_interrupt()
293 static int serio_raw_connect(struct serio *serio, struct serio_driver *drv) serio_raw_connect() argument
301 dev_dbg(&serio->dev, "can't allocate memory for a device\n"); serio_raw_connect()
311 serio_raw->serio = serio; serio_raw_connect()
312 get_device(&serio->dev); serio_raw_connect()
314 serio_set_drvdata(serio, serio_raw); serio_raw_connect()
316 err = serio_open(serio, drv); serio_raw_connect()
329 serio_raw->dev.parent = &serio->dev; serio_raw_connect()
339 dev_err(&serio->dev, serio_raw_connect()
341 serio->phys); serio_raw_connect()
345 dev_info(&serio->dev, "raw access enabled on %s (%s, minor %d)\n", serio_raw_connect()
346 serio->phys, serio_raw->name, serio_raw->dev.minor); serio_raw_connect()
352 serio_close(serio); serio_raw_connect()
354 serio_set_drvdata(serio, NULL); serio_raw_connect()
359 static int serio_raw_reconnect(struct serio *serio) serio_raw_reconnect() argument
361 struct serio_raw *serio_raw = serio_get_drvdata(serio); serio_raw_reconnect()
362 struct serio_driver *drv = serio->drv; serio_raw_reconnect()
365 dev_dbg(&serio->dev, serio_raw_reconnect()
366 "reconnect request, but serio is disconnected, ignoring...\n"); serio_raw_reconnect()
385 serio_pause_rx(serio_raw->serio); serio_raw_hangup()
388 serio_continue_rx(serio_raw->serio); serio_raw_hangup()
394 static void serio_raw_disconnect(struct serio *serio) serio_raw_disconnect() argument
396 struct serio_raw *serio_raw = serio_get_drvdata(serio); serio_raw_disconnect()
407 serio_close(serio); serio_raw_disconnect()
410 serio_set_drvdata(serio, NULL); serio_raw_disconnect()
429 MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids);
H A Daltera_ps2.c16 #include <linux/serio.h>
26 struct serio *io;
51 static int altera_ps2_write(struct serio *io, unsigned char val) altera_ps2_write()
59 static int altera_ps2_open(struct serio *io) altera_ps2_open()
71 static void altera_ps2_close(struct serio *io) altera_ps2_close()
85 struct serio *serio; altera_ps2_probe() local
108 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); altera_ps2_probe()
109 if (!serio) altera_ps2_probe()
112 serio->id.type = SERIO_8042; altera_ps2_probe()
113 serio->write = altera_ps2_write; altera_ps2_probe()
114 serio->open = altera_ps2_open; altera_ps2_probe()
115 serio->close = altera_ps2_close; altera_ps2_probe()
116 strlcpy(serio->name, dev_name(&pdev->dev), sizeof(serio->name)); altera_ps2_probe()
117 strlcpy(serio->phys, dev_name(&pdev->dev), sizeof(serio->phys)); altera_ps2_probe()
118 serio->port_data = ps2if; altera_ps2_probe()
119 serio->dev.parent = &pdev->dev; altera_ps2_probe()
120 ps2if->io = serio; altera_ps2_probe()
H A Drpckbd.c32 #include <linux/serio.h>
51 static int rpckbd_write(struct serio *port, unsigned char val) rpckbd_write()
63 struct serio *port = dev_id; rpckbd_rx()
81 static int rpckbd_open(struct serio *port) rpckbd_open()
104 static void rpckbd_close(struct serio *port) rpckbd_close()
113 * Allocate and initialize serio structure for subsequent registration
114 * with serio core.
119 struct serio *serio; rpckbd_probe() local
130 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); rpckbd_probe()
132 if (!serio || !rpckbd) { rpckbd_probe()
134 kfree(serio); rpckbd_probe()
141 serio->id.type = SERIO_8042; rpckbd_probe()
142 serio->write = rpckbd_write; rpckbd_probe()
143 serio->open = rpckbd_open; rpckbd_probe()
144 serio->close = rpckbd_close; rpckbd_probe()
145 serio->dev.parent = &dev->dev; rpckbd_probe()
146 serio->port_data = rpckbd; rpckbd_probe()
147 strlcpy(serio->name, "RiscPC PS/2 kbd port", sizeof(serio->name)); rpckbd_probe()
148 strlcpy(serio->phys, "rpckbd/serio0", sizeof(serio->phys)); rpckbd_probe()
150 platform_set_drvdata(dev, serio); rpckbd_probe()
151 serio_register_port(serio); rpckbd_probe()
157 struct serio *serio = platform_get_drvdata(dev); rpckbd_remove() local
158 struct rpckbd_data *rpckbd = serio->port_data; rpckbd_remove()
160 serio_unregister_port(serio); rpckbd_remove()
H A Dserport.c22 #include <linux/serio.h>
38 struct serio *serio; member in struct:serport
45 * Callback functions from the serio code.
48 static int serport_serio_write(struct serio *serio, unsigned char data) serport_serio_write() argument
50 struct serport *serport = serio->port_data; serport_serio_write()
54 static int serport_serio_open(struct serio *serio) serport_serio_open() argument
56 struct serport *serport = serio->port_data; serport_serio_open()
67 static void serport_serio_close(struct serio *serio) serport_serio_close() argument
69 struct serport *serport = serio->port_data; serport_serio_close()
82 * discipline on a tty. It prepares the serio struct.
153 serio_interrupt(serport->serio, cp[i], ch_flags); serport_ldisc_receive()
162 * However, when the serio driver closes the serio port, it finishes,
169 struct serio *serio; serport_ldisc_read() local
175 serport->serio = serio = kzalloc(sizeof(struct serio), GFP_KERNEL); serport_ldisc_read()
176 if (!serio) serport_ldisc_read()
179 strlcpy(serio->name, "Serial port", sizeof(serio->name)); serport_ldisc_read()
180 snprintf(serio->phys, sizeof(serio->phys), "%s/serio0", tty_name(tty, name)); serport_ldisc_read()
181 serio->id = serport->id; serport_ldisc_read()
182 serio->id.type = SERIO_RS232; serport_ldisc_read()
183 serio->write = serport_serio_write; serport_ldisc_read()
184 serio->open = serport_serio_open; serport_ldisc_read()
185 serio->close = serport_serio_close; serport_ldisc_read()
186 serio->port_data = serport; serport_ldisc_read()
187 serio->dev.parent = tty->dev; serport_ldisc_read()
189 serio_register_port(serport->serio); serport_ldisc_read()
190 printk(KERN_INFO "serio: Serial port %s\n", tty_name(tty, name)); serport_ldisc_read()
193 serio_unregister_port(serport->serio); serport_ldisc_read()
194 serport->serio = NULL; serport_ldisc_read()
259 serio_drv_write_wakeup(serport->serio); serport_ldisc_write_wakeup()
H A Dmaceps2.c12 #include <linux/serio.h>
55 static struct serio *maceps2_port[2];
58 static int maceps2_write(struct serio *dev, unsigned char val) maceps2_write()
76 struct serio *dev = dev_id; maceps2_interrupt()
88 static int maceps2_open(struct serio *dev) maceps2_open()
109 static void maceps2_close(struct serio *dev) maceps2_close()
119 static struct serio *maceps2_allocate_port(int idx) maceps2_allocate_port()
121 struct serio *serio; maceps2_allocate_port() local
123 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); maceps2_allocate_port()
124 if (serio) { maceps2_allocate_port()
125 serio->id.type = SERIO_8042; maceps2_allocate_port()
126 serio->write = maceps2_write; maceps2_allocate_port()
127 serio->open = maceps2_open; maceps2_allocate_port()
128 serio->close = maceps2_close; maceps2_allocate_port()
129 snprintf(serio->name, sizeof(serio->name), "MACE PS/2 port%d", idx); maceps2_allocate_port()
130 snprintf(serio->phys, sizeof(serio->phys), "mace/serio%d", idx); maceps2_allocate_port()
131 serio->port_data = &port_data[idx]; maceps2_allocate_port()
132 serio->dev.parent = &maceps2_device->dev; maceps2_allocate_port()
135 return serio; maceps2_allocate_port()
H A Dpcips2.c2 * linux/drivers/input/serio/pcips2.c
19 #include <linux/serio.h>
41 struct serio *io;
46 static int pcips2_write(struct serio *io, unsigned char val) pcips2_write()
102 static int pcips2_open(struct serio *io) pcips2_open()
120 static void pcips2_close(struct serio *io) pcips2_close()
132 struct serio *serio; pcips2_probe() local
144 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); pcips2_probe()
145 if (!ps2if || !serio) { pcips2_probe()
151 serio->id.type = SERIO_8042; pcips2_probe()
152 serio->write = pcips2_write; pcips2_probe()
153 serio->open = pcips2_open; pcips2_probe()
154 serio->close = pcips2_close; pcips2_probe()
155 strlcpy(serio->name, pci_name(dev), sizeof(serio->name)); pcips2_probe()
156 strlcpy(serio->phys, dev_name(&dev->dev), sizeof(serio->phys)); pcips2_probe()
157 serio->port_data = ps2if; pcips2_probe()
158 serio->dev.parent = &dev->dev; pcips2_probe()
159 ps2if->io = serio; pcips2_probe()
170 kfree(serio); pcips2_probe()
H A Dsun4i-ps2.c9 #include <linux/serio.h>
80 struct serio *serio; member in struct:sun4i_ps2data
130 serio_interrupt(drvdata->serio, byte, rxflags); sun4i_ps2_interrupt()
141 static int sun4i_ps2_open(struct serio *serio) sun4i_ps2_open() argument
143 struct sun4i_ps2data *drvdata = serio->port_data; sun4i_ps2_open()
180 static void sun4i_ps2_close(struct serio *serio) sun4i_ps2_close() argument
182 struct sun4i_ps2data *drvdata = serio->port_data; sun4i_ps2_close()
192 static int sun4i_ps2_write(struct serio *serio, unsigned char val) sun4i_ps2_write() argument
195 struct sun4i_ps2data *drvdata = serio->port_data; sun4i_ps2_write()
211 struct serio *serio; sun4i_ps2_probe() local
217 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); sun4i_ps2_probe()
218 if (!drvdata || !serio) { sun4i_ps2_probe()
253 serio->id.type = SERIO_8042; sun4i_ps2_probe()
254 serio->write = sun4i_ps2_write; sun4i_ps2_probe()
255 serio->open = sun4i_ps2_open; sun4i_ps2_probe()
256 serio->close = sun4i_ps2_close; sun4i_ps2_probe()
257 serio->port_data = drvdata; sun4i_ps2_probe()
258 serio->dev.parent = dev; sun4i_ps2_probe()
259 strlcpy(serio->name, dev_name(dev), sizeof(serio->name)); sun4i_ps2_probe()
260 strlcpy(serio->phys, dev_name(dev), sizeof(serio->phys)); sun4i_ps2_probe()
274 drvdata->serio = serio; sun4i_ps2_probe()
285 serio_register_port(serio); sun4i_ps2_probe()
297 kfree(serio); sun4i_ps2_probe()
306 serio_unregister_port(drvdata->serio); sun4i_ps2_remove()
H A Di8042.c21 #include <linux/serio.h>
116 struct serio *serio; member in struct:i8042_port
139 struct serio *serio);
154 struct serio *serio)) i8042_install_filter()
175 struct serio *port)) i8042_remove_filter()
321 static int i8042_kbd_write(struct serio *port, unsigned char c) i8042_kbd_write()
342 static int i8042_aux_write(struct serio *serio, unsigned char c) i8042_aux_write() argument
344 struct i8042_port *port = serio->port_data; i8042_aux_write()
357 static void i8042_port_close(struct serio *serio) i8042_port_close() argument
363 if (serio == i8042_ports[I8042_AUX_PORT_NO].serio) { i8042_port_close()
392 * i8042_start() is called by serio core when port is about to finish
396 static int i8042_start(struct serio *serio) i8042_start() argument
398 struct i8042_port *port = serio->port_data; i8042_start()
406 * i8042_stop() marks serio port as non-existing so i8042_interrupt
408 * The function is called by serio core as part of unregister procedure.
410 static void i8042_stop(struct serio *serio) i8042_stop() argument
412 struct i8042_port *port = serio->port_data; i8042_stop()
423 port->serio = NULL; i8042_stop()
432 struct serio *serio) i8042_filter()
443 if (i8042_platform_filter && i8042_platform_filter(data, str, serio)) { i8042_filter()
460 struct serio *serio; i8042_interrupt() local
498 * rest assume that the data came from the same serio last byte i8042_interrupt()
529 serio = port->exists ? port->serio : NULL; i8042_interrupt()
536 filtered = i8042_filter(data, str, serio); i8042_interrupt()
541 serio_interrupt(serio, data, dfl); i8042_interrupt()
1147 } else if (i8042_ports[I8042_AUX_PORT_NO].serio) i8042_controller_resume()
1150 if (i8042_ports[I8042_KBD_PORT_NO].serio) i8042_controller_resume()
1169 /* Set up serio interrupts for system wakeup. */ i8042_pm_suspend()
1171 struct serio *serio = i8042_ports[i].serio; i8042_pm_suspend() local
1173 if (serio && device_may_wakeup(&serio->dev)) i8042_pm_suspend()
1185 struct serio *serio = i8042_ports[i].serio; i8042_pm_resume() local
1187 if (serio && device_may_wakeup(&serio->dev)) i8042_pm_resume()
1240 struct serio *serio; i8042_create_kbd_port() local
1243 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); i8042_create_kbd_port()
1244 if (!serio) i8042_create_kbd_port()
1247 serio->id.type = i8042_direct ? SERIO_8042 : SERIO_8042_XL; i8042_create_kbd_port()
1248 serio->write = i8042_dumbkbd ? NULL : i8042_kbd_write; i8042_create_kbd_port()
1249 serio->start = i8042_start; i8042_create_kbd_port()
1250 serio->stop = i8042_stop; i8042_create_kbd_port()
1251 serio->close = i8042_port_close; i8042_create_kbd_port()
1252 serio->port_data = port; i8042_create_kbd_port()
1253 serio->dev.parent = &i8042_platform_device->dev; i8042_create_kbd_port()
1254 strlcpy(serio->name, "i8042 KBD port", sizeof(serio->name)); i8042_create_kbd_port()
1255 strlcpy(serio->phys, I8042_KBD_PHYS_DESC, sizeof(serio->phys)); i8042_create_kbd_port()
1256 strlcpy(serio->firmware_id, i8042_kbd_firmware_id, i8042_create_kbd_port()
1257 sizeof(serio->firmware_id)); i8042_create_kbd_port()
1259 port->serio = serio; i8042_create_kbd_port()
1267 struct serio *serio; i8042_create_aux_port() local
1271 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); i8042_create_aux_port()
1272 if (!serio) i8042_create_aux_port()
1275 serio->id.type = SERIO_8042; i8042_create_aux_port()
1276 serio->write = i8042_aux_write; i8042_create_aux_port()
1277 serio->start = i8042_start; i8042_create_aux_port()
1278 serio->stop = i8042_stop; i8042_create_aux_port()
1279 serio->port_data = port; i8042_create_aux_port()
1280 serio->dev.parent = &i8042_platform_device->dev; i8042_create_aux_port()
1282 strlcpy(serio->name, "i8042 AUX port", sizeof(serio->name)); i8042_create_aux_port()
1283 strlcpy(serio->phys, I8042_AUX_PHYS_DESC, sizeof(serio->phys)); i8042_create_aux_port()
1284 strlcpy(serio->firmware_id, i8042_aux_firmware_id, i8042_create_aux_port()
1285 sizeof(serio->firmware_id)); i8042_create_aux_port()
1286 serio->close = i8042_port_close; i8042_create_aux_port()
1288 snprintf(serio->name, sizeof(serio->name), "i8042 AUX%d port", idx); i8042_create_aux_port()
1289 snprintf(serio->phys, sizeof(serio->phys), I8042_MUX_PHYS_DESC, idx + 1); i8042_create_aux_port()
1290 strlcpy(serio->firmware_id, i8042_aux_firmware_id, i8042_create_aux_port()
1291 sizeof(serio->firmware_id)); i8042_create_aux_port()
1294 port->serio = serio; i8042_create_aux_port()
1303 kfree(i8042_ports[I8042_KBD_PORT_NO].serio); i8042_free_kbd_port()
1304 i8042_ports[I8042_KBD_PORT_NO].serio = NULL; i8042_free_kbd_port()
1312 kfree(i8042_ports[i].serio); i8042_free_aux_ports()
1313 i8042_ports[i].serio = NULL; i8042_free_aux_ports()
1322 struct serio *serio = i8042_ports[i].serio; i8042_register_ports() local
1324 if (serio) { i8042_register_ports()
1325 printk(KERN_INFO "serio: %s at %#lx,%#lx irq %d\n", i8042_register_ports()
1326 serio->name, i8042_register_ports()
1330 serio_register_port(serio); i8042_register_ports()
1331 device_set_wakeup_capable(&serio->dev, true); i8042_register_ports()
1341 if (i8042_ports[i].serio) { i8042_unregister_ports()
1342 serio_unregister_port(i8042_ports[i].serio); i8042_unregister_ports()
1343 i8042_ports[i].serio = NULL; i8042_unregister_ports()
1351 bool i8042_check_port_owner(const struct serio *port) i8042_check_port_owner()
1356 if (i8042_ports[i].serio == port) i8042_check_port_owner()
1474 * Ok, everything is ready, let's register all serio ports i8042_probe()
153 i8042_install_filter(bool (filter)unsigned char data, unsigned char str, struct serio *serio)) i8042_install_filter() argument
431 i8042_filter(unsigned char data, unsigned char str, struct serio *serio) i8042_filter() argument
H A Dparkbd.c51 #include <linux/serio.h>
75 static struct serio *parkbd_port;
87 static int parkbd_write(struct serio *port, unsigned char c) parkbd_write()
171 static struct serio * __init parkbd_allocate_serio(void) parkbd_allocate_serio()
173 struct serio *serio; parkbd_allocate_serio() local
175 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); parkbd_allocate_serio()
176 if (serio) { parkbd_allocate_serio()
177 serio->id.type = parkbd_mode; parkbd_allocate_serio()
178 serio->write = parkbd_write, parkbd_allocate_serio()
179 strlcpy(serio->name, "PARKBD AT/XT keyboard adapter", sizeof(serio->name)); parkbd_allocate_serio()
180 snprintf(serio->phys, sizeof(serio->phys), "%s/serio0", parkbd_dev->port->name); parkbd_allocate_serio()
183 return serio; parkbd_allocate_serio()
204 printk(KERN_INFO "serio: PARKBD %s adapter on %s\n", parkbd_init()
H A Dxilinx_ps2.c19 #include <linux/serio.h>
76 struct serio *serio; /* serio */ member in struct:xps2data
139 serio_interrupt(drvdata->serio, c, drvdata->flags); xps2_interrupt()
148 /* serio callbacks */
153 * @pserio: pointer to the serio structure of the PS/2 port
161 static int sxps2_write(struct serio *pserio, unsigned char c) sxps2_write()
184 * @pserio: pointer to the serio structure of the PS/2 device
188 static int sxps2_open(struct serio *pserio) sxps2_open()
212 * @pserio: pointer to the serio structure of the PS/2 device
216 static void sxps2_close(struct serio *pserio) sxps2_close()
240 struct serio *serio; xps2_of_probe() local
264 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); xps2_of_probe()
265 if (!drvdata || !serio) { xps2_of_probe()
272 drvdata->serio = serio; xps2_of_probe()
304 serio->id.type = SERIO_8042; xps2_of_probe()
305 serio->write = sxps2_write; xps2_of_probe()
306 serio->open = sxps2_open; xps2_of_probe()
307 serio->close = sxps2_close; xps2_of_probe()
308 serio->port_data = drvdata; xps2_of_probe()
309 serio->dev.parent = dev; xps2_of_probe()
310 snprintf(serio->name, sizeof(serio->name), xps2_of_probe()
312 snprintf(serio->phys, sizeof(serio->phys), xps2_of_probe()
313 "xilinxps2/serio at %08llX", (unsigned long long)phys_addr); xps2_of_probe()
315 serio_register_port(serio); xps2_of_probe()
323 kfree(serio); xps2_of_probe()
342 serio_unregister_port(drvdata->serio); xps2_of_remove()
H A Dams_delta_serio.c25 #include <linux/serio.h>
38 static struct serio *ams_delta_serio;
76 * and then pass it on the serio ams_delta_serio_interrupt()
92 static int ams_delta_serio_open(struct serio *serio) ams_delta_serio_open() argument
100 static void ams_delta_serio_close(struct serio *serio) ams_delta_serio_close() argument
110 .label = "serio-data",
115 .label = "serio-clock",
120 .label = "serio-power",
125 .label = "serio-dataout",
136 ams_delta_serio = kzalloc(sizeof(struct serio), GFP_KERNEL); ams_delta_serio_init()
152 goto serio; ams_delta_serio_init()
157 "ams-delta-serio", 0); ams_delta_serio_init()
178 serio: ams_delta_serio_init()
H A Dlibps2.c19 #include <linux/serio.h>
39 serio_pause_rx(ps2dev->serio); ps2_sendbyte()
42 serio_continue_rx(ps2dev->serio); ps2_sendbyte()
44 if (serio_write(ps2dev->serio, byte) == 0) ps2_sendbyte()
49 serio_pause_rx(ps2dev->serio); ps2_sendbyte()
51 serio_continue_rx(ps2dev->serio); ps2_sendbyte()
61 if (i8042_check_port_owner(ps2dev->serio)) ps2_begin_command()
68 if (i8042_check_port_owner(ps2dev->serio)) ps2_end_command()
89 serio_pause_rx(ps2dev->serio); ps2_drain()
92 serio_continue_rx(ps2dev->serio); ps2_drain()
151 serio_pause_rx(ps2dev->serio); ps2_adjust_timeout()
153 serio_continue_rx(ps2dev->serio); ps2_adjust_timeout()
162 serio_pause_rx(ps2dev->serio); ps2_adjust_timeout()
164 serio_continue_rx(ps2dev->serio); ps2_adjust_timeout()
201 serio_pause_rx(ps2dev->serio); __ps2_command()
207 serio_continue_rx(ps2dev->serio); __ps2_command()
247 serio_pause_rx(ps2dev->serio); __ps2_command()
249 serio_continue_rx(ps2dev->serio); __ps2_command()
271 void ps2_init(struct ps2dev *ps2dev, struct serio *serio) ps2_init() argument
274 lockdep_set_subclass(&ps2dev->cmd_mutex, serio->depth); ps2_init()
276 ps2dev->serio = serio; ps2_init()
H A Dsa1111ps2.c2 * linux/drivers/input/serio/sa1111ps2.c
13 #include <linux/serio.h>
47 struct serio *io;
114 static int ps2_write(struct serio *io, unsigned char val) ps2_write()
141 static int ps2_open(struct serio *io) ps2_open()
177 static void ps2_close(struct serio *io) ps2_close()
257 struct serio *serio; ps2_probe() local
261 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); ps2_probe()
262 if (!ps2if || !serio) { ps2_probe()
268 serio->id.type = SERIO_8042; ps2_probe()
269 serio->write = ps2_write; ps2_probe()
270 serio->open = ps2_open; ps2_probe()
271 serio->close = ps2_close; ps2_probe()
272 strlcpy(serio->name, dev_name(&dev->dev), sizeof(serio->name)); ps2_probe()
273 strlcpy(serio->phys, dev_name(&dev->dev), sizeof(serio->phys)); ps2_probe()
274 serio->port_data = ps2if; ps2_probe()
275 serio->dev.parent = &dev->dev; ps2_probe()
276 ps2if->io = serio; ps2_probe()
330 kfree(serio); ps2_probe()
H A Dgscps2.c2 * drivers/input/serio/gscps2.c
28 #include <linux/serio.h>
92 struct serio *port;
283 static int gscps2_write(struct serio *port, unsigned char data) gscps2_write()
299 static int gscps2_open(struct serio *port) gscps2_open()
317 static void gscps2_close(struct serio *port) gscps2_close()
331 struct serio *serio; gscps2_probe() local
343 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); gscps2_probe()
344 if (!ps2port || !serio) { gscps2_probe()
351 ps2port->port = serio; gscps2_probe()
359 snprintf(serio->name, sizeof(serio->name), "gsc-ps2-%s", gscps2_probe()
361 strlcpy(serio->phys, dev_name(&dev->dev), sizeof(serio->phys)); gscps2_probe()
362 serio->id.type = SERIO_8042; gscps2_probe()
363 serio->write = gscps2_write; gscps2_probe()
364 serio->open = gscps2_open; gscps2_probe()
365 serio->close = gscps2_close; gscps2_probe()
366 serio->port_data = ps2port; gscps2_probe()
367 serio->dev.parent = &dev->dev; gscps2_probe()
385 printk(KERN_INFO "serio: %s port at 0x%p irq %d @ %s\n", gscps2_probe()
406 kfree(serio); gscps2_probe()
H A Dolpc_apsp.c2 * OLPC serio driver for multiplexed input from Marvell MMP security processor
19 #include <linux/serio.h>
37 * is multiplexed through this system. We create a serio port for each one,
74 struct serio *kbio;
75 struct serio *padio;
81 static int olpc_apsp_write(struct serio *port, unsigned char val) olpc_apsp_write()
114 struct serio *serio; olpc_apsp_rx() local
130 serio = priv->kbio; olpc_apsp_rx()
132 serio = priv->padio; olpc_apsp_rx()
134 serio_interrupt(serio, w & DATA_MASK, 0); olpc_apsp_rx()
144 static int olpc_apsp_open(struct serio *port) olpc_apsp_open()
158 static void olpc_apsp_close(struct serio *port) olpc_apsp_close()
172 struct serio *kb_serio, *pad_serio; olpc_apsp_probe()
202 kb_serio = kzalloc(sizeof(struct serio), GFP_KERNEL); olpc_apsp_probe()
217 pad_serio = kzalloc(sizeof(struct serio), GFP_KERNEL); olpc_apsp_probe()
280 MODULE_DESCRIPTION("OLPC AP-SP serio driver");
H A Dambakmi.c2 * linux/drivers/input/serio/ambakmi.c
13 #include <linux/serio.h>
31 struct serio *io;
54 static int amba_kmi_write(struct serio *io, unsigned char val) amba_kmi_write()
68 static int amba_kmi_open(struct serio *io) amba_kmi_open()
100 static void amba_kmi_close(struct serio *io) amba_kmi_close()
114 struct serio *io; amba_kmi_probe()
122 io = kzalloc(sizeof(struct serio), GFP_KERNEL); amba_kmi_probe()
182 /* kick the serio layer to rescan this port */ amba_kmi_resume()
H A Darc_ps2.c15 #include <linux/serio.h>
38 struct serio *io;
90 static int arc_ps2_write(struct serio *io, unsigned char val) arc_ps2_write()
111 static int arc_ps2_open(struct serio *io) arc_ps2_open()
120 static void arc_ps2_close(struct serio *io) arc_ps2_close()
159 struct serio *io; arc_ps2_create_port()
161 io = kzalloc(sizeof(struct serio), GFP_KERNEL); arc_ps2_create_port()
170 snprintf(io->phys, sizeof(io->phys), "arc/serio%d", index); arc_ps2_create_port()
H A Dhil_mlc.c2 * HIL MLC state machine and serio interface driver
66 MODULE_DESCRIPTION("HIL MLC serio");
167 struct serio *serio; hil_mlc_send_polls() local
172 serio = did ? mlc->serio[mlc->di_map[did - 1]] : NULL; hil_mlc_send_polls()
173 drv = (serio != NULL) ? serio->drv : NULL; hil_mlc_send_polls()
181 drv->interrupt(serio, 0, 0); hil_mlc_send_polls()
182 drv->interrupt(serio, HIL_ERR_INT >> 16, 0); hil_mlc_send_polls()
183 drv->interrupt(serio, HIL_PKT_CMD >> 8, 0); hil_mlc_send_polls()
184 drv->interrupt(serio, HIL_CMD_POL + cnt, 0); hil_mlc_send_polls()
188 serio = did ? mlc->serio[mlc->di_map[did-1]] : NULL; hil_mlc_send_polls()
189 drv = (serio != NULL) ? serio->drv : NULL; hil_mlc_send_polls()
197 drv->interrupt(serio, (p >> 24), 0); hil_mlc_send_polls()
198 drv->interrupt(serio, (p >> 16) & 0xff, 0); hil_mlc_send_polls()
199 drv->interrupt(serio, (p >> 8) & ~HIL_PKT_ADDR_MASK, 0); hil_mlc_send_polls()
200 drv->interrupt(serio, p & 0xff, 0); hil_mlc_send_polls()
257 serio_rescan(mlc->serio[rc]); hilse_match()
798 static int hil_mlc_serio_write(struct serio *serio, unsigned char c) hil_mlc_serio_write() argument
805 map = serio->port_data; hil_mlc_serio_write()
841 drv = serio->drv; hil_mlc_serio_write()
849 drv->interrupt(serio, 0, 0); hil_mlc_serio_write()
850 drv->interrupt(serio, HIL_ERR_INT >> 16, 0); hil_mlc_serio_write()
851 drv->interrupt(serio, 0, 0); hil_mlc_serio_write()
852 drv->interrupt(serio, *idx, 0); hil_mlc_serio_write()
855 drv->interrupt(serio, 0, 0); hil_mlc_serio_write()
856 drv->interrupt(serio, HIL_ERR_INT >> 16, 0); hil_mlc_serio_write()
857 drv->interrupt(serio, HIL_PKT_CMD >> 8, 0); hil_mlc_serio_write()
858 drv->interrupt(serio, *idx, 0); hil_mlc_serio_write()
866 static int hil_mlc_serio_open(struct serio *serio) hil_mlc_serio_open() argument
871 if (serio_get_drvdata(serio) != NULL) hil_mlc_serio_open()
874 map = serio->port_data; hil_mlc_serio_open()
883 static void hil_mlc_serio_close(struct serio *serio) hil_mlc_serio_close() argument
888 map = serio->port_data; hil_mlc_serio_close()
894 serio_set_drvdata(serio, NULL); hil_mlc_serio_close()
895 serio->drv = NULL; hil_mlc_serio_close()
930 struct serio *mlc_serio; hil_mlc_register()
933 mlc->serio[i] = mlc_serio; hil_mlc_register()
934 if (!mlc->serio[i]) { hil_mlc_register()
936 kfree(mlc->serio[i]); hil_mlc_register()
989 serio_unregister_port(mlc->serio[i]); hil_mlc_unregister()
990 mlc->serio[i] = NULL; hil_mlc_unregister()
H A Dq40kbd.c33 #include <linux/serio.h>
54 struct serio *port;
103 static int q40kbd_open(struct serio *port) q40kbd_open()
116 static void q40kbd_close(struct serio *port) q40kbd_close()
127 struct serio *port; q40kbd_probe()
131 port = kzalloc(sizeof(struct serio), GFP_KERNEL); q40kbd_probe()
160 printk(KERN_INFO "serio: Q40 kbd registered\n"); q40kbd_probe()
H A Dapbps2.c23 #include <linux/serio.h>
57 struct serio *io;
86 static int apbps2_write(struct serio *io, unsigned char val) apbps2_write()
106 static int apbps2_open(struct serio *io) apbps2_open()
126 static void apbps2_close(struct serio *io) apbps2_close()
175 priv->io = kzalloc(sizeof(struct serio), GFP_KERNEL); apbps2_of_probe()
H A Dct82c710.c34 #include <linux/serio.h>
64 static struct serio *ct82c710_port;
98 static void ct82c710_close(struct serio *serio) ct82c710_close() argument
111 static int ct82c710_open(struct serio *serio) ct82c710_open() argument
146 static int ct82c710_write(struct serio *port, unsigned char c) ct82c710_write()
180 ct82c710_port = kzalloc(sizeof(struct serio), GFP_KERNEL); ct82c710_probe()
196 printk(KERN_INFO "serio: C&T 82c710 mouse port at %#llx irq %d\n", ct82c710_probe()
H A Dhyperv-keyboard.c19 #include <linux/serio.h>
99 struct serio *hv_serio;
156 * Inject the information through the serio interrupt. hv_kbd_on_receive()
321 static int hv_kbd_start(struct serio *serio) hv_kbd_start() argument
323 struct hv_kbd_dev *kbd_dev = serio->port_data; hv_kbd_start()
333 static void hv_kbd_stop(struct serio *serio) hv_kbd_stop() argument
335 struct hv_kbd_dev *kbd_dev = serio->port_data; hv_kbd_stop()
347 struct serio *hv_serio; hv_kbd_probe()
351 hv_serio = kzalloc(sizeof(struct serio), GFP_KERNEL); hv_kbd_probe()
H A Dat32psif.c14 #include <linux/serio.h>
98 struct serio *io;
131 static int psif_write(struct serio *io, unsigned char val) psif_write()
155 static int psif_open(struct serio *io) psif_open()
172 static void psif_close(struct serio *io) psif_close()
207 struct serio *io; psif_probe()
220 io = kzalloc(sizeof(struct serio), GFP_KERNEL); psif_probe()
277 snprintf(io->phys, sizeof(io->phys), "at32psif/serio%d", pdev->id); psif_probe()
H A Di8042-ip22io.h19 #define I8042_MUX_PHYS_DESC "hpc3ps2/serio%d"
H A Di8042-jazzio.h18 #define I8042_MUX_PHYS_DESC "R4030/serio%d"
H A Di8042-ppcio.h17 #define I8042_MUX_PHYS_DESC "walnutps2/serio%d"
H A Di8042-snirm.h18 #define I8042_MUX_PHYS_DESC "onboard/serio%d"
H A Di8042-unicore32io.h21 #define I8042_MUX_PHYS_DESC "isa0060/serio%d"
H A Di8042-io.h16 #define I8042_MUX_PHYS_DESC "isa0060/serio%d"
H A Di8042-sparcio.h17 #define I8042_MUX_PHYS_DESC "sparcps2/serio%d"
H A Di8042-x86ia64io.h20 #define I8042_MUX_PHYS_DESC "isa0060/serio%d"
/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()
H A Di8042.h58 struct serio;
65 bool i8042_check_port_owner(const struct serio *);
67 struct serio *serio));
69 struct serio *serio));
86 static inline bool i8042_check_port_owner(const struct serio *serio) i8042_check_port_owner() argument
92 struct serio *serio)) i8042_install_filter()
98 struct serio *serio)) i8042_remove_filter()
91 i8042_install_filter(bool (filter)unsigned char data, unsigned char str, struct serio *serio)) i8042_install_filter() argument
97 i8042_remove_filter(bool (filter)unsigned char data, unsigned char str, struct serio *serio)) i8042_remove_filter() argument
H A Dlibps2.h30 struct serio *serio; member in struct:ps2dev
44 void ps2_init(struct ps2dev *ps2dev, struct serio *serio);
H A Dhil_mlc.h38 #include <linux/serio.h>
156 struct serio *serio[HIL_MLC_DEVMEM]; member in struct:hil_mlc
H A Dgameport.h46 struct mutex drv_mutex; /* protects serio->drv so attributes can pin driver */
/linux-4.1.27/drivers/input/touchscreen/
H A Dtouchright.c22 #include <linux/serio.h>
51 struct serio *serio; member in struct:tr
57 static irqreturn_t tr_interrupt(struct serio *serio, tr_interrupt() argument
60 struct tr *tr = serio_get_drvdata(serio); tr_interrupt()
85 static void tr_disconnect(struct serio *serio) tr_disconnect() argument
87 struct tr *tr = serio_get_drvdata(serio); tr_disconnect()
91 serio_close(serio); tr_disconnect()
92 serio_set_drvdata(serio, NULL); tr_disconnect()
99 * new serio device that supports the Touchright protocol and registers it as
103 static int tr_connect(struct serio *serio, struct serio_driver *drv) tr_connect() argument
116 tr->serio = serio; tr_connect()
118 snprintf(tr->phys, sizeof(tr->phys), "%s/input0", serio->phys); tr_connect()
126 input_dev->dev.parent = &serio->dev; tr_connect()
132 serio_set_drvdata(serio, tr); tr_connect()
134 err = serio_open(serio, drv); tr_connect()
144 fail3: serio_close(serio); tr_connect()
145 fail2: serio_set_drvdata(serio, NULL); tr_connect()
152 * The serio driver structure.
165 MODULE_DEVICE_TABLE(serio, tr_serio_ids);
H A Dtsc40.c13 #include <linux/serio.h>
18 struct serio *serio; member in struct:tsc_ser
41 static irqreturn_t tsc_interrupt(struct serio *serio, tsc_interrupt() argument
44 struct tsc_ser *ptsc = serio_get_drvdata(serio); tsc_interrupt()
51 dev_dbg(&serio->dev, tsc_interrupt()
64 dev_dbg(&serio->dev, tsc_interrupt()
80 static int tsc_connect(struct serio *serio, struct serio_driver *drv) tsc_connect() argument
93 ptsc->serio = serio; tsc_connect()
95 snprintf(ptsc->phys, sizeof(ptsc->phys), "%s/input0", serio->phys); tsc_connect()
103 input_dev->dev.parent = &serio->dev; tsc_connect()
110 serio_set_drvdata(serio, ptsc); tsc_connect()
112 error = serio_open(serio, drv); tsc_connect()
123 serio_close(serio); tsc_connect()
125 serio_set_drvdata(serio, NULL); tsc_connect()
132 static void tsc_disconnect(struct serio *serio) tsc_disconnect() argument
134 struct tsc_ser *ptsc = serio_get_drvdata(serio); tsc_disconnect()
136 serio_close(serio); tsc_disconnect()
141 serio_set_drvdata(serio, NULL); tsc_disconnect()
153 MODULE_DEVICE_TABLE(serio, tsc_serio_ids);
H A Dfujitsu_ts.c18 #include <linux/serio.h>
33 struct serio *serio; member in struct:fujitsu
47 static irqreturn_t fujitsu_interrupt(struct serio *serio, fujitsu_interrupt() argument
50 struct fujitsu *fujitsu = serio_get_drvdata(serio); fujitsu_interrupt()
83 static void fujitsu_disconnect(struct serio *serio) fujitsu_disconnect() argument
85 struct fujitsu *fujitsu = serio_get_drvdata(serio); fujitsu_disconnect()
89 serio_close(serio); fujitsu_disconnect()
90 serio_set_drvdata(serio, NULL); fujitsu_disconnect()
97 * new serio device that supports the Fujitsu protocol and registers it
100 static int fujitsu_connect(struct serio *serio, struct serio_driver *drv) fujitsu_connect() argument
113 fujitsu->serio = serio; fujitsu_connect()
116 "%s/input0", serio->phys); fujitsu_connect()
129 serio_set_drvdata(serio, fujitsu); fujitsu_connect()
131 err = serio_open(serio, drv); fujitsu_connect()
142 serio_close(serio); fujitsu_connect()
144 serio_set_drvdata(serio, NULL); fujitsu_connect()
152 * The serio driver structure.
164 MODULE_DEVICE_TABLE(serio, fujitsu_serio_ids);
H A Ddynapro.c26 #include <linux/serio.h>
57 struct serio *serio; member in struct:dynapro
78 static irqreturn_t dynapro_interrupt(struct serio *serio, dynapro_interrupt() argument
81 struct dynapro *pdynapro = serio_get_drvdata(serio); dynapro_interrupt()
88 dev_dbg(&serio->dev, "unknown/unsynchronized data: %x\n", dynapro_interrupt()
94 static void dynapro_disconnect(struct serio *serio) dynapro_disconnect() argument
96 struct dynapro *pdynapro = serio_get_drvdata(serio); dynapro_disconnect()
100 serio_close(serio); dynapro_disconnect()
101 serio_set_drvdata(serio, NULL); dynapro_disconnect()
108 * new serio device that supports dynapro protocol and registers it as
112 static int dynapro_connect(struct serio *serio, struct serio_driver *drv) dynapro_connect() argument
125 pdynapro->serio = serio; dynapro_connect()
128 "%s/input0", serio->phys); dynapro_connect()
136 input_dev->dev.parent = &serio->dev; dynapro_connect()
144 serio_set_drvdata(serio, pdynapro); dynapro_connect()
146 err = serio_open(serio, drv); dynapro_connect()
156 fail3: serio_close(serio); dynapro_connect()
157 fail2: serio_set_drvdata(serio, NULL); dynapro_connect()
164 * The serio driver structure.
177 MODULE_DEVICE_TABLE(serio, dynapro_serio_ids);
H A Dgunze.c34 #include <linux/serio.h>
54 struct serio *serio; member in struct:gunze
76 static irqreturn_t gunze_interrupt(struct serio *serio, gunze_interrupt() argument
79 struct gunze* gunze = serio_get_drvdata(serio); gunze_interrupt()
95 static void gunze_disconnect(struct serio *serio) gunze_disconnect() argument
97 struct gunze *gunze = serio_get_drvdata(serio); gunze_disconnect()
101 serio_close(serio); gunze_disconnect()
102 serio_set_drvdata(serio, NULL); gunze_disconnect()
109 * new serio device that supports Gunze protocol and registers it as
113 static int gunze_connect(struct serio *serio, struct serio_driver *drv) gunze_connect() argument
126 gunze->serio = serio; gunze_connect()
128 snprintf(gunze->phys, sizeof(serio->phys), "%s/input0", serio->phys); gunze_connect()
136 input_dev->dev.parent = &serio->dev; gunze_connect()
142 serio_set_drvdata(serio, gunze); gunze_connect()
144 err = serio_open(serio, drv); gunze_connect()
154 fail3: serio_close(serio); gunze_connect()
155 fail2: serio_set_drvdata(serio, NULL); gunze_connect()
162 * The serio driver structure.
175 MODULE_DEVICE_TABLE(serio, gunze_serio_ids);
H A Dhampshire.c25 #include <linux/serio.h>
56 struct serio *serio; member in struct:hampshire
77 static irqreturn_t hampshire_interrupt(struct serio *serio, hampshire_interrupt() argument
80 struct hampshire *phampshire = serio_get_drvdata(serio); hampshire_interrupt()
87 dev_dbg(&serio->dev, "unknown/unsynchronized data: %x\n", hampshire_interrupt()
93 static void hampshire_disconnect(struct serio *serio) hampshire_disconnect() argument
95 struct hampshire *phampshire = serio_get_drvdata(serio); hampshire_disconnect()
99 serio_close(serio); hampshire_disconnect()
100 serio_set_drvdata(serio, NULL); hampshire_disconnect()
107 * new serio device that supports hampshire protocol and registers it as
111 static int hampshire_connect(struct serio *serio, struct serio_driver *drv) hampshire_connect() argument
124 phampshire->serio = serio; hampshire_connect()
127 "%s/input0", serio->phys); hampshire_connect()
135 input_dev->dev.parent = &serio->dev; hampshire_connect()
143 serio_set_drvdata(serio, phampshire); hampshire_connect()
145 err = serio_open(serio, drv); hampshire_connect()
155 fail3: serio_close(serio); hampshire_connect()
156 fail2: serio_set_drvdata(serio, NULL); hampshire_connect()
163 * The serio driver structure.
176 MODULE_DEVICE_TABLE(serio, hampshire_serio_ids);
H A Dtouchit213.c23 #include <linux/serio.h>
79 struct serio *serio; member in struct:touchit213
86 static irqreturn_t touchit213_interrupt(struct serio *serio, touchit213_interrupt() argument
89 struct touchit213 *touchit213 = serio_get_drvdata(serio); touchit213_interrupt()
122 static void touchit213_disconnect(struct serio *serio) touchit213_disconnect() argument
124 struct touchit213 *touchit213 = serio_get_drvdata(serio); touchit213_disconnect()
128 serio_close(serio); touchit213_disconnect()
129 serio_set_drvdata(serio, NULL); touchit213_disconnect()
136 * new serio device that supports the Touchright protocol and registers it as
140 static int touchit213_connect(struct serio *serio, struct serio_driver *drv) touchit213_connect() argument
153 touchit213->serio = serio; touchit213_connect()
156 "%s/input0", serio->phys); touchit213_connect()
164 input_dev->dev.parent = &serio->dev; touchit213_connect()
172 serio_set_drvdata(serio, touchit213); touchit213_connect()
174 err = serio_open(serio, drv); touchit213_connect()
184 fail3: serio_close(serio); touchit213_connect()
185 fail2: serio_set_drvdata(serio, NULL); touchit213_connect()
192 * The serio driver structure.
205 MODULE_DEVICE_TABLE(serio, touchit213_serio_ids);
H A Dtouchwin.c29 #include <linux/serio.h>
54 struct serio *serio; member in struct:tw
61 static irqreturn_t tw_interrupt(struct serio *serio, tw_interrupt() argument
64 struct tw *tw = serio_get_drvdata(serio); tw_interrupt()
92 static void tw_disconnect(struct serio *serio) tw_disconnect() argument
94 struct tw *tw = serio_get_drvdata(serio); tw_disconnect()
98 serio_close(serio); tw_disconnect()
99 serio_set_drvdata(serio, NULL); tw_disconnect()
106 * new serio device that supports the Touchwin protocol and registers it as
110 static int tw_connect(struct serio *serio, struct serio_driver *drv) tw_connect() argument
123 tw->serio = serio; tw_connect()
125 snprintf(tw->phys, sizeof(tw->phys), "%s/input0", serio->phys); tw_connect()
133 input_dev->dev.parent = &serio->dev; tw_connect()
139 serio_set_drvdata(serio, tw); tw_connect()
141 err = serio_open(serio, drv); tw_connect()
151 fail3: serio_close(serio); tw_connect()
152 fail2: serio_set_drvdata(serio, NULL); tw_connect()
159 * The serio driver structure.
172 MODULE_DEVICE_TABLE(serio, tw_serio_ids);
H A Dinexio.c25 #include <linux/serio.h>
59 struct serio *serio; member in struct:inexio
79 static irqreturn_t inexio_interrupt(struct serio *serio, inexio_interrupt() argument
82 struct inexio* pinexio = serio_get_drvdata(serio); inexio_interrupt()
98 static void inexio_disconnect(struct serio *serio) inexio_disconnect() argument
100 struct inexio* pinexio = serio_get_drvdata(serio); inexio_disconnect()
104 serio_close(serio); inexio_disconnect()
105 serio_set_drvdata(serio, NULL); inexio_disconnect()
112 * new serio device that supports iNexio protocol and registers it as
116 static int inexio_connect(struct serio *serio, struct serio_driver *drv) inexio_connect() argument
129 pinexio->serio = serio; inexio_connect()
131 snprintf(pinexio->phys, sizeof(pinexio->phys), "%s/input0", serio->phys); inexio_connect()
139 input_dev->dev.parent = &serio->dev; inexio_connect()
145 serio_set_drvdata(serio, pinexio); inexio_connect()
147 err = serio_open(serio, drv); inexio_connect()
157 fail3: serio_close(serio); inexio_connect()
158 fail2: serio_set_drvdata(serio, NULL); inexio_connect()
165 * The serio driver structure.
178 MODULE_DEVICE_TABLE(serio, inexio_serio_ids);
H A Dmtouch.c23 #include <linux/serio.h>
59 struct serio *serio; member in struct:mtouch
90 static irqreturn_t mtouch_interrupt(struct serio *serio, mtouch_interrupt() argument
93 struct mtouch* mtouch = serio_get_drvdata(serio); mtouch_interrupt()
111 static void mtouch_disconnect(struct serio *serio) mtouch_disconnect() argument
113 struct mtouch* mtouch = serio_get_drvdata(serio); mtouch_disconnect()
117 serio_close(serio); mtouch_disconnect()
118 serio_set_drvdata(serio, NULL); mtouch_disconnect()
125 * new serio device that supports MicroTouch (Format Tablet) protocol and registers it as
129 static int mtouch_connect(struct serio *serio, struct serio_driver *drv) mtouch_connect() argument
142 mtouch->serio = serio; mtouch_connect()
144 snprintf(mtouch->phys, sizeof(mtouch->phys), "%s/input0", serio->phys); mtouch_connect()
152 input_dev->dev.parent = &serio->dev; mtouch_connect()
158 serio_set_drvdata(serio, mtouch); mtouch_connect()
160 err = serio_open(serio, drv); mtouch_connect()
170 fail3: serio_close(serio); mtouch_connect()
171 fail2: serio_set_drvdata(serio, NULL); mtouch_connect()
178 * The serio driver structure.
191 MODULE_DEVICE_TABLE(serio, mtouch_serio_ids);
H A Delo.c24 #include <linux/serio.h>
57 struct serio *serio; member in struct:elo
79 dev_dbg(&elo->serio->dev, elo_process_data_10()
88 dev_dbg(&elo->serio->dev, elo_process_data_10()
95 dev_dbg(&elo->serio->dev, elo_process_data_10()
201 static irqreturn_t elo_interrupt(struct serio *serio, elo_interrupt() argument
204 struct elo *elo = serio_get_drvdata(serio); elo_interrupt()
232 serio_pause_rx(elo->serio); elo_command_10()
235 serio_continue_rx(elo->serio); elo_command_10()
237 if (serio_write(elo->serio, ELO10_LEAD_BYTE)) elo_command_10()
242 if (serio_write(elo->serio, packet[i])) elo_command_10()
246 if (serio_write(elo->serio, csum)) elo_command_10()
278 dev_info(&elo->serio->dev, elo_setup_10()
290 static void elo_disconnect(struct serio *serio) elo_disconnect() argument
292 struct elo *elo = serio_get_drvdata(serio); elo_disconnect()
296 serio_close(serio); elo_disconnect()
297 serio_set_drvdata(serio, NULL); elo_disconnect()
304 * new serio device that supports Gunze protocol and registers it as
308 static int elo_connect(struct serio *serio, struct serio_driver *drv) elo_connect() argument
321 elo->serio = serio; elo_connect()
322 elo->id = serio->id.id; elo_connect()
327 snprintf(elo->phys, sizeof(elo->phys), "%s/input0", serio->phys); elo_connect()
335 input_dev->dev.parent = &serio->dev; elo_connect()
340 serio_set_drvdata(serio, elo); elo_connect()
341 err = serio_open(serio, drv); elo_connect()
373 fail3: serio_close(serio); elo_connect()
374 fail2: serio_set_drvdata(serio, NULL); elo_connect()
381 * The serio driver structure.
394 MODULE_DEVICE_TABLE(serio, elo_serio_ids);
H A Dpenmount.c23 #include <linux/serio.h>
56 struct serio *serio; member in struct:pm
165 static irqreturn_t pm_interrupt(struct serio *serio, pm_interrupt() argument
168 struct pm *pm = serio_get_drvdata(serio); pm_interrupt()
181 static void pm_disconnect(struct serio *serio) pm_disconnect() argument
183 struct pm *pm = serio_get_drvdata(serio); pm_disconnect()
185 serio_close(serio); pm_disconnect()
190 serio_set_drvdata(serio, NULL); pm_disconnect()
195 * new serio device that supports PenMount protocol and registers it as
199 static int pm_connect(struct serio *serio, struct serio_driver *drv) pm_connect() argument
213 pm->serio = serio; pm_connect()
215 snprintf(pm->phys, sizeof(pm->phys), "%s/input0", serio->phys); pm_connect()
224 input_dev->dev.parent = &serio->dev; pm_connect()
229 switch (serio->id.id) { pm_connect()
273 serio_set_drvdata(serio, pm); pm_connect()
275 err = serio_open(serio, drv); pm_connect()
285 fail3: serio_close(serio); pm_connect()
286 fail2: serio_set_drvdata(serio, NULL); pm_connect()
293 * The serio driver structure.
306 MODULE_DEVICE_TABLE(serio, pm_serio_ids);
310 .name = "serio-penmount",
H A Dwacom_w8001.c20 #include <linux/serio.h>
84 struct serio *serio; member in struct:w8001
281 static irqreturn_t w8001_interrupt(struct serio *serio, w8001_interrupt() argument
284 struct w8001 *w8001 = serio_get_drvdata(serio); w8001_interrupt()
358 rc = serio_write(w8001->serio, command); w8001_command()
499 static void w8001_disconnect(struct serio *serio) w8001_disconnect() argument
501 struct w8001 *w8001 = serio_get_drvdata(serio); w8001_disconnect()
503 serio_close(serio); w8001_disconnect()
508 serio_set_drvdata(serio, NULL); w8001_disconnect()
513 * new serio device that supports the w8001 protocol and registers it as
517 static int w8001_connect(struct serio *serio, struct serio_driver *drv) w8001_connect() argument
530 w8001->serio = serio; w8001_connect()
533 snprintf(w8001->phys, sizeof(w8001->phys), "%s/input0", serio->phys); w8001_connect()
535 serio_set_drvdata(serio, w8001); w8001_connect()
536 err = serio_open(serio, drv); w8001_connect()
550 input_dev->dev.parent = &serio->dev; w8001_connect()
564 serio_close(serio); w8001_connect()
566 serio_set_drvdata(serio, NULL); w8001_connect()
583 MODULE_DEVICE_TABLE(serio, w8001_serio_ids);
H A Dbcm_iproc_tsc.c25 #include <linux/serio.h>
/linux-4.1.27/drivers/input/joystick/iforce/
H A Diforce-serio.c52 serio_write(iforce->serio, 0x2b); iforce_serial_xmit()
54 serio_write(iforce->serio, iforce->xmit.buf[iforce->xmit.tail]); iforce_serial_xmit()
59 serio_write(iforce->serio, iforce->xmit.buf[iforce->xmit.tail]); iforce_serial_xmit()
64 serio_write(iforce->serio, cs); iforce_serial_xmit()
74 static void iforce_serio_write_wakeup(struct serio *serio) iforce_serio_write_wakeup() argument
76 struct iforce *iforce = serio_get_drvdata(serio); iforce_serio_write_wakeup()
81 static irqreturn_t iforce_serio_irq(struct serio *serio, iforce_serio_irq() argument
84 struct iforce *iforce = serio_get_drvdata(serio); iforce_serio_irq()
127 static int iforce_serio_connect(struct serio *serio, struct serio_driver *drv) iforce_serio_connect() argument
137 iforce->serio = serio; iforce_serio_connect()
139 serio_set_drvdata(serio, iforce); iforce_serio_connect()
141 err = serio_open(serio, drv); iforce_serio_connect()
151 fail2: serio_close(serio); iforce_serio_connect()
152 fail1: serio_set_drvdata(serio, NULL); iforce_serio_connect()
157 static void iforce_serio_disconnect(struct serio *serio) iforce_serio_disconnect() argument
159 struct iforce *iforce = serio_get_drvdata(serio); iforce_serio_disconnect()
162 serio_close(serio); iforce_serio_disconnect()
163 serio_set_drvdata(serio, NULL); iforce_serio_disconnect()
177 MODULE_DEVICE_TABLE(serio, iforce_serio_ids);
H A DMakefile10 iforce-$(CONFIG_JOYSTICK_IFORCE_232) += iforce-serio.o
H A Diforce.h34 #include <linux/serio.h>
111 struct serio *serio; /* RS232 transfer */ member in struct:iforce
148 /* iforce-serio.c */
H A Diforce-main.c288 input_dev->dev.parent = &iforce->serio->dev; iforce_init_device()
/linux-4.1.27/drivers/input/keyboard/
H A Dnewtonkbd.c32 #include <linux/serio.h>
62 struct serio *serio; member in struct:nkbd
66 static irqreturn_t nkbd_interrupt(struct serio *serio, nkbd_interrupt() argument
69 struct nkbd *nkbd = serio_get_drvdata(serio); nkbd_interrupt()
78 printk(KERN_INFO "input: %s on %s\n", nkbd->dev->name, serio->phys); nkbd_interrupt()
83 static int nkbd_connect(struct serio *serio, struct serio_driver *drv) nkbd_connect() argument
95 nkbd->serio = serio; nkbd_connect()
97 snprintf(nkbd->phys, sizeof(nkbd->phys), "%s/input0", serio->phys); nkbd_connect()
106 input_dev->dev.parent = &serio->dev; nkbd_connect()
116 serio_set_drvdata(serio, nkbd); nkbd_connect()
118 err = serio_open(serio, drv); nkbd_connect()
128 fail3: serio_close(serio); nkbd_connect()
129 fail2: serio_set_drvdata(serio, NULL); nkbd_connect()
135 static void nkbd_disconnect(struct serio *serio) nkbd_disconnect() argument
137 struct nkbd *nkbd = serio_get_drvdata(serio); nkbd_disconnect()
139 serio_close(serio); nkbd_disconnect()
140 serio_set_drvdata(serio, NULL); nkbd_disconnect()
155 MODULE_DEVICE_TABLE(serio, nkbd_serio_ids);
H A Dstowaway.c35 #include <linux/serio.h>
68 struct serio *serio; member in struct:skbd
72 static irqreturn_t skbd_interrupt(struct serio *serio, unsigned char data, skbd_interrupt() argument
75 struct skbd *skbd = serio_get_drvdata(serio); skbd_interrupt()
87 static int skbd_connect(struct serio *serio, struct serio_driver *drv) skbd_connect() argument
99 skbd->serio = serio; skbd_connect()
101 snprintf(skbd->phys, sizeof(skbd->phys), "%s/input0", serio->phys); skbd_connect()
110 input_dev->dev.parent = &serio->dev; skbd_connect()
120 serio_set_drvdata(serio, skbd); skbd_connect()
122 err = serio_open(serio, drv); skbd_connect()
132 fail3: serio_close(serio); skbd_connect()
133 fail2: serio_set_drvdata(serio, NULL); skbd_connect()
139 static void skbd_disconnect(struct serio *serio) skbd_disconnect() argument
141 struct skbd *skbd = serio_get_drvdata(serio); skbd_disconnect()
143 serio_close(serio); skbd_disconnect()
144 serio_set_drvdata(serio, NULL); skbd_disconnect()
159 MODULE_DEVICE_TABLE(serio, skbd_serio_ids);
H A Dxtkbd.c32 #include <linux/serio.h>
59 struct serio *serio; member in struct:xtkbd
63 static irqreturn_t xtkbd_interrupt(struct serio *serio, xtkbd_interrupt() argument
66 struct xtkbd *xtkbd = serio_get_drvdata(serio); xtkbd_interrupt()
85 static int xtkbd_connect(struct serio *serio, struct serio_driver *drv) xtkbd_connect() argument
97 xtkbd->serio = serio; xtkbd_connect()
99 snprintf(xtkbd->phys, sizeof(xtkbd->phys), "%s/input0", serio->phys); xtkbd_connect()
108 input_dev->dev.parent = &serio->dev; xtkbd_connect()
119 serio_set_drvdata(serio, xtkbd); xtkbd_connect()
121 err = serio_open(serio, drv); xtkbd_connect()
131 fail3: serio_close(serio); xtkbd_connect()
132 fail2: serio_set_drvdata(serio, NULL); xtkbd_connect()
138 static void xtkbd_disconnect(struct serio *serio) xtkbd_disconnect() argument
140 struct xtkbd *xtkbd = serio_get_drvdata(serio); xtkbd_disconnect()
142 serio_close(serio); xtkbd_disconnect()
143 serio_set_drvdata(serio, NULL); xtkbd_disconnect()
158 MODULE_DEVICE_TABLE(serio, xtkbd_serio_ids);
H A Dsunkbd.c35 #include <linux/serio.h>
78 struct serio *serio; member in struct:sunkbd
94 static irqreturn_t sunkbd_interrupt(struct serio *serio, sunkbd_interrupt() argument
97 struct sunkbd *sunkbd = serio_get_drvdata(serio); sunkbd_interrupt()
162 serio_write(sunkbd->serio, SUNKBD_CMD_SETLED); sunkbd_event()
163 serio_write(sunkbd->serio, sunkbd_event()
175 serio_write(sunkbd->serio, SUNKBD_CMD_NOCLICK - value); sunkbd_event()
179 serio_write(sunkbd->serio, SUNKBD_CMD_BELLOFF - value); sunkbd_event()
197 serio_write(sunkbd->serio, SUNKBD_CMD_RESET); sunkbd_initialize()
206 serio_write(sunkbd->serio, SUNKBD_CMD_LAYOUT); sunkbd_initialize()
229 serio_write(sunkbd->serio, SUNKBD_CMD_SETLED); sunkbd_reinit()
230 serio_write(sunkbd->serio, sunkbd_reinit()
235 serio_write(sunkbd->serio, sunkbd_reinit()
237 serio_write(sunkbd->serio, sunkbd_reinit()
243 serio_pause_rx(sunkbd->serio); sunkbd_enable()
245 serio_continue_rx(sunkbd->serio); sunkbd_enable()
253 static int sunkbd_connect(struct serio *serio, struct serio_driver *drv) sunkbd_connect() argument
265 sunkbd->serio = serio; sunkbd_connect()
269 snprintf(sunkbd->phys, sizeof(sunkbd->phys), "%s/input0", serio->phys); sunkbd_connect()
271 serio_set_drvdata(serio, sunkbd); sunkbd_connect()
273 err = serio_open(serio, drv); sunkbd_connect()
292 input_dev->dev.parent = &serio->dev; sunkbd_connect()
320 fail3: serio_close(serio); sunkbd_connect()
321 fail2: serio_set_drvdata(serio, NULL); sunkbd_connect()
331 static void sunkbd_disconnect(struct serio *serio) sunkbd_disconnect() argument
333 struct sunkbd *sunkbd = serio_get_drvdata(serio); sunkbd_disconnect()
337 serio_close(serio); sunkbd_disconnect()
338 serio_set_drvdata(serio, NULL); sunkbd_disconnect()
358 MODULE_DEVICE_TABLE(serio, sunkbd_serio_ids);
H A Dhil_kbd.c36 #include <linux/serio.h>
48 MODULE_ALIAS("serio:ty03pr25id00ex*"); /* HIL keyboard */
49 MODULE_ALIAS("serio:ty03pr25id0Fex*"); /* HIL mouse */
71 struct serio *serio; member in struct:hil_dev
274 static irqreturn_t hil_dev_interrupt(struct serio *serio, hil_dev_interrupt() argument
281 dev = serio_get_drvdata(serio); hil_dev_interrupt()
314 static void hil_dev_disconnect(struct serio *serio) hil_dev_disconnect() argument
316 struct hil_dev *dev = serio_get_drvdata(serio); hil_dev_disconnect()
320 serio_close(serio); hil_dev_disconnect()
322 serio_set_drvdata(serio, NULL); hil_dev_disconnect()
443 static int hil_dev_connect(struct serio *serio, struct serio_driver *drv) hil_dev_connect() argument
457 dev->serio = serio; hil_dev_connect()
460 error = serio_open(serio, drv); hil_dev_connect()
464 serio_set_drvdata(serio, dev); hil_dev_connect()
468 serio_write(serio, 0); hil_dev_connect()
469 serio_write(serio, 0); hil_dev_connect()
470 serio_write(serio, HIL_PKT_CMD >> 8); hil_dev_connect()
471 serio_write(serio, HIL_CMD_IDD); hil_dev_connect()
477 serio_write(serio, 0); hil_dev_connect()
478 serio_write(serio, 0); hil_dev_connect()
479 serio_write(serio, HIL_PKT_CMD >> 8); hil_dev_connect()
480 serio_write(serio, HIL_CMD_RSC); hil_dev_connect()
486 serio_write(serio, 0); hil_dev_connect()
487 serio_write(serio, 0); hil_dev_connect()
488 serio_write(serio, HIL_PKT_CMD >> 8); hil_dev_connect()
489 serio_write(serio, HIL_CMD_RNM); hil_dev_connect()
495 serio_write(serio, 0); hil_dev_connect()
496 serio_write(serio, 0); hil_dev_connect()
497 serio_write(serio, HIL_PKT_CMD >> 8); hil_dev_connect()
498 serio_write(serio, HIL_CMD_EXD); hil_dev_connect()
536 input_dev->dev.parent = &serio->dev; hil_dev_connect()
539 serio_write(serio, 0); hil_dev_connect()
540 serio_write(serio, 0); hil_dev_connect()
541 serio_write(serio, HIL_PKT_CMD >> 8); hil_dev_connect()
543 serio_write(serio, HIL_CMD_EK1); hil_dev_connect()
554 serio_close(serio); hil_dev_connect()
555 serio_set_drvdata(serio, NULL); hil_dev_connect()
572 MODULE_DEVICE_TABLE(serio, hil_dev_ids);
H A Dlkkbd.c69 #include <linux/serio.h>
281 struct serio *serio; member in struct:lkkbd
438 static irqreturn_t lkkbd_interrupt(struct serio *serio, lkkbd_interrupt() argument
441 struct lkkbd *lk = serio_get_drvdata(serio); lkkbd_interrupt()
502 struct serio *serio = lk->serio; lkkbd_toggle_leds() local
511 serio_write(serio, LK_CMD_LED_ON); lkkbd_toggle_leds()
512 serio_write(serio, leds_on); lkkbd_toggle_leds()
515 serio_write(serio, LK_CMD_LED_OFF); lkkbd_toggle_leds()
516 serio_write(serio, leds_off); lkkbd_toggle_leds()
522 struct serio *serio = lk->serio; lkkbd_toggle_keyclick() local
526 serio_write(serio, LK_CMD_ENABLE_KEYCLICK); lkkbd_toggle_keyclick()
527 serio_write(serio, volume_to_hw(lk->keyclick_volume)); lkkbd_toggle_keyclick()
528 serio_write(serio, LK_CMD_ENABLE_CTRCLICK); lkkbd_toggle_keyclick()
529 serio_write(serio, volume_to_hw(lk->ctrlclick_volume)); lkkbd_toggle_keyclick()
532 serio_write(serio, LK_CMD_DISABLE_KEYCLICK); lkkbd_toggle_keyclick()
533 serio_write(serio, LK_CMD_DISABLE_CTRCLICK); lkkbd_toggle_keyclick()
559 serio_write(lk->serio, LK_CMD_SOUND_BELL); lkkbd_event()
584 serio_write(lk->serio, LK_CMD_REQUEST_ID); lkkbd_reinit()
587 serio_write(lk->serio, LK_CMD_SET_DEFAULTS); lkkbd_reinit()
597 serio_write(lk->serio, LK_CMD_ENABLE_LK401); lkkbd_reinit()
601 serio_write(lk->serio, lkkbd_reinit()
605 serio_write(lk->serio, LK_CMD_ENABLE_BELL); lkkbd_reinit()
606 serio_write(lk->serio, volume_to_hw(lk->bell_volume)); lkkbd_reinit()
613 serio_write(lk->serio, LK_CMD_SOUND_BELL); lkkbd_reinit()
619 static int lkkbd_connect(struct serio *serio, struct serio_driver *drv) lkkbd_connect() argument
633 lk->serio = serio; lkkbd_connect()
642 snprintf(lk->phys, sizeof(lk->phys), "%s/input0", serio->phys); lkkbd_connect()
650 input_dev->dev.parent = &serio->dev; lkkbd_connect()
674 serio_set_drvdata(serio, lk); lkkbd_connect()
676 err = serio_open(serio, drv); lkkbd_connect()
684 serio_write(lk->serio, LK_CMD_POWERCYCLE_RESET); lkkbd_connect()
688 fail3: serio_close(serio); lkkbd_connect()
689 fail2: serio_set_drvdata(serio, NULL); lkkbd_connect()
698 static void lkkbd_disconnect(struct serio *serio) lkkbd_disconnect() argument
700 struct lkkbd *lk = serio_get_drvdata(serio); lkkbd_disconnect()
704 serio_close(serio); lkkbd_disconnect()
705 serio_set_drvdata(serio, NULL); lkkbd_disconnect()
720 MODULE_DEVICE_TABLE(serio, lkkbd_serio_ids);
H A Datkbd.c26 #include <linux/serio.h>
372 static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, atkbd_interrupt() argument
375 struct atkbd *atkbd = serio_get_drvdata(serio); atkbd_interrupt()
382 dev_dbg(&serio->dev, "Received %02x flags %02x\n", data, flags); atkbd_interrupt()
386 dev_warn(&serio->dev, "Frame/parity error: %02x\n", flags); atkbd_interrupt()
387 serio_write(serio, ATKBD_CMD_RESEND); atkbd_interrupt()
426 serio_reconnect(atkbd->ps2dev.serio); atkbd_interrupt()
440 dev_warn(&serio->dev, atkbd_interrupt()
443 data == ATKBD_RET_ACK ? "ACK" : "NAK", serio->phys); atkbd_interrupt()
447 dev_dbg(&serio->dev, "Keyboard on %s reports too many keys pressed.\n", atkbd_interrupt()
448 serio->phys); atkbd_interrupt()
467 dev_warn(&serio->dev, atkbd_interrupt()
471 atkbd->set, code, serio->phys); atkbd_interrupt()
472 dev_warn(&serio->dev, atkbd_interrupt()
670 serio_pause_rx(atkbd->ps2dev.serio); atkbd_enable()
672 serio_continue_rx(atkbd->ps2dev.serio); atkbd_enable()
682 serio_pause_rx(atkbd->ps2dev.serio); atkbd_disable()
684 serio_continue_rx(atkbd->ps2dev.serio); atkbd_disable()
696 dev_err(&ps2dev->serio->dev, atkbd_activate()
698 ps2dev->serio->phys); atkbd_activate()
715 dev_err(&ps2dev->serio->dev, atkbd_deactivate()
717 ps2dev->serio->phys); atkbd_deactivate()
721 * atkbd_probe() probes for an AT keyboard on a serio port.
737 dev_warn(&ps2dev->serio->dev, atkbd_probe()
739 ps2dev->serio->phys); atkbd_probe()
769 dev_err(&ps2dev->serio->dev, atkbd_probe()
881 static void atkbd_cleanup(struct serio *serio) atkbd_cleanup() argument
883 struct atkbd *atkbd = serio_get_drvdata(serio); atkbd_cleanup()
894 static void atkbd_disconnect(struct serio *serio) atkbd_disconnect() argument
896 struct atkbd *atkbd = serio_get_drvdata(serio); atkbd_disconnect()
898 sysfs_remove_group(&serio->dev.kobj, &atkbd_attribute_group); atkbd_disconnect()
908 * accessing freed input device or serio port. atkbd_disconnect()
912 serio_close(serio); atkbd_disconnect()
913 serio_set_drvdata(serio, NULL); atkbd_disconnect()
1071 "%s/input0", atkbd->ps2dev.serio->phys); atkbd_set_device_attrs()
1080 input_dev->dev.parent = &atkbd->ps2dev.serio->dev; atkbd_set_device_attrs()
1127 * atkbd_connect() is called when the serio module finds an interface
1133 static int atkbd_connect(struct serio *serio, struct serio_driver *drv) atkbd_connect() argument
1145 ps2_init(&atkbd->ps2dev, serio); atkbd_connect()
1149 switch (serio->id.type) { atkbd_connect()
1156 if (serio->write) atkbd_connect()
1168 serio_set_drvdata(serio, atkbd); atkbd_connect()
1170 err = serio_open(serio, drv); atkbd_connect()
1192 err = sysfs_create_group(&serio->dev.kobj, &atkbd_attribute_group); atkbd_connect()
1197 if (serio->write) atkbd_connect()
1206 fail4: sysfs_remove_group(&serio->dev.kobj, &atkbd_attribute_group); atkbd_connect()
1207 fail3: serio_close(serio); atkbd_connect()
1208 fail2: serio_set_drvdata(serio, NULL); atkbd_connect()
1219 static int atkbd_reconnect(struct serio *serio) atkbd_reconnect() argument
1221 struct atkbd *atkbd = serio_get_drvdata(serio); atkbd_reconnect()
1222 struct serio_driver *drv = serio->drv; atkbd_reconnect()
1226 dev_dbg(&serio->dev, atkbd_reconnect()
1227 "reconnect request, but serio is disconnected, ignoring...\n"); atkbd_reconnect()
1295 MODULE_DEVICE_TABLE(serio, atkbd_serio_ids);
1313 struct serio *serio = to_serio_port(dev); atkbd_attr_show_helper() local
1314 struct atkbd *atkbd = serio_get_drvdata(serio); atkbd_attr_show_helper()
1322 struct serio *serio = to_serio_port(dev); atkbd_attr_set_helper() local
1323 struct atkbd *atkbd = serio_get_drvdata(serio); atkbd_attr_set_helper()
/linux-4.1.27/drivers/input/joystick/
H A Dmagellan.c33 #include <linux/serio.h>
112 static irqreturn_t magellan_interrupt(struct serio *serio, magellan_interrupt() argument
115 struct magellan* magellan = serio_get_drvdata(serio); magellan_interrupt()
131 static void magellan_disconnect(struct serio *serio) magellan_disconnect() argument
133 struct magellan* magellan = serio_get_drvdata(serio); magellan_disconnect()
135 serio_close(serio); magellan_disconnect()
136 serio_set_drvdata(serio, NULL); magellan_disconnect()
143 * new serio device that supports Magellan protocol and registers it as
147 static int magellan_connect(struct serio *serio, struct serio_driver *drv) magellan_connect() argument
160 snprintf(magellan->phys, sizeof(magellan->phys), "%s/input0", serio->phys); magellan_connect()
168 input_dev->dev.parent = &serio->dev; magellan_connect()
178 serio_set_drvdata(serio, magellan); magellan_connect()
180 err = serio_open(serio, drv); magellan_connect()
190 fail3: serio_close(serio); magellan_connect()
191 fail2: serio_set_drvdata(serio, NULL); magellan_connect()
198 * The serio driver structure.
211 MODULE_DEVICE_TABLE(serio, magellan_serio_ids);
H A Dstinger.c34 #include <linux/serio.h>
96 static irqreturn_t stinger_interrupt(struct serio *serio, stinger_interrupt() argument
99 struct stinger *stinger = serio_get_drvdata(serio); stinger_interrupt()
118 static void stinger_disconnect(struct serio *serio) stinger_disconnect() argument
120 struct stinger *stinger = serio_get_drvdata(serio); stinger_disconnect()
122 serio_close(serio); stinger_disconnect()
123 serio_set_drvdata(serio, NULL); stinger_disconnect()
130 * new serio device that supports Stinger protocol and registers it as
134 static int stinger_connect(struct serio *serio, struct serio_driver *drv) stinger_connect() argument
146 snprintf(stinger->phys, sizeof(stinger->phys), "%s/serio0", serio->phys); stinger_connect()
154 input_dev->dev.parent = &serio->dev; stinger_connect()
164 serio_set_drvdata(serio, stinger); stinger_connect()
166 err = serio_open(serio, drv); stinger_connect()
176 fail3: serio_close(serio); stinger_connect()
177 fail2: serio_set_drvdata(serio, NULL); stinger_connect()
184 * The serio driver structure.
197 MODULE_DEVICE_TABLE(serio, stinger_serio_ids);
H A Dwarrior.c33 #include <linux/serio.h>
98 static irqreturn_t warrior_interrupt(struct serio *serio, warrior_interrupt() argument
101 struct warrior *warrior = serio_get_drvdata(serio); warrior_interrupt()
124 static void warrior_disconnect(struct serio *serio) warrior_disconnect() argument
126 struct warrior *warrior = serio_get_drvdata(serio); warrior_disconnect()
128 serio_close(serio); warrior_disconnect()
129 serio_set_drvdata(serio, NULL); warrior_disconnect()
136 * new serio device. It looks for the Warrior, and if found, registers
140 static int warrior_connect(struct serio *serio, struct serio_driver *drv) warrior_connect() argument
152 snprintf(warrior->phys, sizeof(warrior->phys), "%s/input0", serio->phys); warrior_connect()
160 input_dev->dev.parent = &serio->dev; warrior_connect()
173 serio_set_drvdata(serio, warrior); warrior_connect()
175 err = serio_open(serio, drv); warrior_connect()
185 fail3: serio_close(serio); warrior_connect()
186 fail2: serio_set_drvdata(serio, NULL); warrior_connect()
193 * The serio driver structure.
206 MODULE_DEVICE_TABLE(serio, warrior_serio_ids);
H A Dspaceball.c37 #include <linux/serio.h>
148 static irqreturn_t spaceball_interrupt(struct serio *serio, spaceball_interrupt() argument
151 struct spaceball *spaceball = serio_get_drvdata(serio); spaceball_interrupt()
186 static void spaceball_disconnect(struct serio *serio) spaceball_disconnect() argument
188 struct spaceball* spaceball = serio_get_drvdata(serio); spaceball_disconnect()
190 serio_close(serio); spaceball_disconnect()
191 serio_set_drvdata(serio, NULL); spaceball_disconnect()
198 * new serio device that supports Spaceball protocol and registers it as
202 static int spaceball_connect(struct serio *serio, struct serio_driver *drv) spaceball_connect() argument
209 if ((id = serio->id.id) > SPACEBALL_MAX_ID) spaceball_connect()
218 snprintf(spaceball->phys, sizeof(spaceball->phys), "%s/input0", serio->phys); spaceball_connect()
226 input_dev->dev.parent = &serio->dev; spaceball_connect()
252 serio_set_drvdata(serio, spaceball); spaceball_connect()
254 err = serio_open(serio, drv); spaceball_connect()
264 fail3: serio_close(serio); spaceball_connect()
265 fail2: serio_set_drvdata(serio, NULL); spaceball_connect()
272 * The serio driver structure.
285 MODULE_DEVICE_TABLE(serio, spaceball_serio_ids);
H A Dspaceorb.c36 #include <linux/serio.h>
128 static irqreturn_t spaceorb_interrupt(struct serio *serio, spaceorb_interrupt() argument
131 struct spaceorb* spaceorb = serio_get_drvdata(serio); spaceorb_interrupt()
146 static void spaceorb_disconnect(struct serio *serio) spaceorb_disconnect() argument
148 struct spaceorb* spaceorb = serio_get_drvdata(serio); spaceorb_disconnect()
150 serio_close(serio); spaceorb_disconnect()
151 serio_set_drvdata(serio, NULL); spaceorb_disconnect()
158 * new serio device that supports SpaceOrb/Avenger protocol and registers
162 static int spaceorb_connect(struct serio *serio, struct serio_driver *drv) spaceorb_connect() argument
175 snprintf(spaceorb->phys, sizeof(spaceorb->phys), "%s/input0", serio->phys); spaceorb_connect()
183 input_dev->dev.parent = &serio->dev; spaceorb_connect()
193 serio_set_drvdata(serio, spaceorb); spaceorb_connect()
195 err = serio_open(serio, drv); spaceorb_connect()
205 fail3: serio_close(serio); spaceorb_connect()
206 fail2: serio_set_drvdata(serio, NULL); spaceorb_connect()
213 * The serio driver structure.
226 MODULE_DEVICE_TABLE(serio, spaceorb_serio_ids);
H A Dtwidjoy.c54 #include <linux/serio.h>
137 static irqreturn_t twidjoy_interrupt(struct serio *serio, unsigned char data, unsigned int flags) twidjoy_interrupt() argument
139 struct twidjoy *twidjoy = serio_get_drvdata(serio); twidjoy_interrupt()
165 static void twidjoy_disconnect(struct serio *serio) twidjoy_disconnect() argument
167 struct twidjoy *twidjoy = serio_get_drvdata(serio); twidjoy_disconnect()
169 serio_close(serio); twidjoy_disconnect()
170 serio_set_drvdata(serio, NULL); twidjoy_disconnect()
177 * new serio device. It looks for the Twiddler, and if found, registers
181 static int twidjoy_connect(struct serio *serio, struct serio_driver *drv) twidjoy_connect() argument
195 snprintf(twidjoy->phys, sizeof(twidjoy->phys), "%s/input0", serio->phys); twidjoy_connect()
203 input_dev->dev.parent = &serio->dev; twidjoy_connect()
213 serio_set_drvdata(serio, twidjoy); twidjoy_connect()
215 err = serio_open(serio, drv); twidjoy_connect()
225 fail3: serio_close(serio); twidjoy_connect()
226 fail2: serio_set_drvdata(serio, NULL); twidjoy_connect()
233 * The serio driver structure.
246 MODULE_DEVICE_TABLE(serio, twidjoy_serio_ids);
H A Dzhenhua.c51 #include <linux/serio.h>
109 static irqreturn_t zhenhua_interrupt(struct serio *serio, unsigned char data, unsigned int flags) zhenhua_interrupt() argument
111 struct zhenhua *zhenhua = serio_get_drvdata(serio); zhenhua_interrupt()
137 static void zhenhua_disconnect(struct serio *serio) zhenhua_disconnect() argument
139 struct zhenhua *zhenhua = serio_get_drvdata(serio); zhenhua_disconnect()
141 serio_close(serio); zhenhua_disconnect()
142 serio_set_drvdata(serio, NULL); zhenhua_disconnect()
149 * new serio device. It looks for the Twiddler, and if found, registers
153 static int zhenhua_connect(struct serio *serio, struct serio_driver *drv) zhenhua_connect() argument
165 snprintf(zhenhua->phys, sizeof(zhenhua->phys), "%s/input0", serio->phys); zhenhua_connect()
173 input_dev->dev.parent = &serio->dev; zhenhua_connect()
181 serio_set_drvdata(serio, zhenhua); zhenhua_connect()
183 err = serio_open(serio, drv); zhenhua_connect()
193 fail3: serio_close(serio); zhenhua_connect()
194 fail2: serio_set_drvdata(serio, NULL); zhenhua_connect()
201 * The serio driver structure.
214 MODULE_DEVICE_TABLE(serio, zhenhua_serio_ids);
/linux-4.1.27/drivers/i2c/busses/
H A Di2c-taos-evm.c23 #include <linux/serio.h>
70 struct serio *serio = adapter->algo_data; taos_smbus_xfer() local
71 struct taos_data *taos = serio_get_drvdata(serio); taos_smbus_xfer()
104 serio_write(serio, *p); taos_smbus_xfer()
111 serio_write(serio, read_write == I2C_SMBUS_WRITE ? '>' : '<'); taos_smbus_xfer()
151 static irqreturn_t taos_interrupt(struct serio *serio, unsigned char data, taos_interrupt() argument
154 struct taos_data *taos = serio_get_drvdata(serio); taos_interrupt()
201 static int taos_connect(struct serio *serio, struct serio_driver *drv) taos_connect() argument
214 serio_set_drvdata(serio, taos); taos_connect()
216 err = serio_open(serio, drv); taos_connect()
223 adapter->algo_data = serio; taos_connect()
224 adapter->dev.parent = &serio->dev; taos_connect()
227 serio_write(serio, TAOS_CMD_RESET); taos_connect()
233 dev_err(&serio->dev, "TAOS EVM reset failed (state=%d, " taos_connect()
241 dev_err(&serio->dev, "TAOS EVM identification failed\n"); taos_connect()
248 serio_write(serio, TAOS_CMD_ECHO_OFF); taos_connect()
254 dev_err(&serio->dev, "TAOS EVM echo off failed " taos_connect()
262 dev_info(&serio->dev, "Connected to TAOS EVM\n"); taos_connect()
268 serio_close(serio); taos_connect()
275 static void taos_disconnect(struct serio *serio) taos_disconnect() argument
277 struct taos_data *taos = serio_get_drvdata(serio); taos_disconnect()
282 serio_close(serio); taos_disconnect()
285 dev_info(&serio->dev, "Disconnected from TAOS EVM\n"); taos_disconnect()
297 MODULE_DEVICE_TABLE(serio, taos_serio_ids);
/linux-4.1.27/drivers/input/mouse/
H A Dsermouse.c34 #include <linux/serio.h>
206 static irqreturn_t sermouse_interrupt(struct serio *serio, sermouse_interrupt() argument
209 struct sermouse *sermouse = serio_get_drvdata(serio); sermouse_interrupt()
229 static void sermouse_disconnect(struct serio *serio) sermouse_disconnect() argument
231 struct sermouse *sermouse = serio_get_drvdata(serio); sermouse_disconnect()
233 serio_close(serio); sermouse_disconnect()
234 serio_set_drvdata(serio, NULL); sermouse_disconnect()
240 * sermouse_connect() is a callback form the serio module when
241 * an unhandled serio port is found.
244 static int sermouse_connect(struct serio *serio, struct serio_driver *drv) sermouse_connect() argument
248 unsigned char c = serio->id.extra; sermouse_connect()
257 snprintf(sermouse->phys, sizeof(sermouse->phys), "%s/input0", serio->phys); sermouse_connect()
258 sermouse->type = serio->id.proto; sermouse_connect()
266 input_dev->dev.parent = &serio->dev; sermouse_connect()
279 serio_set_drvdata(serio, sermouse); sermouse_connect()
281 err = serio_open(serio, drv); sermouse_connect()
291 fail3: serio_close(serio); sermouse_connect()
292 fail2: serio_set_drvdata(serio, NULL); sermouse_connect()
344 MODULE_DEVICE_TABLE(serio, sermouse_serio_ids);
H A Dpsmouse-base.c22 #include <linux/serio.h>
237 * counters while holding serio lock so fighting with interrupt handler
243 serio_pause_rx(psmouse->ps2dev.serio); psmouse_set_state()
245 serio_continue_rx(psmouse->ps2dev.serio); psmouse_set_state()
268 serio_reconnect(psmouse->ps2dev.serio); psmouse_handle_byte()
296 static irqreturn_t psmouse_interrupt(struct serio *serio, psmouse_interrupt() argument
299 struct psmouse *psmouse = serio_get_drvdata(serio); psmouse_interrupt()
351 serio_reconnect(serio); psmouse_interrupt()
494 struct serio *serio = psmouse->ps2dev.serio; psmouse_matches_pnp_id() local
498 if (strncmp(serio->firmware_id, "PNP: ", 5)) psmouse_matches_pnp_id()
501 fw_id_copy = kstrndup(&serio->firmware_id[5], psmouse_matches_pnp_id()
502 sizeof(serio->firmware_id) - 5, psmouse_matches_pnp_id()
1200 ps2dev->serio->phys); psmouse_probe()
1230 psmouse->ps2dev.serio->phys); psmouse_activate()
1247 psmouse->ps2dev.serio->phys); psmouse_deactivate()
1264 struct serio *serio = psmouse->ps2dev.serio; psmouse_resync() local
1274 if (serio->parent && serio->id.type == SERIO_PS_PSTHRU) { psmouse_resync()
1275 parent = serio_get_drvdata(serio->parent); psmouse_resync()
1335 psmouse->ps2dev.serio->phys); psmouse_resync()
1343 serio_reconnect(serio); psmouse_resync()
1357 static void psmouse_cleanup(struct serio *serio) psmouse_cleanup() argument
1359 struct psmouse *psmouse = serio_get_drvdata(serio); psmouse_cleanup()
1364 if (serio->parent && serio->id.type == SERIO_PS_PSTHRU) { psmouse_cleanup()
1365 parent = serio_get_drvdata(serio->parent); psmouse_cleanup()
1376 psmouse->ps2dev.serio->phys); psmouse_cleanup()
1406 static void psmouse_disconnect(struct serio *serio) psmouse_disconnect() argument
1410 psmouse = serio_get_drvdata(serio); psmouse_disconnect()
1412 sysfs_remove_group(&serio->dev.kobj, &psmouse_attribute_group); psmouse_disconnect()
1423 if (serio->parent && serio->id.type == SERIO_PS_PSTHRU) { psmouse_disconnect()
1424 parent = serio_get_drvdata(serio->parent); psmouse_disconnect()
1436 serio_close(serio); psmouse_disconnect()
1437 serio_set_drvdata(serio, NULL); psmouse_disconnect()
1453 input_dev->dev.parent = &psmouse->ps2dev.serio->dev; psmouse_switch_protocol()
1505 * psmouse_connect() is a callback from the serio module when
1506 * an unhandled serio port is found.
1508 static int psmouse_connect(struct serio *serio, struct serio_driver *drv) psmouse_connect() argument
1520 if (serio->parent && serio->id.type == SERIO_PS_PSTHRU) { psmouse_connect()
1521 parent = serio_get_drvdata(serio->parent); psmouse_connect()
1530 ps2_init(&psmouse->ps2dev, serio); psmouse_connect()
1533 snprintf(psmouse->phys, sizeof(psmouse->phys), "%s/input0", serio->phys); psmouse_connect()
1537 serio_set_drvdata(serio, psmouse); psmouse_connect()
1539 error = serio_open(serio, drv); psmouse_connect()
1566 error = sysfs_create_group(&serio->dev.kobj, &psmouse_attribute_group); psmouse_connect()
1590 serio_close(serio); psmouse_connect()
1592 serio_set_drvdata(serio, NULL); psmouse_connect()
1602 static int psmouse_reconnect(struct serio *serio) psmouse_reconnect() argument
1604 struct psmouse *psmouse = serio_get_drvdata(serio); psmouse_reconnect()
1611 if (serio->parent && serio->id.type == SERIO_PS_PSTHRU) { psmouse_reconnect()
1612 parent = serio_get_drvdata(serio->parent); psmouse_reconnect()
1671 MODULE_DEVICE_TABLE(serio, psmouse_serio_ids);
1689 struct serio *serio = to_serio_port(dev); psmouse_attr_show_helper() local
1693 psmouse = serio_get_drvdata(serio); psmouse_attr_show_helper()
1701 struct serio *serio = to_serio_port(dev); psmouse_attr_set_helper() local
1710 psmouse = serio_get_drvdata(serio); psmouse_attr_set_helper()
1718 if (serio->parent && serio->id.type == SERIO_PS_PSTHRU) { psmouse_attr_set_helper()
1719 parent = serio_get_drvdata(serio->parent); psmouse_attr_set_helper()
1771 struct serio *serio = psmouse->ps2dev.serio; psmouse_attr_set_protocol() local
1789 while (!list_empty(&serio->children)) { psmouse_attr_set_protocol()
1798 serio_unregister_child_port(serio); psmouse_attr_set_protocol()
1801 if (serio->drv != &psmouse_drv) { psmouse_attr_set_protocol()
1812 if (serio->parent && serio->id.type == SERIO_PS_PSTHRU) { psmouse_attr_set_protocol()
1813 parent = serio_get_drvdata(serio->parent); psmouse_attr_set_protocol()
H A Dvsxxxaa.c84 #include <linux/serio.h>
115 struct serio *serio; member in struct:vsxxxaa
380 serio_write(mouse->serio, 'S'); /* Standard format */ vsxxxaa_handle_POR_packet()
382 serio_write(mouse->serio, 'R'); /* Incremental */ vsxxxaa_handle_POR_packet()
384 serio_write(mouse->serio, 'L'); /* 72 samples/sec */ vsxxxaa_handle_POR_packet()
447 static irqreturn_t vsxxxaa_interrupt(struct serio *serio, vsxxxaa_interrupt() argument
450 struct vsxxxaa *mouse = serio_get_drvdata(serio); vsxxxaa_interrupt()
458 static void vsxxxaa_disconnect(struct serio *serio) vsxxxaa_disconnect() argument
460 struct vsxxxaa *mouse = serio_get_drvdata(serio); vsxxxaa_disconnect()
462 serio_close(serio); vsxxxaa_disconnect()
463 serio_set_drvdata(serio, NULL); vsxxxaa_disconnect()
468 static int vsxxxaa_connect(struct serio *serio, struct serio_driver *drv) vsxxxaa_connect() argument
480 mouse->serio = serio; vsxxxaa_connect()
483 snprintf(mouse->phys, sizeof(mouse->phys), "%s/input0", serio->phys); vsxxxaa_connect()
488 input_dev->dev.parent = &serio->dev; vsxxxaa_connect()
502 serio_set_drvdata(serio, mouse); vsxxxaa_connect()
504 err = serio_open(serio, drv); vsxxxaa_connect()
512 serio_write(serio, 'T'); /* Test */ vsxxxaa_connect()
520 fail3: serio_close(serio); vsxxxaa_connect()
521 fail2: serio_set_drvdata(serio, NULL); vsxxxaa_connect()
537 MODULE_DEVICE_TABLE(serio, vsxxaa_serio_ids);
H A Dpsmouse.h173 dev_dbg(&(psmouse)->ps2dev.serio->dev, \
176 dev_info(&(psmouse)->ps2dev.serio->dev, \
179 dev_warn(&(psmouse)->ps2dev.serio->dev, \
182 dev_err(&(psmouse)->ps2dev.serio->dev, \
185 dev_notice(&(psmouse)->ps2dev.serio->dev, \
189 &(psmouse)->ps2dev.serio->dev, \
H A Dsynaptics.c30 #include <linux/serio.h>
561 static int synaptics_pt_write(struct serio *serio, unsigned char c) synaptics_pt_write() argument
563 struct psmouse *parent = serio_get_drvdata(serio->parent); synaptics_pt_write()
573 static int synaptics_pt_start(struct serio *serio) synaptics_pt_start() argument
575 struct psmouse *parent = serio_get_drvdata(serio->parent); synaptics_pt_start()
578 serio_pause_rx(parent->ps2dev.serio); synaptics_pt_start()
579 priv->pt_port = serio; synaptics_pt_start()
580 serio_continue_rx(parent->ps2dev.serio); synaptics_pt_start()
585 static void synaptics_pt_stop(struct serio *serio) synaptics_pt_stop() argument
587 struct psmouse *parent = serio_get_drvdata(serio->parent); synaptics_pt_stop()
590 serio_pause_rx(parent->ps2dev.serio); synaptics_pt_stop()
592 serio_continue_rx(parent->ps2dev.serio); synaptics_pt_stop()
601 struct serio *ptport, synaptics_pass_pt_packet()
638 struct serio *serio; synaptics_pt_create() local
640 serio = kzalloc(sizeof(struct serio), GFP_KERNEL); synaptics_pt_create()
641 if (!serio) { synaptics_pt_create()
647 serio->id.type = SERIO_PS_PSTHRU; synaptics_pt_create()
648 strlcpy(serio->name, "Synaptics pass-through", sizeof(serio->name)); synaptics_pt_create()
649 strlcpy(serio->phys, "synaptics-pt/serio0", sizeof(serio->name)); synaptics_pt_create()
650 serio->write = synaptics_pt_write; synaptics_pt_create()
651 serio->start = synaptics_pt_start; synaptics_pt_create()
652 serio->stop = synaptics_pt_stop; synaptics_pt_create()
653 serio->parent = psmouse->ps2dev.serio; synaptics_pt_create()
657 psmouse_info(psmouse, "serio: %s port at %s\n", synaptics_pt_create()
658 serio->name, psmouse->phys); synaptics_pt_create()
659 serio_register_port(serio); synaptics_pt_create()
1304 device_remove_file(&psmouse->ps2dev.serio->dev, synaptics_disconnect()
1539 err = device_create_file(&psmouse->ps2dev.serio->dev, __synaptics_init()
H A Dlifebook.c16 #include <linux/serio.h>
263 strcmp(psmouse->ps2dev.serio->phys, desired_serio_phys)) lifebook_detect()
287 "%s/input1", psmouse->ps2dev.serio->phys); lifebook_create_relative_device()
295 dev2->dev.parent = &psmouse->ps2dev.serio->dev; lifebook_create_relative_device()
H A Dtouchkit_ps2.c31 #include <linux/serio.h>
H A Dhgpk.c36 #include <linux/serio.h>
765 if (psmouse->ps2dev.serio->dev.power.power_state.event != hgpk_reconnect()
905 device_remove_file(&psmouse->ps2dev.serio->dev, hgpk_disconnect()
907 device_remove_file(&psmouse->ps2dev.serio->dev, hgpk_disconnect()
911 device_remove_file(&psmouse->ps2dev.serio->dev, hgpk_disconnect()
946 err = device_create_file(&psmouse->ps2dev.serio->dev, hgpk_register()
953 err = device_create_file(&psmouse->ps2dev.serio->dev, hgpk_register()
963 err = device_create_file(&psmouse->ps2dev.serio->dev, hgpk_register()
975 device_remove_file(&psmouse->ps2dev.serio->dev, hgpk_register()
978 device_remove_file(&psmouse->ps2dev.serio->dev, hgpk_register()
H A Dlogips2pp.c13 #include <linux/serio.h>
199 device_remove_file(&psmouse->ps2dev.serio->dev, &psmouse_attr_smartscroll.dattr); ps2pp_disconnect()
405 error = device_create_file(&psmouse->ps2dev.serio->dev, ps2pp_init()
H A Dtrackpoint.c13 #include <linux/serio.h>
349 sysfs_remove_group(&psmouse->ps2dev.serio->dev.kobj, &trackpoint_attr_group); trackpoint_disconnect()
411 error = sysfs_create_group(&ps2dev->serio->dev.kobj, &trackpoint_attr_group); trackpoint_detect()
H A Dsynaptics.h185 struct serio *pt_port; /* Pass-through serio port */
H A Dvmmouse.c17 #include <linux/serio.h>
463 psmouse->ps2dev.serio->phys); vmmouse_init()
474 abs_dev->dev.parent = &psmouse->ps2dev.serio->dev; vmmouse_init()
H A Delantech.c19 #include <linux/serio.h>
1461 sysfs_remove_group(&psmouse->ps2dev.serio->dev.kobj, elantech_disconnect()
1667 error = sysfs_create_group(&psmouse->ps2dev.serio->dev.kobj, elantech_init()
1687 psmouse->ps2dev.serio->phys); elantech_init()
1694 tp_dev->dev.parent = &psmouse->ps2dev.serio->dev; elantech_init()
1719 sysfs_remove_group(&psmouse->ps2dev.serio->dev.kobj, elantech_init()
H A Dfocaltech.c21 #include <linux/serio.h>
H A Dsentelic.c27 #include <linux/serio.h>
1009 sysfs_remove_group(&psmouse->ps2dev.serio->dev.kobj, fsp_disconnect()
1073 error = sysfs_create_group(&psmouse->ps2dev.serio->dev.kobj, fsp_init()
H A Dalps.c21 #include <linux/serio.h>
1339 psmouse->ps2dev.serio->phys, alps_register_bare_ps2_mouse()
1353 dev3->dev.parent = &psmouse->ps2dev.serio->dev; alps_register_bare_ps2_mouse()
1504 serio_pause_rx(psmouse->ps2dev.serio); alps_flush_packet()
1525 serio_continue_rx(psmouse->ps2dev.serio); alps_flush_packet()
2921 psmouse->ps2dev.serio->phys); alps_init()
2934 dev2->dev.parent = &psmouse->ps2dev.serio->dev; alps_init()
H A Dcypress_ps2.c21 #include <linux/serio.h>
/linux-4.1.27/drivers/input/tablet/
H A Dwacom_serial4.c113 #include <linux/serio.h>
375 static irqreturn_t wacom_interrupt(struct serio *serio, unsigned char data, wacom_interrupt() argument
378 struct wacom *wacom = serio_get_drvdata(serio); wacom_interrupt()
414 static void wacom_disconnect(struct serio *serio) wacom_disconnect() argument
416 struct wacom *wacom = serio_get_drvdata(serio); wacom_disconnect()
418 serio_close(serio); wacom_disconnect()
419 serio_set_drvdata(serio, NULL); wacom_disconnect()
424 static int wacom_send(struct serio *serio, const u8 *command) wacom_send() argument
429 err = serio_write(serio, *command); wacom_send()
434 static int wacom_send_setup_string(struct wacom *wacom, struct serio *serio) wacom_send_setup_string() argument
464 return wacom_send(serio, cmd); wacom_send_setup_string()
467 static int wacom_send_and_wait(struct wacom *wacom, struct serio *serio, wacom_send_and_wait() argument
476 err = wacom_send(serio, cmd); wacom_send_and_wait()
490 static int wacom_setup(struct wacom *wacom, struct serio *serio) wacom_setup() argument
497 err = wacom_send_and_wait(wacom, serio, REQUEST_MODEL_AND_ROM_VERSION, wacom_setup()
503 err = wacom_send_and_wait(wacom, serio, wacom_setup()
511 err = wacom_send_and_wait(wacom, serio, wacom_setup()
518 return wacom_send_setup_string(wacom, serio); wacom_setup()
521 static int wacom_connect(struct serio *serio, struct serio_driver *drv) wacom_connect() argument
536 snprintf(wacom->phys, sizeof(wacom->phys), "%s/input0", serio->phys); wacom_connect()
540 input_dev->id.product = serio->id.extra; wacom_connect()
541 input_dev->dev.parent = &serio->dev; wacom_connect()
555 serio_set_drvdata(serio, wacom); wacom_connect()
557 err = serio_open(serio, drv); wacom_connect()
561 err = wacom_setup(wacom, serio); wacom_connect()
589 serio_close(serio); wacom_connect()
591 serio_set_drvdata(serio, NULL); wacom_connect()
607 MODULE_DEVICE_TABLE(serio, wacom_serio_ids);
/linux-4.1.27/drivers/staging/nvec/
H A Dnvec_ps2.c18 #include <linux/serio.h>
46 struct serio *ser_dev;
53 static int ps2_startstreaming(struct serio *ser_dev) ps2_startstreaming()
60 static void ps2_stopstreaming(struct serio *ser_dev) ps2_stopstreaming()
67 static int ps2_sendcommand(struct serio *ser_dev, unsigned char cmd) ps2_sendcommand()
108 struct serio *ser_dev; nvec_mouse_probe()
111 ser_dev = devm_kzalloc(&pdev->dev, sizeof(struct serio), GFP_KERNEL); nvec_mouse_probe()
/linux-4.1.27/drivers/tty/serial/
H A Dsunsu.c34 #include <linux/serio.h>
102 struct serio serio; member in struct:uart_sunsu_port
512 serio_interrupt(&up->serio, ch, 0); receive_kbd_ms_chars()
526 serio_interrupt(&up->serio, ch, 0); receive_kbd_ms_chars()
989 static int sunsu_serio_write(struct serio *serio, unsigned char ch) sunsu_serio_write() argument
991 struct uart_sunsu_port *up = serio->port_data; sunsu_serio_write()
1009 static int sunsu_serio_open(struct serio *serio) sunsu_serio_open() argument
1011 struct uart_sunsu_port *up = serio->port_data; sunsu_serio_open()
1026 static void sunsu_serio_close(struct serio *serio) sunsu_serio_close() argument
1028 struct uart_sunsu_port *up = serio->port_data; sunsu_serio_close()
1199 struct serio *serio; sunsu_kbd_ms_init() local
1222 serio = &up->serio; sunsu_kbd_ms_init()
1223 serio->port_data = up; sunsu_kbd_ms_init()
1225 serio->id.type = SERIO_RS232; sunsu_kbd_ms_init()
1227 serio->id.proto = SERIO_SUNKBD; sunsu_kbd_ms_init()
1228 strlcpy(serio->name, "sukbd", sizeof(serio->name)); sunsu_kbd_ms_init()
1230 serio->id.proto = SERIO_SUN; sunsu_kbd_ms_init()
1231 serio->id.extra = 1; sunsu_kbd_ms_init()
1232 strlcpy(serio->name, "sums", sizeof(serio->name)); sunsu_kbd_ms_init()
1234 strlcpy(serio->phys, sunsu_kbd_ms_init()
1236 sizeof(serio->phys)); sunsu_kbd_ms_init()
1238 serio->write = sunsu_serio_write; sunsu_kbd_ms_init()
1239 serio->open = sunsu_serio_open; sunsu_kbd_ms_init()
1240 serio->close = sunsu_serio_close; sunsu_kbd_ms_init()
1241 serio->dev.parent = up->port.dev; sunsu_kbd_ms_init()
1243 serio_register_port(serio); sunsu_kbd_ms_init()
1517 serio_unregister_port(&up->serio); su_remove()
H A Dsunzilog.c32 #include <linux/serio.h>
101 struct serio serio; member in struct:uart_sunzilog_port
304 serio_interrupt(&up->serio, ch, 0); sunzilog_kbdms_receive_chars()
319 serio_interrupt(&up->serio, ch, 0); sunzilog_kbdms_receive_chars()
1157 static int sunzilog_serio_write(struct serio *serio, unsigned char ch) sunzilog_serio_write() argument
1159 struct uart_sunzilog_port *up = serio->port_data; sunzilog_serio_write()
1171 static int sunzilog_serio_open(struct serio *serio) sunzilog_serio_open() argument
1173 struct uart_sunzilog_port *up = serio->port_data; sunzilog_serio_open()
1188 static void sunzilog_serio_close(struct serio *serio) sunzilog_serio_close() argument
1190 struct uart_sunzilog_port *up = serio->port_data; sunzilog_serio_close()
1306 struct serio *serio = &up->serio; sunzilog_register_serio() local
1308 serio->port_data = up; sunzilog_register_serio()
1310 serio->id.type = SERIO_RS232; sunzilog_register_serio()
1312 serio->id.proto = SERIO_SUNKBD; sunzilog_register_serio()
1313 strlcpy(serio->name, "zskbd", sizeof(serio->name)); sunzilog_register_serio()
1315 serio->id.proto = SERIO_SUN; sunzilog_register_serio()
1316 serio->id.extra = 1; sunzilog_register_serio()
1317 strlcpy(serio->name, "zsms", sizeof(serio->name)); sunzilog_register_serio()
1319 strlcpy(serio->phys, sunzilog_register_serio()
1322 sizeof(serio->phys)); sunzilog_register_serio()
1324 serio->write = sunzilog_serio_write; sunzilog_register_serio()
1325 serio->open = sunzilog_serio_open; sunzilog_register_serio()
1326 serio->close = sunzilog_serio_close; sunzilog_register_serio()
1327 serio->dev.parent = up->port.dev; sunzilog_register_serio()
1329 serio_register_port(serio); sunzilog_register_serio()
1513 serio_unregister_port(&up->serio); zs_remove_one()
/linux-4.1.27/drivers/input/misc/
H A Dideapad_slidebar.c87 #include <linux/serio.h>
140 struct serio *port) slidebar_i8042_filter()
/linux-4.1.27/drivers/platform/x86/
H A Dhp_accel.c41 #include <linux/serio.h>
308 struct serio *port) hp_accel_i8042_filter()
H A Dmsi-laptop.c819 struct serio *port) msi_laptop_i8042_filter()
H A Ddell-laptop.c621 struct serio *port) dell_laptop_i8042_filter()
H A Dtoshiba_acpi.c2418 struct serio *port) toshiba_acpi_i8042_filter()
/linux-4.1.27/arch/mips/include/asm/ip32/
H A Dmace.h236 * -> drivers/input/serio/maceps2.c */
/linux-4.1.27/scripts/mod/
H A Dfile2alias.c494 /* Looks like: "serio:tyNprNidNexN" */ do_serio_entry()
503 strcpy(alias, "serio:"); do_serio_entry()
512 ADD_TO_DEVTABLE("serio", serio_device_id, do_serio_entry);

Completed in 824 milliseconds