Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3882bb5 authored by Helge Deller's avatar Helge Deller Committed by Dmitry Torokhov
Browse files

Input: logips2pp - add sugnature 56 (Cordless MouseMan Wheel), cleanup



Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 11ea3173
Loading
Loading
Loading
Loading
+12 −11
Original line number Original line Diff line number Diff line
@@ -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;
};
};


/*
/*
@@ -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 */
@@ -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 },
@@ -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];


@@ -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;
@@ -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;
@@ -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;