|
@@ -259,6 +259,7 @@ static unsigned char db9_saturn_read_packet(struct parport *port, unsigned char
|
|
|
db9_saturn_write_sub(port, type, 3, powered, 0);
|
|
|
return data[0] = 0xe3;
|
|
|
}
|
|
|
+ /* else: fall through */
|
|
|
default:
|
|
|
return data[0];
|
|
|
}
|
|
@@ -278,11 +279,14 @@ static int db9_saturn_report(unsigned char id, unsigned char data[60], struct in
|
|
|
switch (data[j]) {
|
|
|
case 0x16: /* multi controller (analog 4 axis) */
|
|
|
input_report_abs(dev, db9_abs[5], data[j + 6]);
|
|
|
+ /* fall through */
|
|
|
case 0x15: /* mission stick (analog 3 axis) */
|
|
|
input_report_abs(dev, db9_abs[3], data[j + 4]);
|
|
|
input_report_abs(dev, db9_abs[4], data[j + 5]);
|
|
|
+ /* fall through */
|
|
|
case 0x13: /* racing controller (analog 1 axis) */
|
|
|
input_report_abs(dev, db9_abs[2], data[j + 3]);
|
|
|
+ /* fall through */
|
|
|
case 0x34: /* saturn keyboard (udlr ZXC ASD QE Esc) */
|
|
|
case 0x02: /* digital pad (digital 2 axis + buttons) */
|
|
|
input_report_abs(dev, db9_abs[0], !(data[j + 1] & 128) - !(data[j + 1] & 64));
|
|
@@ -376,6 +380,7 @@ static void db9_timer(struct timer_list *t)
|
|
|
input_report_abs(dev2, ABS_X, (data & DB9_RIGHT ? 0 : 1) - (data & DB9_LEFT ? 0 : 1));
|
|
|
input_report_abs(dev2, ABS_Y, (data & DB9_DOWN ? 0 : 1) - (data & DB9_UP ? 0 : 1));
|
|
|
input_report_key(dev2, BTN_TRIGGER, ~data & DB9_FIRE1);
|
|
|
+ /* fall through */
|
|
|
|
|
|
case DB9_MULTI_0802:
|
|
|
|