dturvene alps_hw_init_v6_minimal works fine if alps_get_model is run like in previous versions. For the new version, try this:
static int alps_hw_init_v6(struct psmouse *psmouse) { struct ps2dev *ps2dev = &psmouse->ps2dev; unsigned char param[4];
// previously sent by alps_get_model() // useless if alps_get_model() is run
param[0] = 0; ps2_command(ps2dev, ¶m[0], PSMOUSE_CMD_SETRES);
/* E7 report */ ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21); ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21); ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21); ps2_command(ps2dev, NULL, PSMOUSE_CMD_GETINFO);
/* Enter command mode */ alps_enter_command_mode(psmouse, param);
/* exit command mode */ ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSTREAM);
// end of alps_get_model duplicate
// alps_hw_init_v6_minimal() ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSTREAM);
param[0] = 0x64; ps2_command(ps2dev, ¶m[0], PSMOUSE_CMD_SETRATE); param[0] = 0x28; ps2_command(ps2dev, ¶m[0], PSMOUSE_CMD_SETRATE);
return 0; }
dturvene alps_hw_ init_v6_ minimal works fine if alps_get_model is run like in previous versions. For the new version, try this:
static int alps_hw_ init_v6( struct psmouse *psmouse)
{
struct ps2dev *ps2dev = &psmouse->ps2dev;
unsigned char param[4];
// previously sent by alps_get_model()
// useless if alps_get_model() is run
param[0] = 0; ps2dev, ¶m[0], PSMOUSE_ CMD_SETRES) ;
ps2_command(
/* E7 report */ ps2dev, NULL, PSMOUSE_ CMD_SETSCALE21) ; ps2dev, NULL, PSMOUSE_ CMD_SETSCALE21) ; ps2dev, NULL, PSMOUSE_ CMD_SETSCALE21) ; ps2dev, NULL, PSMOUSE_ CMD_GETINFO) ;
ps2_command(
ps2_command(
ps2_command(
ps2_command(
/* Enter command mode */ command_ mode(psmouse, param);
alps_enter_
/* exit command mode */ ps2dev, NULL, PSMOUSE_ CMD_SETSTREAM) ;
ps2_command(
// end of alps_get_model duplicate
// alps_hw_ init_v6_ minimal( ) ps2dev, NULL, PSMOUSE_ CMD_SETSTREAM) ;
ps2_command(
param[0] = 0x64; ps2dev, ¶m[0], PSMOUSE_ CMD_SETRATE) ; ps2dev, ¶m[0], PSMOUSE_ CMD_SETRATE) ;
ps2_command(
param[0] = 0x28;
ps2_command(
return 0;
}