Lines Matching refs:tmdc
119 struct tmdc { struct
238 struct tmdc *tmdc = gameport_get_drvdata(gameport); in tmdc_poll() local
242 tmdc->reads++; in tmdc_poll()
244 if ((r = tmdc_read_packet(tmdc->gameport, data)) != tmdc->exists) in tmdc_poll()
248 if (r & (1 << i) & tmdc->exists) { in tmdc_poll()
250 if (tmdc_parse_packet(tmdc->port[i], data[i])) in tmdc_poll()
256 tmdc->bads += bad; in tmdc_poll()
261 struct tmdc *tmdc = input_get_drvdata(dev); in tmdc_open() local
263 gameport_start_polling(tmdc->gameport); in tmdc_open()
269 struct tmdc *tmdc = input_get_drvdata(dev); in tmdc_close() local
271 gameport_stop_polling(tmdc->gameport); in tmdc_close()
274 static int tmdc_setup_port(struct tmdc *tmdc, int idx, unsigned char *data) in tmdc_setup_port() argument
282 tmdc->port[idx] = port = kzalloc(sizeof (struct tmdc_port), GFP_KERNEL); in tmdc_setup_port()
312 snprintf(port->phys, sizeof(port->phys), "%s/input%d", tmdc->gameport->phys, i); in tmdc_setup_port()
322 input_dev->dev.parent = &tmdc->gameport->dev; in tmdc_setup_port()
324 input_set_drvdata(input_dev, tmdc); in tmdc_setup_port()
362 struct tmdc *tmdc; in tmdc_connect() local
366 if (!(tmdc = kzalloc(sizeof(struct tmdc), GFP_KERNEL))) in tmdc_connect()
369 tmdc->gameport = gameport; in tmdc_connect()
371 gameport_set_drvdata(gameport, tmdc); in tmdc_connect()
377 if (!(tmdc->exists = tmdc_read_packet(gameport, data))) { in tmdc_connect()
386 if (tmdc->exists & (1 << i)) { in tmdc_connect()
388 err = tmdc_setup_port(tmdc, i, data[i]); in tmdc_connect()
397 if (tmdc->port[i]) { in tmdc_connect()
398 input_unregister_device(tmdc->port[i]->dev); in tmdc_connect()
399 kfree(tmdc->port[i]); in tmdc_connect()
404 kfree(tmdc); in tmdc_connect()
410 struct tmdc *tmdc = gameport_get_drvdata(gameport); in tmdc_disconnect() local
414 if (tmdc->port[i]) { in tmdc_disconnect()
415 input_unregister_device(tmdc->port[i]->dev); in tmdc_disconnect()
416 kfree(tmdc->port[i]); in tmdc_disconnect()
421 kfree(tmdc); in tmdc_disconnect()