mirror of https://gitee.com/openkylin/linux.git
Input: psmouse - clean up Cypress probe
When Cypress protocol support is disabled cypress_init() is a stub that always returns -ENOSYS, so there is not point in testing for CONFIG_MOUSE_PS2_CYPRESS after we decided that we are dealing with a Cypress device. Also, we should only be calling cypress_detect() when set_properties argument is "true", like with other protocols. There is a slight change in behavior to make follow-up patches more uniform: when we detect Cypress but its initialization fails, instead of immediately returning PSMOUSE_PS2 protocol we now continue trying IntelliMouse [Explorer]. Given that Cypress devices only have issue with Sentelic probes probing Imtellimouse should be safe. Reviewed-by: Hans de Goede <hdegoede@redhat.com> Tested-by: Marcin Sochacki <msochacki+kernel@gmail.com> Tested-by: Till <till2.schaefer@uni-dortmund.de> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
2b6f39e9ee
commit
24a06f3e3a
|
@ -836,19 +836,15 @@ static int psmouse_extensions(struct psmouse *psmouse,
|
|||
* Trackpads.
|
||||
*/
|
||||
if (max_proto > PSMOUSE_IMEX &&
|
||||
cypress_detect(psmouse, set_properties) == 0) {
|
||||
if (IS_ENABLED(CONFIG_MOUSE_PS2_CYPRESS)) {
|
||||
if (cypress_init(psmouse) == 0)
|
||||
return PSMOUSE_CYPRESS;
|
||||
|
||||
/*
|
||||
* Finger Sensing Pad probe upsets some modules of
|
||||
* Cypress Trackpad, must avoid Finger Sensing Pad
|
||||
* probe if Cypress Trackpad device detected.
|
||||
*/
|
||||
return PSMOUSE_PS2;
|
||||
}
|
||||
psmouse_do_detect(cypress_detect, psmouse, set_properties) == 0) {
|
||||
if (!set_properties || cypress_init(psmouse) == 0)
|
||||
return PSMOUSE_CYPRESS;
|
||||
|
||||
/*
|
||||
* Finger Sensing Pad probe upsets some modules of
|
||||
* Cypress Trackpad, must avoid Finger Sensing Pad
|
||||
* probe if Cypress Trackpad device detected.
|
||||
*/
|
||||
max_proto = PSMOUSE_IMEX;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue