Lines Matching refs:grip

112 static int register_slot(int i, struct grip_mp *grip);
357 static int get_and_decode_packet(struct grip_mp *grip, int flags) in get_and_decode_packet() argument
367 flags = multiport_io(grip->gameport, flags, 0, &packet); in get_and_decode_packet()
368 grip->reads++; in get_and_decode_packet()
374 grip->bads++; in get_and_decode_packet()
384 port = grip->port[slot]; in get_and_decode_packet()
423 if (register_slot(slot, grip)) { in get_and_decode_packet()
448 static int slots_valid(struct grip_mp *grip) in slots_valid() argument
452 flags = get_and_decode_packet(grip, 0); in slots_valid()
457 if (grip->port[slot]->mode == GRIP_MODE_RESET) in slots_valid()
459 if (grip->port[slot]->mode != GRIP_MODE_NONE) in slots_valid()
476 static int multiport_init(struct grip_mp *grip) in multiport_init() argument
481 dig_mode = dig_mode_start(grip->gameport, &packet); in multiport_init()
483 dig_mode = dig_mode_start(grip->gameport, &packet); in multiport_init()
496 if (slots_valid(grip)) { in multiport_init()
509 static void report_slot(struct grip_mp *grip, int slot) in report_slot() argument
511 struct grip_port *port = grip->port[slot]; in report_slot()
537 struct grip_mp *grip = gameport_get_drvdata(gameport); in grip_poll() local
543 flags = get_and_decode_packet(grip, flags); in grip_poll()
552 if (grip->port[i]->dirty) in grip_poll()
553 report_slot(grip, i); in grip_poll()
562 struct grip_mp *grip = input_get_drvdata(dev); in grip_open() local
564 gameport_start_polling(grip->gameport); in grip_open()
574 struct grip_mp *grip = input_get_drvdata(dev); in grip_close() local
576 gameport_stop_polling(grip->gameport); in grip_close()
583 static int register_slot(int slot, struct grip_mp *grip) in register_slot() argument
585 struct grip_port *port = grip->port[slot]; in register_slot()
599 input_dev->dev.parent = &grip->gameport->dev; in register_slot()
601 input_set_drvdata(input_dev, grip); in register_slot()
624 report_slot(grip, slot); in register_slot()
631 struct grip_mp *grip; in grip_connect() local
634 if (!(grip = kzalloc(sizeof(struct grip_mp), GFP_KERNEL))) in grip_connect()
637 grip->gameport = gameport; in grip_connect()
639 gameport_set_drvdata(gameport, grip); in grip_connect()
648 if (!multiport_init(grip)) { in grip_connect()
653 if (!grip->port[0]->mode && !grip->port[1]->mode && !grip->port[2]->mode && !grip->port[3]->mode) { in grip_connect()
663 kfree(grip); in grip_connect()
669 struct grip_mp *grip = gameport_get_drvdata(gameport); in grip_disconnect() local
673 if (grip->port[i]->registered) in grip_disconnect()
674 input_unregister_device(grip->port[i]->dev); in grip_disconnect()
677 kfree(grip); in grip_disconnect()