Lines Matching defs:gameport

16 #include <linux/gameport.h>
52 struct gameport *gameport;
63 #define PACKET_IO_FAST 0x40000000 /* 3 bits per gameport read */
64 #define PACKET_IO_SLOW 0x20000000 /* 1 bit per gameport read */
73 #define IO_MODE_FAST 0x0200 /* Used 3 data bits per gameport read */
130 * Poll gameport; return true if all bits set in 'onbits' are on and
134 static inline int poll_until(u8 onbits, u8 offbits, int u_sec, struct gameport* gp, u8 *data)
145 dbg("gameport timed out after %d microseconds.\n", u_sec);
155 * The multiport clock value is reflected in gameport bit B4.
164 static int mp_io(struct gameport* gameport, int sendflags, int sendcode, u32 *packet)
166 u8 raw_data; /* raw data from gameport */
169 int bits_per_read; /* num packet bits per gameport read */
176 raw_data = gameport_read(gameport);
181 raw_data = gameport_read(gameport);
186 raw_data = gameport_read(gameport);
191 gameport_trigger(gameport);
193 if (!poll_until(0x10, 0, 308, gameport, &raw_data))
217 if (!poll_until(0, 0x10, 77, gameport, &raw_data))
225 if (!poll_until(0x10, 0, 77, gameport, &raw_data))
244 if (!poll_until(0x30, 0, 77, gameport, &raw_data))
247 raw_data = gameport_read(gameport);
252 gameport_trigger(gameport);
254 if (!poll_until(0, 0x20, 77, gameport, &raw_data))
268 if (!poll_until(0x20, 0, 77, gameport, &raw_data))
271 raw_data = gameport_read(gameport);
275 /* Trigger gameport based on bits in sendcode */
277 gameport_trigger(gameport);
279 if (!poll_until(0x20, 0x10, 116, gameport, &raw_data))
282 if (!poll_until(0x30, 0, 193, gameport, &raw_data))
289 gameport_trigger(gameport);
301 static int multiport_io(struct gameport* gameport, int sendflags, int sendcode, u32 *packet)
307 status = mp_io(gameport, sendflags, sendcode, packet);
319 static int dig_mode_start(struct gameport *gameport, u32 *packet)
326 gameport_trigger(gameport);
335 flags = multiport_io(gameport, IO_RESET, 0x27, packet);
368 flags = multiport_io(grip->gameport, flags, 0, &packet);
482 dig_mode = dig_mode_start(grip->gameport, &packet);
484 dig_mode = dig_mode_start(grip->gameport, &packet);
536 static void grip_poll(struct gameport *gameport)
538 struct grip_mp *grip = gameport_get_drvdata(gameport);
565 gameport_start_polling(grip->gameport);
577 gameport_stop_polling(grip->gameport);
600 input_dev->dev.parent = &grip->gameport->dev;
630 static int grip_connect(struct gameport *gameport, struct gameport_driver *drv)
638 grip->gameport = gameport;
640 gameport_set_drvdata(gameport, grip);
642 err = gameport_open(gameport, drv, GAMEPORT_MODE_RAW);
646 gameport_set_poll_handler(gameport, grip_poll);
647 gameport_set_poll_interval(gameport, 20);
662 fail2: gameport_close(gameport);
663 fail1: gameport_set_drvdata(gameport, NULL);
668 static void grip_disconnect(struct gameport *gameport)
670 struct grip_mp *grip = gameport_get_drvdata(gameport);
676 gameport_close(gameport);
677 gameport_set_drvdata(gameport, NULL);