Input: psmouse - allow drivers to use psmouse_{de,}activate
authorAndres Salomon <dilinger@queued.net>
Fri, 24 Feb 2012 08:51:37 +0000 (00:51 -0800)
committerTim Gardner <tim.gardner@canonical.com>
Fri, 13 Apr 2012 12:42:26 +0000 (06:42 -0600)
BugLink: http://bugs.launchpad.net/bugs/969334

Other drivers duplicate this code; no sense in having it be private
to psmouse-base.

Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
(cherry picked from commit bd26f3d6fbb84f101f3e78f0591415d1c407976a)
Signed-off-by: Eric Miao <eric.miao@canonical.com>
Acked-by: Leann Ogasawara <leann.ogasawara@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>

drivers/input/mouse/psmouse-base.c
drivers/input/mouse/psmouse.h

index 9f352fb..f554f85 100644 (file)
@@ -1011,28 +1011,33 @@ static void psmouse_initialize(struct psmouse *psmouse)
  * psmouse_activate() enables the mouse so that we get motion reports from it.
  */
 
-static void psmouse_activate(struct psmouse *psmouse)
+int psmouse_activate(struct psmouse *psmouse)
 {
-       if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE))
+       if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE)) {
                psmouse_warn(psmouse, "Failed to enable mouse on %s\n",
                             psmouse->ps2dev.serio->phys);
+               return -1;
+       }
 
        psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
+       return 0;
 }
 
-
 /*
  * psmouse_deactivate() puts the mouse into poll mode so that we don't get motion
  * reports from it unless we explicitly request it.
  */
 
-static void psmouse_deactivate(struct psmouse *psmouse)
+int psmouse_deactivate(struct psmouse *psmouse)
 {
-       if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE))
+       if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE)) {
                psmouse_warn(psmouse, "Failed to deactivate mouse on %s\n",
                             psmouse->ps2dev.serio->phys);
+               return -1;
+       }
 
        psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
+       return 0;
 }
 
 /*
index 11a9c6c..56d784b 100644 (file)
@@ -103,6 +103,8 @@ int psmouse_sliced_command(struct psmouse *psmouse, unsigned char command);
 int psmouse_reset(struct psmouse *psmouse);
 void psmouse_set_state(struct psmouse *psmouse, enum psmouse_state new_state);
 void psmouse_set_resolution(struct psmouse *psmouse, unsigned int resolution);
+int psmouse_activate(struct psmouse *psmouse);
+int psmouse_deactivate(struct psmouse *psmouse);
 
 struct psmouse_attribute {
        struct device_attribute dattr;