Lines Matching refs:port

86  * Per-port information.
119 static void adi_read_packet(struct adi_port *port)
121 struct adi *adi = port->adi;
122 struct gameport *gameport = port->gameport;
162 static void adi_move_bits(struct adi_port *port, int length)
165 struct adi *adi = port->adi;
240 static int adi_read(struct adi_port *port)
245 adi_read_packet(port);
246 adi_move_bits(port, port->adi[0].length);
249 if (port->adi[i].length)
250 result |= adi_decode(port->adi + i);
261 struct adi_port *port = gameport_get_drvdata(gameport);
263 port->bad -= adi_read(port);
264 port->reads++;
273 struct adi_port *port = input_get_drvdata(dev);
275 gameport_start_polling(port->gameport);
285 struct adi_port *port = input_get_drvdata(dev);
287 gameport_stop_polling(port->gameport);
311 static void adi_id_decode(struct adi *adi, struct adi_port *port)
382 static int adi_init_input(struct adi *adi, struct adi_port *port, int half)
396 snprintf(adi->phys, ADI_MAX_PHYS_LENGTH, "%s/input%d", port->gameport->phys, half);
407 input_dev->dev.parent = &port->gameport->dev;
409 input_set_drvdata(input_dev, port);
455 struct adi_port *port;
459 port = kzalloc(sizeof(struct adi_port), GFP_KERNEL);
460 if (!port)
463 port->gameport = gameport;
465 gameport_set_drvdata(gameport, port);
472 adi_read_packet(port);
474 if (port->adi[0].ret >= ADI_MIN_LEN_LENGTH)
475 adi_move_bits(port, adi_get_bits(port->adi, 10));
478 adi_id_decode(port->adi + i, port);
480 if (!port->adi[i].length)
483 err = adi_init_input(port->adi + i, port, i);
488 if (!port->adi[0].length && !port->adi[1].length) {
497 if (adi_read(port)) {
499 adi_read(port);
503 if (port->adi[i].length > 0) {
504 adi_init_center(port->adi + i);
505 err = input_register_device(port->adi[i].dev);
513 if (port->adi[i].length > 0) {
514 input_unregister_device(port->adi[i].dev);
515 port->adi[i].dev = NULL;
519 input_free_device(port->adi[i].dev);
522 kfree(port);
529 struct adi_port *port = gameport_get_drvdata(gameport);
532 if (port->adi[i].length > 0)
533 input_unregister_device(port->adi[i].dev);
536 kfree(port);