Lines Matching +full:2 +full:k
49 static const unsigned char tmdc_byte_d[16] = { 2, 5, 8, 9 };
86 { 1, "ThrustMaster Millenium 3D Inceptor", 6, 2, { 4, 2 }, { 4, 6 }, tmdc_abs, tmdc_btn_joy },
87 { 3, "ThrustMaster Rage 3D Gamepad", 2, 0, { 8, 2 }, { 0, 0 }, tmdc_abs, tmdc_btn_pad },
88 { 4, "ThrustMaster Attack Throttle", 5, 2, { 4, 6 }, { 4, 2 }, tmdc_abs_at, tmdc_btn_at },
89 { 8, "ThrustMaster FragMaster", 4, 0, { 8, 2 }, { 0, 0 }, tmdc_abs_fm, tmdc_btn_fm },
90 { 163, "Thrustmaster Fusion GamePad", 2, 0, { 8, 2 }, { 0, 0 }, tmdc_abs, tmdc_btn_pad },
109 struct tmdc_port *port[2];
111 struct input_dev *dev[2];
112 char name[2][64];
113 char phys[2][32];
114 int mode[2];
115 signed char *abs[2];
116 short *btn[2];
117 unsigned char absc[2];
118 unsigned char btnc[2][4];
119 unsigned char btno[2][4];
130 static int tmdc_read_packet(struct gameport *gameport, unsigned char data[2][TMDC_MAX_LENGTH]) in tmdc_read_packet()
134 int i[2], j[2], t[2], p, k; in tmdc_read_packet() local
138 for (k = 0; k < 2; k++) { in tmdc_read_packet()
139 t[k] = gameport_time(gameport, TMDC_MAX_START); in tmdc_read_packet()
140 i[k] = j[k] = 0; in tmdc_read_packet()
152 for (k = 0, v = w, u = x; k < 2; k++, v >>= 2, u >>= 2) { in tmdc_read_packet()
153 if (~v & u & 2) { in tmdc_read_packet()
154 if (t[k] <= 0 || i[k] >= TMDC_MAX_LENGTH) continue; in tmdc_read_packet()
155 t[k] = p; in tmdc_read_packet()
156 if (j[k] == 0) { /* Start bit */ in tmdc_read_packet()
157 if (~v & 1) t[k] = 0; in tmdc_read_packet()
158 data[k][i[k]] = 0; j[k]++; continue; in tmdc_read_packet()
160 if (j[k] == 9) { /* Stop bit */ in tmdc_read_packet()
161 if (v & 1) t[k] = 0; in tmdc_read_packet()
162 j[k] = 0; i[k]++; continue; in tmdc_read_packet()
164 data[k][i[k]] |= (~v & 1) << (j[k]++ - 1); /* Data bit */ in tmdc_read_packet()
166 t[k]--; in tmdc_read_packet()
177 int i, k, l; in tmdc_parse_packet() local
195 input_report_abs(port->dev, ABS_HAT0Y, ((data[i] >> 2) & 1) - ( data[i] & 1)); in tmdc_parse_packet()
207 for (k = l = 0; k < 4; k++) { in tmdc_parse_packet()
208 for (i = 0; i < port->btnc[k]; i++) in tmdc_parse_packet()
210 ((data[tmdc_byte_d[k]] >> (i + port->btno[k])) & 1)); in tmdc_parse_packet()
211 l += port->btnc[k]; in tmdc_parse_packet()
225 unsigned char data[2][TMDC_MAX_LENGTH]; in tmdc_poll()
235 for (i = 0; i < 2; i++) { in tmdc_poll()
321 input_set_abs_params(input_dev, port->abs[i], 8, 248, 2, 4); in tmdc_setup_port()
349 unsigned char data[2][TMDC_MAX_LENGTH]; in tmdc_connect()
373 for (i = 0; i < 2; i++) { in tmdc_connect()
401 for (i = 0; i < 2; i++) { in tmdc_disconnect()