diff options
| -rw-r--r-- | drivers/input/mouse/logips2pp.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/input/mouse/logips2pp.c b/drivers/input/mouse/logips2pp.c index 2f0d28840810..eb03f3a3f8a7 100644 --- a/drivers/input/mouse/logips2pp.c +++ b/drivers/input/mouse/logips2pp.c | |||
| @@ -30,9 +30,9 @@ | |||
| 30 | #define PS2PP_NAV_BTN 0x20 | 30 | #define PS2PP_NAV_BTN 0x20 |
| 31 | 31 | ||
| 32 | struct ps2pp_info { | 32 | struct ps2pp_info { |
| 33 | const int model; | 33 | u8 model; |
| 34 | unsigned const int kind; | 34 | u8 kind; |
| 35 | unsigned const int features; | 35 | u16 features; |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| 38 | /* | 38 | /* |
| @@ -199,9 +199,9 @@ static void ps2pp_disconnect(struct psmouse *psmouse) | |||
| 199 | device_remove_file(&psmouse->ps2dev.serio->dev, &psmouse_attr_smartscroll.dattr); | 199 | device_remove_file(&psmouse->ps2dev.serio->dev, &psmouse_attr_smartscroll.dattr); |
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | static struct ps2pp_info *get_model_info(unsigned char model) | 202 | static const struct ps2pp_info *get_model_info(unsigned char model) |
| 203 | { | 203 | { |
| 204 | static struct ps2pp_info ps2pp_list[] = { | 204 | static const struct ps2pp_info ps2pp_list[] = { |
| 205 | { 12, 0, PS2PP_SIDE_BTN}, | 205 | { 12, 0, PS2PP_SIDE_BTN}, |
| 206 | { 13, 0, 0 }, | 206 | { 13, 0, 0 }, |
| 207 | { 15, PS2PP_KIND_MX, /* MX1000 */ | 207 | { 15, PS2PP_KIND_MX, /* MX1000 */ |
| @@ -215,6 +215,7 @@ static struct ps2pp_info *get_model_info(unsigned char model) | |||
| 215 | { 51, 0, 0 }, | 215 | { 51, 0, 0 }, |
| 216 | { 52, PS2PP_KIND_WHEEL, PS2PP_SIDE_BTN | PS2PP_WHEEL }, | 216 | { 52, PS2PP_KIND_WHEEL, PS2PP_SIDE_BTN | PS2PP_WHEEL }, |
| 217 | { 53, PS2PP_KIND_WHEEL, PS2PP_WHEEL }, | 217 | { 53, PS2PP_KIND_WHEEL, PS2PP_WHEEL }, |
| 218 | { 56, PS2PP_KIND_WHEEL, PS2PP_SIDE_BTN | PS2PP_WHEEL }, /* Cordless MouseMan Wheel */ | ||
| 218 | { 61, PS2PP_KIND_MX, /* MX700 */ | 219 | { 61, PS2PP_KIND_MX, /* MX700 */ |
| 219 | PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_TASK_BTN | | 220 | PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_TASK_BTN | |
| 220 | PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, | 221 | PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, |
| @@ -245,12 +246,11 @@ static struct ps2pp_info *get_model_info(unsigned char model) | |||
| 245 | PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, | 246 | PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, |
| 246 | { 114, PS2PP_KIND_MX, /* MX310 */ | 247 | { 114, PS2PP_KIND_MX, /* MX310 */ |
| 247 | PS2PP_WHEEL | PS2PP_SIDE_BTN | | 248 | PS2PP_WHEEL | PS2PP_SIDE_BTN | |
| 248 | PS2PP_TASK_BTN | PS2PP_EXTRA_BTN }, | 249 | PS2PP_TASK_BTN | PS2PP_EXTRA_BTN } |
| 249 | { } | ||
| 250 | }; | 250 | }; |
| 251 | int i; | 251 | int i; |
| 252 | 252 | ||
| 253 | for (i = 0; ps2pp_list[i].model; i++) | 253 | for (i = 0; i < ARRAY_SIZE(ps2pp_list); i++) |
| 254 | if (model == ps2pp_list[i].model) | 254 | if (model == ps2pp_list[i].model) |
| 255 | return &ps2pp_list[i]; | 255 | return &ps2pp_list[i]; |
| 256 | 256 | ||
| @@ -262,7 +262,8 @@ static struct ps2pp_info *get_model_info(unsigned char model) | |||
| 262 | * Set up input device's properties based on the detected mouse model. | 262 | * Set up input device's properties based on the detected mouse model. |
| 263 | */ | 263 | */ |
| 264 | 264 | ||
| 265 | static void ps2pp_set_model_properties(struct psmouse *psmouse, struct ps2pp_info *model_info, | 265 | static void ps2pp_set_model_properties(struct psmouse *psmouse, |
| 266 | const struct ps2pp_info *model_info, | ||
| 266 | int using_ps2pp) | 267 | int using_ps2pp) |
| 267 | { | 268 | { |
| 268 | struct input_dev *input_dev = psmouse->dev; | 269 | struct input_dev *input_dev = psmouse->dev; |
| @@ -328,7 +329,7 @@ int ps2pp_init(struct psmouse *psmouse, int set_properties) | |||
| 328 | struct ps2dev *ps2dev = &psmouse->ps2dev; | 329 | struct ps2dev *ps2dev = &psmouse->ps2dev; |
| 329 | unsigned char param[4]; | 330 | unsigned char param[4]; |
| 330 | unsigned char model, buttons; | 331 | unsigned char model, buttons; |
| 331 | struct ps2pp_info *model_info; | 332 | const struct ps2pp_info *model_info; |
| 332 | int use_ps2pp = 0; | 333 | int use_ps2pp = 0; |
| 333 | 334 | ||
| 334 | param[0] = 0; | 335 | param[0] = 0; |
| @@ -350,7 +351,7 @@ int ps2pp_init(struct psmouse *psmouse, int set_properties) | |||
| 350 | /* | 351 | /* |
| 351 | * Do Logitech PS2++ / PS2T++ magic init. | 352 | * Do Logitech PS2++ / PS2T++ magic init. |
| 352 | */ | 353 | */ |
| 353 | if (model == 97) { /* Touch Pad 3 */ | 354 | if (model_info->kind == PS2PP_KIND_TP3) { /* Touch Pad 3 */ |
| 354 | 355 | ||
| 355 | /* Unprotect RAM */ | 356 | /* Unprotect RAM */ |
| 356 | param[0] = 0x11; param[1] = 0x04; param[2] = 0x68; | 357 | param[0] = 0x11; param[1] = 0x04; param[2] = 0x68; |
