Lines Matching full:interact
10 * InterAct digital gamepad/joystick driver for Linux
21 #define DRIVER_DESC "InterAct digital joystick driver"
34 struct interact { struct
64 { 0x6202, interact_abs_hhfx, interact_btn_hhfx, "InterAct HammerHead/FX", 32, 4 },
65 { 0x53f8, interact_abs_pp8d, interact_btn_pp8d, "InterAct ProPad 8 Digital", 16, 0 },
69 * interact_read_packet() reads and InterAct joystick data.
106 * interact_poll() reads and analyzes InterAct joystick data.
111 struct interact *interact = gameport_get_drvdata(gameport); in interact_poll() local
112 struct input_dev *dev = interact->dev; in interact_poll()
116 interact->reads++; in interact_poll()
118 if (interact_read_packet(interact->gameport, interact->length, data) < interact->length) { in interact_poll()
119 interact->bads++; in interact_poll()
123 data[i] <<= INTERACT_MAX_LENGTH - interact->length; in interact_poll()
125 switch (interact->type) { in interact_poll()
166 struct interact *interact = input_get_drvdata(dev); in interact_open() local
168 gameport_start_polling(interact->gameport); in interact_open()
178 struct interact *interact = input_get_drvdata(dev); in interact_close() local
180 gameport_stop_polling(interact->gameport); in interact_close()
184 * interact_connect() probes for InterAct joysticks.
189 struct interact *interact; in interact_connect() local
195 interact = kzalloc(sizeof(*interact), GFP_KERNEL); in interact_connect()
197 if (!interact || !input_dev) { in interact_connect()
202 interact->gameport = gameport; in interact_connect()
203 interact->dev = input_dev; in interact_connect()
205 gameport_set_drvdata(gameport, interact); in interact_connect()
223 printk(KERN_WARNING "interact.c: Unknown joystick on %s. [len %d d0 %08x d1 %08x i2 %08x]\n", in interact_connect()
232 snprintf(interact->phys, sizeof(interact->phys), "%s/input0", gameport->phys); in interact_connect()
234 interact->type = i; in interact_connect()
235 interact->length = interact_type[i].length; in interact_connect()
238 input_dev->phys = interact->phys; in interact_connect()
245 input_set_drvdata(input_dev, interact); in interact_connect()
252 for (i = 0; (t = interact_type[interact->type].abs[i]) >= 0; i++) { in interact_connect()
253 if (i < interact_type[interact->type].b8) in interact_connect()
259 for (i = 0; (t = interact_type[interact->type].btn[i]) >= 0; i++) in interact_connect()
262 err = input_register_device(interact->dev); in interact_connect()
271 kfree(interact); in interact_connect()
277 struct interact *interact = gameport_get_drvdata(gameport); in interact_disconnect() local
279 input_unregister_device(interact->dev); in interact_disconnect()
282 kfree(interact); in interact_disconnect()
287 .name = "interact",