]> Pileus Git - ~andy/linux/blobdiff - drivers/input/mouse/sentelic.c
Merge commit 'v3.3-rc6' into next
[~andy/linux] / drivers / input / mouse / sentelic.c
index 86d6f39178b0d556364df951ca33575598bfa416..2a77a52d2e62a53e53f71c4a46c9db3726c1f484 100644 (file)
@@ -90,8 +90,7 @@ static int fsp_reg_read(struct psmouse *psmouse, int reg_addr, int *reg_val)
         * to do that for writes because sysfs set helper does this for
         * us.
         */
-       ps2_command(ps2dev, NULL, PSMOUSE_CMD_DISABLE);
-       psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
+       psmouse_deactivate(psmouse);
 
        ps2_begin_command(ps2dev);
 
@@ -128,8 +127,7 @@ static int fsp_reg_read(struct psmouse *psmouse, int reg_addr, int *reg_val)
 
  out:
        ps2_end_command(ps2dev);
-       ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE);
-       psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
+       psmouse_activate(psmouse);
        dev_dbg(&ps2dev->serio->dev, "READ REG: 0x%02x is 0x%02x (rc = %d)\n",
                reg_addr, *reg_val, rc);
        return rc;
@@ -213,8 +211,7 @@ static int fsp_page_reg_read(struct psmouse *psmouse, int *reg_val)
        unsigned char param[3];
        int rc = -1;
 
-       ps2_command(ps2dev, NULL, PSMOUSE_CMD_DISABLE);
-       psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
+       psmouse_deactivate(psmouse);
 
        ps2_begin_command(ps2dev);
 
@@ -239,8 +236,7 @@ static int fsp_page_reg_read(struct psmouse *psmouse, int *reg_val)
 
  out:
        ps2_end_command(ps2dev);
-       ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE);
-       psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
+       psmouse_activate(psmouse);
        dev_dbg(&ps2dev->serio->dev, "READ PAGE REG: 0x%02x (rc = %d)\n",
                *reg_val, rc);
        return rc;
@@ -408,7 +404,7 @@ static int fsp_onpad_hscr(struct psmouse *psmouse, bool enable)
 static ssize_t fsp_attr_set_setreg(struct psmouse *psmouse, void *data,
                                   const char *buf, size_t count)
 {
-       unsigned long reg, val;
+       int reg, val;
        char *rest;
        ssize_t retval;
 
@@ -416,7 +412,11 @@ static ssize_t fsp_attr_set_setreg(struct psmouse *psmouse, void *data,
        if (rest == buf || *rest != ' ' || reg > 0xff)
                return -EINVAL;
 
-       if (strict_strtoul(rest + 1, 16, &val) || val > 0xff)
+       retval = kstrtoint(rest + 1, 16, &val);
+       if (retval)
+               return retval;
+
+       if (val > 0xff)
                return -EINVAL;
 
        if (fsp_reg_write_enable(psmouse, true))
@@ -448,10 +448,13 @@ static ssize_t fsp_attr_set_getreg(struct psmouse *psmouse, void *data,
                                        const char *buf, size_t count)
 {
        struct fsp_data *pad = psmouse->private;
-       unsigned long reg;
-       int val;
+       int reg, val, err;
+
+       err = kstrtoint(buf, 16, &reg);
+       if (err)
+               return err;
 
-       if (strict_strtoul(buf, 16, &reg) || reg > 0xff)
+       if (reg > 0xff)
                return -EINVAL;
 
        if (fsp_reg_read(psmouse, reg, &val))
@@ -480,9 +483,13 @@ static ssize_t fsp_attr_show_pagereg(struct psmouse *psmouse,
 static ssize_t fsp_attr_set_pagereg(struct psmouse *psmouse, void *data,
                                        const char *buf, size_t count)
 {
-       unsigned long val;
+       int val, err;
 
-       if (strict_strtoul(buf, 16, &val) || val > 0xff)
+       err = kstrtoint(buf, 16, &val);
+       if (err)
+               return err;
+
+       if (val > 0xff)
                return -EINVAL;
 
        if (fsp_page_reg_write(psmouse, val))
@@ -505,9 +512,14 @@ static ssize_t fsp_attr_show_vscroll(struct psmouse *psmouse,
 static ssize_t fsp_attr_set_vscroll(struct psmouse *psmouse, void *data,
                                        const char *buf, size_t count)
 {
-       unsigned long val;
+       unsigned int val;
+       int err;
+
+       err = kstrtouint(buf, 10, &val);
+       if (err)
+               return err;
 
-       if (strict_strtoul(buf, 10, &val) || val > 1)
+       if (val > 1)
                return -EINVAL;
 
        fsp_onpad_vscr(psmouse, val);
@@ -529,9 +541,14 @@ static ssize_t fsp_attr_show_hscroll(struct psmouse *psmouse,
 static ssize_t fsp_attr_set_hscroll(struct psmouse *psmouse, void *data,
                                        const char *buf, size_t count)
 {
-       unsigned long val;
+       unsigned int val;
+       int err;
+
+       err = kstrtouint(buf, 10, &val);
+       if (err)
+               return err;
 
-       if (strict_strtoul(buf, 10, &val) || val > 1)
+       if (val > 1)
                return -EINVAL;
 
        fsp_onpad_hscr(psmouse, val);