Lines Matching refs:gameport
81 struct gameport *gameport; member
94 static int gf2k_read_packet(struct gameport *gameport, int length, char *data) in gf2k_read_packet() argument
101 t = gameport_time(gameport, GF2K_START); in gf2k_read_packet()
102 p = gameport_time(gameport, GF2K_STROBE); in gf2k_read_packet()
108 gameport_trigger(gameport); in gf2k_read_packet()
109 v = gameport_read(gameport); in gf2k_read_packet()
113 v = gameport_read(gameport); in gf2k_read_packet()
130 static void gf2k_trigger_seq(struct gameport *gameport, short *seq) in gf2k_trigger_seq() argument
140 gameport_trigger(gameport); in gf2k_trigger_seq()
141 t = gameport_time(gameport, GF2K_TIMEOUT * 1000); in gf2k_trigger_seq()
142 while ((gameport_read(gameport) & 1) && t) t--; in gf2k_trigger_seq()
146 gameport_trigger(gameport); in gf2k_trigger_seq()
205 static void gf2k_poll(struct gameport *gameport) in gf2k_poll() argument
207 struct gf2k *gf2k = gameport_get_drvdata(gameport); in gf2k_poll()
212 if (gf2k_read_packet(gf2k->gameport, gf2k_length[gf2k->id], data) < gf2k_length[gf2k->id]) in gf2k_poll()
222 gameport_start_polling(gf2k->gameport); in gf2k_open()
230 gameport_stop_polling(gf2k->gameport); in gf2k_close()
237 static int gf2k_connect(struct gameport *gameport, struct gameport_driver *drv) in gf2k_connect() argument
251 gf2k->gameport = gameport; in gf2k_connect()
254 gameport_set_drvdata(gameport, gf2k); in gf2k_connect()
256 err = gameport_open(gameport, drv, GAMEPORT_MODE_RAW); in gf2k_connect()
260 gf2k_trigger_seq(gameport, gf2k_seq_reset); in gf2k_connect()
264 gf2k_trigger_seq(gameport, gf2k_seq_digital); in gf2k_connect()
268 if (gf2k_read_packet(gameport, GF2K_LENGTH, data) < 12) { in gf2k_connect()
290 gameport->phys, gf2k->id, gf2k->id > GF2K_ID_MAX ? "Unknown" : gf2k_names[gf2k->id]); in gf2k_connect()
295 gameport_set_poll_handler(gameport, gf2k_poll); in gf2k_connect()
296 gameport_set_poll_interval(gameport, 20); in gf2k_connect()
298 snprintf(gf2k->phys, sizeof(gf2k->phys), "%s/input0", gameport->phys); in gf2k_connect()
308 input_dev->dev.parent = &gameport->dev; in gf2k_connect()
329 gf2k_read_packet(gameport, gf2k->length, data); in gf2k_connect()
349 fail2: gameport_close(gameport); in gf2k_connect()
350 fail1: gameport_set_drvdata(gameport, NULL); in gf2k_connect()
356 static void gf2k_disconnect(struct gameport *gameport) in gf2k_disconnect() argument
358 struct gf2k *gf2k = gameport_get_drvdata(gameport); in gf2k_disconnect()
361 gameport_close(gameport); in gf2k_disconnect()
362 gameport_set_drvdata(gameport, NULL); in gf2k_disconnect()