diff options
Diffstat (limited to 'drivers/input/joystick/sidewinder.c')
| -rw-r--r-- | drivers/input/joystick/sidewinder.c | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c index 04c69af37148..3a5873e5fcb3 100644 --- a/drivers/input/joystick/sidewinder.c +++ b/drivers/input/joystick/sidewinder.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 1998-2005 Vojtech Pavlik */ @@ -6,34 +7,14 @@ * Microsoft SideWinder joystick family driver for Linux */ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Should you need to contact me, the author, you can do so either by - * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail: - * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic - */ - #include <linux/delay.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> -#include <linux/init.h> #include <linux/input.h> #include <linux/gameport.h> #include <linux/jiffies.h> +#include <linux/string_choices.h> #define DRIVER_DESC "Microsoft SideWinder joystick family driver" @@ -240,7 +221,7 @@ static __u64 sw_get_bits(unsigned char *buf, int pos, int num, char bits) static void sw_init_digital(struct gameport *gameport) { - int seq[] = { 140, 140+725, 140+300, 0 }; + static const int seq[] = { 140, 140+725, 140+300, 0 }; unsigned long flags; int i, t; @@ -597,7 +578,7 @@ static int sw_connect(struct gameport *gameport, struct gameport_driver *drv) comment[0] = 0; - sw = kzalloc(sizeof(struct sw), GFP_KERNEL); + sw = kzalloc(sizeof(*sw), GFP_KERNEL); buf = kmalloc(SW_LENGTH, GFP_KERNEL); idbuf = kmalloc(SW_LENGTH, GFP_KERNEL); if (!sw || !buf || !idbuf) { @@ -674,15 +655,19 @@ static int sw_connect(struct gameport *gameport, struct gameport_driver *drv) switch (i * m) { case 60: sw->number++; + fallthrough; case 45: /* Ambiguous packet length */ if (j <= 40) { /* ID length less or eq 40 -> FSP */ + fallthrough; case 43: sw->type = SW_ID_FSP; break; } sw->number++; + fallthrough; case 30: sw->number++; + fallthrough; case 15: sw->type = SW_ID_GP; break; @@ -693,14 +678,16 @@ static int sw_connect(struct gameport *gameport, struct gameport_driver *drv) case 48: /* Ambiguous */ if (j == 14) { /* ID length 14*3 -> FFP */ sw->type = SW_ID_FFP; - sprintf(comment, " [AC %s]", sw_get_bits(idbuf,38,1,3) ? "off" : "on"); + sprintf(comment, " [AC %s]", str_off_on(sw_get_bits(idbuf,38,1,3))); } else sw->type = SW_ID_PP; break; case 66: sw->bits = 3; + fallthrough; case 198: sw->length = 22; + fallthrough; case 64: sw->type = SW_ID_3DP; if (j == 160) |
