Lines Matching refs:tmdc
123 struct tmdc { struct
242 struct tmdc *tmdc = gameport_get_drvdata(gameport); in tmdc_poll() local
246 tmdc->reads++; in tmdc_poll()
248 if ((r = tmdc_read_packet(tmdc->gameport, data)) != tmdc->exists) in tmdc_poll()
252 if (r & (1 << i) & tmdc->exists) { in tmdc_poll()
254 if (tmdc_parse_packet(tmdc->port[i], data[i])) in tmdc_poll()
260 tmdc->bads += bad; in tmdc_poll()
265 struct tmdc *tmdc = input_get_drvdata(dev); in tmdc_open() local
267 gameport_start_polling(tmdc->gameport); in tmdc_open()
273 struct tmdc *tmdc = input_get_drvdata(dev); in tmdc_close() local
275 gameport_stop_polling(tmdc->gameport); in tmdc_close()
278 static int tmdc_setup_port(struct tmdc *tmdc, int idx, unsigned char *data) in tmdc_setup_port() argument
286 tmdc->port[idx] = port = kzalloc(sizeof (struct tmdc_port), GFP_KERNEL); in tmdc_setup_port()
316 snprintf(port->phys, sizeof(port->phys), "%s/input%d", tmdc->gameport->phys, i); in tmdc_setup_port()
326 input_dev->dev.parent = &tmdc->gameport->dev; in tmdc_setup_port()
328 input_set_drvdata(input_dev, tmdc); in tmdc_setup_port()
366 struct tmdc *tmdc; in tmdc_connect() local
370 if (!(tmdc = kzalloc(sizeof(struct tmdc), GFP_KERNEL))) in tmdc_connect()
373 tmdc->gameport = gameport; in tmdc_connect()
375 gameport_set_drvdata(gameport, tmdc); in tmdc_connect()
381 if (!(tmdc->exists = tmdc_read_packet(gameport, data))) { in tmdc_connect()
390 if (tmdc->exists & (1 << i)) { in tmdc_connect()
392 err = tmdc_setup_port(tmdc, i, data[i]); in tmdc_connect()
401 if (tmdc->port[i]) { in tmdc_connect()
402 input_unregister_device(tmdc->port[i]->dev); in tmdc_connect()
403 kfree(tmdc->port[i]); in tmdc_connect()
408 kfree(tmdc); in tmdc_connect()
414 struct tmdc *tmdc = gameport_get_drvdata(gameport); in tmdc_disconnect() local
418 if (tmdc->port[i]) { in tmdc_disconnect()
419 input_unregister_device(tmdc->port[i]->dev); in tmdc_disconnect()
420 kfree(tmdc->port[i]); in tmdc_disconnect()
425 kfree(tmdc); in tmdc_disconnect()