Loading drivers/input/mouse/logips2pp.c +12 −11 Original line number Original line Diff line number Diff line Loading @@ -30,9 +30,9 @@ #define PS2PP_NAV_BTN 0x20 #define PS2PP_NAV_BTN 0x20 struct ps2pp_info { struct ps2pp_info { const int model; u8 model; unsigned const int kind; u8 kind; unsigned const int features; u16 features; }; }; /* /* Loading Loading @@ -199,9 +199,9 @@ static void ps2pp_disconnect(struct psmouse *psmouse) device_remove_file(&psmouse->ps2dev.serio->dev, &psmouse_attr_smartscroll.dattr); device_remove_file(&psmouse->ps2dev.serio->dev, &psmouse_attr_smartscroll.dattr); } } static struct ps2pp_info *get_model_info(unsigned char model) static const struct ps2pp_info *get_model_info(unsigned char model) { { static struct ps2pp_info ps2pp_list[] = { static const struct ps2pp_info ps2pp_list[] = { { 12, 0, PS2PP_SIDE_BTN}, { 12, 0, PS2PP_SIDE_BTN}, { 13, 0, 0 }, { 13, 0, 0 }, { 15, PS2PP_KIND_MX, /* MX1000 */ { 15, PS2PP_KIND_MX, /* MX1000 */ Loading @@ -215,6 +215,7 @@ static struct ps2pp_info *get_model_info(unsigned char model) { 51, 0, 0 }, { 51, 0, 0 }, { 52, PS2PP_KIND_WHEEL, PS2PP_SIDE_BTN | PS2PP_WHEEL }, { 52, PS2PP_KIND_WHEEL, PS2PP_SIDE_BTN | PS2PP_WHEEL }, { 53, PS2PP_KIND_WHEEL, PS2PP_WHEEL }, { 53, PS2PP_KIND_WHEEL, PS2PP_WHEEL }, { 56, PS2PP_KIND_WHEEL, PS2PP_SIDE_BTN | PS2PP_WHEEL }, /* Cordless MouseMan Wheel */ { 61, PS2PP_KIND_MX, /* MX700 */ { 61, PS2PP_KIND_MX, /* MX700 */ PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_TASK_BTN | PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_TASK_BTN | PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, Loading Loading @@ -245,12 +246,11 @@ static struct ps2pp_info *get_model_info(unsigned char model) PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, { 114, PS2PP_KIND_MX, /* MX310 */ { 114, PS2PP_KIND_MX, /* MX310 */ PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_TASK_BTN | PS2PP_EXTRA_BTN }, PS2PP_TASK_BTN | PS2PP_EXTRA_BTN } { } }; }; int i; int i; for (i = 0; ps2pp_list[i].model; i++) for (i = 0; i < ARRAY_SIZE(ps2pp_list); i++) if (model == ps2pp_list[i].model) if (model == ps2pp_list[i].model) return &ps2pp_list[i]; return &ps2pp_list[i]; Loading @@ -262,7 +262,8 @@ static struct ps2pp_info *get_model_info(unsigned char model) * Set up input device's properties based on the detected mouse model. * Set up input device's properties based on the detected mouse model. */ */ static void ps2pp_set_model_properties(struct psmouse *psmouse, struct ps2pp_info *model_info, static void ps2pp_set_model_properties(struct psmouse *psmouse, const struct ps2pp_info *model_info, int using_ps2pp) int using_ps2pp) { { struct input_dev *input_dev = psmouse->dev; struct input_dev *input_dev = psmouse->dev; Loading Loading @@ -328,7 +329,7 @@ int ps2pp_init(struct psmouse *psmouse, int set_properties) struct ps2dev *ps2dev = &psmouse->ps2dev; struct ps2dev *ps2dev = &psmouse->ps2dev; unsigned char param[4]; unsigned char param[4]; unsigned char model, buttons; unsigned char model, buttons; struct ps2pp_info *model_info; const struct ps2pp_info *model_info; int use_ps2pp = 0; int use_ps2pp = 0; param[0] = 0; param[0] = 0; Loading @@ -350,7 +351,7 @@ int ps2pp_init(struct psmouse *psmouse, int set_properties) /* /* * Do Logitech PS2++ / PS2T++ magic init. * Do Logitech PS2++ / PS2T++ magic init. */ */ if (model == 97) { /* Touch Pad 3 */ if (model_info->kind == PS2PP_KIND_TP3) { /* Touch Pad 3 */ /* Unprotect RAM */ /* Unprotect RAM */ param[0] = 0x11; param[1] = 0x04; param[2] = 0x68; param[0] = 0x11; param[1] = 0x04; param[2] = 0x68; Loading Loading
drivers/input/mouse/logips2pp.c +12 −11 Original line number Original line Diff line number Diff line Loading @@ -30,9 +30,9 @@ #define PS2PP_NAV_BTN 0x20 #define PS2PP_NAV_BTN 0x20 struct ps2pp_info { struct ps2pp_info { const int model; u8 model; unsigned const int kind; u8 kind; unsigned const int features; u16 features; }; }; /* /* Loading Loading @@ -199,9 +199,9 @@ static void ps2pp_disconnect(struct psmouse *psmouse) device_remove_file(&psmouse->ps2dev.serio->dev, &psmouse_attr_smartscroll.dattr); device_remove_file(&psmouse->ps2dev.serio->dev, &psmouse_attr_smartscroll.dattr); } } static struct ps2pp_info *get_model_info(unsigned char model) static const struct ps2pp_info *get_model_info(unsigned char model) { { static struct ps2pp_info ps2pp_list[] = { static const struct ps2pp_info ps2pp_list[] = { { 12, 0, PS2PP_SIDE_BTN}, { 12, 0, PS2PP_SIDE_BTN}, { 13, 0, 0 }, { 13, 0, 0 }, { 15, PS2PP_KIND_MX, /* MX1000 */ { 15, PS2PP_KIND_MX, /* MX1000 */ Loading @@ -215,6 +215,7 @@ static struct ps2pp_info *get_model_info(unsigned char model) { 51, 0, 0 }, { 51, 0, 0 }, { 52, PS2PP_KIND_WHEEL, PS2PP_SIDE_BTN | PS2PP_WHEEL }, { 52, PS2PP_KIND_WHEEL, PS2PP_SIDE_BTN | PS2PP_WHEEL }, { 53, PS2PP_KIND_WHEEL, PS2PP_WHEEL }, { 53, PS2PP_KIND_WHEEL, PS2PP_WHEEL }, { 56, PS2PP_KIND_WHEEL, PS2PP_SIDE_BTN | PS2PP_WHEEL }, /* Cordless MouseMan Wheel */ { 61, PS2PP_KIND_MX, /* MX700 */ { 61, PS2PP_KIND_MX, /* MX700 */ PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_TASK_BTN | PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_TASK_BTN | PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, Loading Loading @@ -245,12 +246,11 @@ static struct ps2pp_info *get_model_info(unsigned char model) PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, PS2PP_EXTRA_BTN | PS2PP_NAV_BTN }, { 114, PS2PP_KIND_MX, /* MX310 */ { 114, PS2PP_KIND_MX, /* MX310 */ PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_WHEEL | PS2PP_SIDE_BTN | PS2PP_TASK_BTN | PS2PP_EXTRA_BTN }, PS2PP_TASK_BTN | PS2PP_EXTRA_BTN } { } }; }; int i; int i; for (i = 0; ps2pp_list[i].model; i++) for (i = 0; i < ARRAY_SIZE(ps2pp_list); i++) if (model == ps2pp_list[i].model) if (model == ps2pp_list[i].model) return &ps2pp_list[i]; return &ps2pp_list[i]; Loading @@ -262,7 +262,8 @@ static struct ps2pp_info *get_model_info(unsigned char model) * Set up input device's properties based on the detected mouse model. * Set up input device's properties based on the detected mouse model. */ */ static void ps2pp_set_model_properties(struct psmouse *psmouse, struct ps2pp_info *model_info, static void ps2pp_set_model_properties(struct psmouse *psmouse, const struct ps2pp_info *model_info, int using_ps2pp) int using_ps2pp) { { struct input_dev *input_dev = psmouse->dev; struct input_dev *input_dev = psmouse->dev; Loading Loading @@ -328,7 +329,7 @@ int ps2pp_init(struct psmouse *psmouse, int set_properties) struct ps2dev *ps2dev = &psmouse->ps2dev; struct ps2dev *ps2dev = &psmouse->ps2dev; unsigned char param[4]; unsigned char param[4]; unsigned char model, buttons; unsigned char model, buttons; struct ps2pp_info *model_info; const struct ps2pp_info *model_info; int use_ps2pp = 0; int use_ps2pp = 0; param[0] = 0; param[0] = 0; Loading @@ -350,7 +351,7 @@ int ps2pp_init(struct psmouse *psmouse, int set_properties) /* /* * Do Logitech PS2++ / PS2T++ magic init. * Do Logitech PS2++ / PS2T++ magic init. */ */ if (model == 97) { /* Touch Pad 3 */ if (model_info->kind == PS2PP_KIND_TP3) { /* Touch Pad 3 */ /* Unprotect RAM */ /* Unprotect RAM */ param[0] = 0x11; param[1] = 0x04; param[2] = 0x68; param[0] = 0x11; param[1] = 0x04; param[2] = 0x68; Loading