Lines Matching refs:port

89  * Per-port information.
122 static void adi_read_packet(struct adi_port *port)
124 struct adi *adi = port->adi;
125 struct gameport *gameport = port->gameport;
165 static void adi_move_bits(struct adi_port *port, int length)
168 struct adi *adi = port->adi;
243 static int adi_read(struct adi_port *port)
248 adi_read_packet(port);
249 adi_move_bits(port, port->adi[0].length);
252 if (port->adi[i].length)
253 result |= adi_decode(port->adi + i);
264 struct adi_port *port = gameport_get_drvdata(gameport);
266 port->bad -= adi_read(port);
267 port->reads++;
276 struct adi_port *port = input_get_drvdata(dev);
278 gameport_start_polling(port->gameport);
288 struct adi_port *port = input_get_drvdata(dev);
290 gameport_stop_polling(port->gameport);
314 static void adi_id_decode(struct adi *adi, struct adi_port *port)
385 static int adi_init_input(struct adi *adi, struct adi_port *port, int half)
399 snprintf(adi->phys, ADI_MAX_PHYS_LENGTH, "%s/input%d", port->gameport->phys, half);
410 input_dev->dev.parent = &port->gameport->dev;
412 input_set_drvdata(input_dev, port);
458 struct adi_port *port;
462 port = kzalloc(sizeof(struct adi_port), GFP_KERNEL);
463 if (!port)
466 port->gameport = gameport;
468 gameport_set_drvdata(gameport, port);
475 adi_read_packet(port);
477 if (port->adi[0].ret >= ADI_MIN_LEN_LENGTH)
478 adi_move_bits(port, adi_get_bits(port->adi, 10));
481 adi_id_decode(port->adi + i, port);
483 if (!port->adi[i].length)
486 err = adi_init_input(port->adi + i, port, i);
491 if (!port->adi[0].length && !port->adi[1].length) {
500 if (adi_read(port)) {
502 adi_read(port);
506 if (port->adi[i].length > 0) {
507 adi_init_center(port->adi + i);
508 err = input_register_device(port->adi[i].dev);
516 if (port->adi[i].length > 0) {
517 input_unregister_device(port->adi[i].dev);
518 port->adi[i].dev = NULL;
522 input_free_device(port->adi[i].dev);
525 kfree(port);
532 struct adi_port *port = gameport_get_drvdata(gameport);
535 if (port->adi[i].length > 0)
536 input_unregister_device(port->adi[i].dev);
539 kfree(port);