* Unfortunately I don't know how to do this for the other SW types.
*/
-static void sw_3dp_id(unsigned char *buf, char *comment, size_t size)
+static void sw_3dp_id(unsigned char *buf, char *comment)
{
int i;
char pnp[8], rev[9];
pnp[7] = rev[8] = 0;
- snprintf(comment, size, " [PnP %d.%02d id %s rev %s]",
+ sprintf(comment, " [PnP %d.%02d id %s rev %s]",
(int) ((sw_get_bits(buf, 8, 6, 1) << 6) | /* Two 6-bit values */
sw_get_bits(buf, 16, 6, 1)) / 100,
(int) ((sw_get_bits(buf, 8, 6, 1) << 6) |
struct sw *sw;
struct input_dev *input_dev;
int i, j, k, l;
- int err = 0;
+ int err;
unsigned char *buf = NULL; /* [SW_LENGTH] */
unsigned char *idbuf = NULL; /* [SW_LENGTH] */
unsigned char m = 1;
sw->type = SW_ID_FFP;
sprintf(comment, " [AC %s]", sw_get_bits(idbuf,38,1,3) ? "off" : "on");
} else
- sw->type = SW_ID_PP;
+ sw->type = SW_ID_PP;
break;
case 66:
sw->bits = 3;
sw->length = 22;
case 64:
sw->type = SW_ID_3DP;
- if (j == 160)
- sw_3dp_id(idbuf, comment, sizeof(comment));
+ if (j == 160) sw_3dp_id(idbuf, comment);
break;
}
}
for (i = 0; i < sw->number; i++) {
int bits, code;
- snprintf(sw->name, sizeof(sw->name),
- "Microsoft SideWinder %s", sw_name[sw->type]);
- snprintf(sw->phys[i], sizeof(sw->phys[i]),
- "%s/input%d", gameport->phys, i);
+ sprintf(sw->name, "Microsoft SideWinder %s", sw_name[sw->type]);
+ sprintf(sw->phys[i], "%s/input%d", gameport->phys, i);
sw->dev[i] = input_dev = input_allocate_device();
if (!input_dev) {
goto fail4;
}
- out: kfree(buf);
- kfree(idbuf);
-
- return err;
+ return 0;
fail4: input_free_device(sw->dev[i]);
fail3: while (--i >= 0)
fail2: gameport_close(gameport);
fail1: gameport_set_drvdata(gameport, NULL);
kfree(sw);
- goto out;
+ kfree(buf);
+ kfree(idbuf);
+ return err;
}
static void sw_disconnect(struct gameport *gameport)