Lines Matching refs:tmdc
107 struct tmdc { struct
226 struct tmdc *tmdc = gameport_get_drvdata(gameport); in tmdc_poll() local
230 tmdc->reads++; in tmdc_poll()
232 if ((r = tmdc_read_packet(tmdc->gameport, data)) != tmdc->exists) in tmdc_poll()
236 if (r & (1 << i) & tmdc->exists) { in tmdc_poll()
238 if (tmdc_parse_packet(tmdc->port[i], data[i])) in tmdc_poll()
244 tmdc->bads += bad; in tmdc_poll()
249 struct tmdc *tmdc = input_get_drvdata(dev); in tmdc_open() local
251 gameport_start_polling(tmdc->gameport); in tmdc_open()
257 struct tmdc *tmdc = input_get_drvdata(dev); in tmdc_close() local
259 gameport_stop_polling(tmdc->gameport); in tmdc_close()
262 static int tmdc_setup_port(struct tmdc *tmdc, int idx, unsigned char *data) in tmdc_setup_port() argument
270 tmdc->port[idx] = port = kzalloc(sizeof (struct tmdc_port), GFP_KERNEL); in tmdc_setup_port()
300 snprintf(port->phys, sizeof(port->phys), "%s/input%d", tmdc->gameport->phys, i); in tmdc_setup_port()
310 input_dev->dev.parent = &tmdc->gameport->dev; in tmdc_setup_port()
312 input_set_drvdata(input_dev, tmdc); in tmdc_setup_port()
350 struct tmdc *tmdc; in tmdc_connect() local
354 if (!(tmdc = kzalloc(sizeof(struct tmdc), GFP_KERNEL))) in tmdc_connect()
357 tmdc->gameport = gameport; in tmdc_connect()
359 gameport_set_drvdata(gameport, tmdc); in tmdc_connect()
365 if (!(tmdc->exists = tmdc_read_packet(gameport, data))) { in tmdc_connect()
374 if (tmdc->exists & (1 << i)) { in tmdc_connect()
376 err = tmdc_setup_port(tmdc, i, data[i]); in tmdc_connect()
385 if (tmdc->port[i]) { in tmdc_connect()
386 input_unregister_device(tmdc->port[i]->dev); in tmdc_connect()
387 kfree(tmdc->port[i]); in tmdc_connect()
392 kfree(tmdc); in tmdc_connect()
398 struct tmdc *tmdc = gameport_get_drvdata(gameport); in tmdc_disconnect() local
402 if (tmdc->port[i]) { in tmdc_disconnect()
403 input_unregister_device(tmdc->port[i]->dev); in tmdc_disconnect()
404 kfree(tmdc->port[i]); in tmdc_disconnect()
409 kfree(tmdc); in tmdc_disconnect()