Lines Matching +full:2 +full:k
46 static const unsigned char tmdc_byte_d[16] = { 2, 5, 8, 9 };
83 { 1, "ThrustMaster Millennium 3D Inceptor", 6, 2, { 4, 2 }, { 4, 6 }, tmdc_abs, tmdc_btn_joy },
84 { 3, "ThrustMaster Rage 3D Gamepad", 2, 0, { 8, 2 }, { 0, 0 }, tmdc_abs, tmdc_btn_pad },
85 { 4, "ThrustMaster Attack Throttle", 5, 2, { 4, 6 }, { 4, 2 }, tmdc_abs_at, tmdc_btn_at },
86 { 8, "ThrustMaster FragMaster", 4, 0, { 8, 2 }, { 0, 0 }, tmdc_abs_fm, tmdc_btn_fm },
87 { 163, "Thrustmaster Fusion GamePad", 2, 0, { 8, 2 }, { 0, 0 }, tmdc_abs, tmdc_btn_pad },
106 struct tmdc_port *port[2];
108 struct input_dev *dev[2];
109 char name[2][64];
110 char phys[2][32];
111 int mode[2];
112 signed char *abs[2];
113 short *btn[2];
114 unsigned char absc[2];
115 unsigned char btnc[2][4];
116 unsigned char btno[2][4];
127 static int tmdc_read_packet(struct gameport *gameport, unsigned char data[2][TMDC_MAX_LENGTH]) in tmdc_read_packet()
131 int i[2], j[2], t[2], p, k; in tmdc_read_packet() local
135 for (k = 0; k < 2; k++) { in tmdc_read_packet()
136 t[k] = gameport_time(gameport, TMDC_MAX_START); in tmdc_read_packet()
137 i[k] = j[k] = 0; in tmdc_read_packet()
149 for (k = 0, v = w, u = x; k < 2; k++, v >>= 2, u >>= 2) { in tmdc_read_packet()
150 if (~v & u & 2) { in tmdc_read_packet()
151 if (t[k] <= 0 || i[k] >= TMDC_MAX_LENGTH) continue; in tmdc_read_packet()
152 t[k] = p; in tmdc_read_packet()
153 if (j[k] == 0) { /* Start bit */ in tmdc_read_packet()
154 if (~v & 1) t[k] = 0; in tmdc_read_packet()
155 data[k][i[k]] = 0; j[k]++; continue; in tmdc_read_packet()
157 if (j[k] == 9) { /* Stop bit */ in tmdc_read_packet()
158 if (v & 1) t[k] = 0; in tmdc_read_packet()
159 j[k] = 0; i[k]++; continue; in tmdc_read_packet()
161 data[k][i[k]] |= (~v & 1) << (j[k]++ - 1); /* Data bit */ in tmdc_read_packet()
163 t[k]--; in tmdc_read_packet()
174 int i, k, l; in tmdc_parse_packet() local
192 input_report_abs(port->dev, ABS_HAT0Y, ((data[i] >> 2) & 1) - ( data[i] & 1)); in tmdc_parse_packet()
204 for (k = l = 0; k < 4; k++) { in tmdc_parse_packet()
205 for (i = 0; i < port->btnc[k]; i++) in tmdc_parse_packet()
207 ((data[tmdc_byte_d[k]] >> (i + port->btno[k])) & 1)); in tmdc_parse_packet()
208 l += port->btnc[k]; in tmdc_parse_packet()
222 unsigned char data[2][TMDC_MAX_LENGTH]; in tmdc_poll()
232 for (i = 0; i < 2; i++) { in tmdc_poll()
318 input_set_abs_params(input_dev, port->abs[i], 8, 248, 2, 4); in tmdc_setup_port()
346 unsigned char data[2][TMDC_MAX_LENGTH]; in tmdc_connect()
370 for (i = 0; i < 2; i++) { in tmdc_connect()
398 for (i = 0; i < 2; i++) { in tmdc_disconnect()