Commit c63c4edc authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: sentelic - fix retrieving number of buttons
  Input: sentelic - release mutex upon register write failure
parents d65616a9 6ccbcf2c
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* Finger Sensing Pad PS/2 mouse driver. * Finger Sensing Pad PS/2 mouse driver.
* *
* Copyright (C) 2005-2007 Asia Vital Components Co., Ltd. * Copyright (C) 2005-2007 Asia Vital Components Co., Ltd.
* Copyright (C) 2005-2010 Tai-hwa Liang, Sentelic Corporation. * Copyright (C) 2005-2011 Tai-hwa Liang, Sentelic Corporation.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
...@@ -162,7 +162,7 @@ static int fsp_reg_write(struct psmouse *psmouse, int reg_addr, int reg_val) ...@@ -162,7 +162,7 @@ static int fsp_reg_write(struct psmouse *psmouse, int reg_addr, int reg_val)
ps2_sendbyte(ps2dev, v, FSP_CMD_TIMEOUT2); ps2_sendbyte(ps2dev, v, FSP_CMD_TIMEOUT2);
if (ps2_sendbyte(ps2dev, 0xf3, FSP_CMD_TIMEOUT) < 0) if (ps2_sendbyte(ps2dev, 0xf3, FSP_CMD_TIMEOUT) < 0)
return -1; goto out;
if ((v = fsp_test_invert_cmd(reg_val)) != reg_val) { if ((v = fsp_test_invert_cmd(reg_val)) != reg_val) {
/* inversion is required */ /* inversion is required */
...@@ -261,7 +261,7 @@ static int fsp_page_reg_write(struct psmouse *psmouse, int reg_val) ...@@ -261,7 +261,7 @@ static int fsp_page_reg_write(struct psmouse *psmouse, int reg_val)
ps2_sendbyte(ps2dev, 0x88, FSP_CMD_TIMEOUT2); ps2_sendbyte(ps2dev, 0x88, FSP_CMD_TIMEOUT2);
if (ps2_sendbyte(ps2dev, 0xf3, FSP_CMD_TIMEOUT) < 0) if (ps2_sendbyte(ps2dev, 0xf3, FSP_CMD_TIMEOUT) < 0)
return -1; goto out;
if ((v = fsp_test_invert_cmd(reg_val)) != reg_val) { if ((v = fsp_test_invert_cmd(reg_val)) != reg_val) {
ps2_sendbyte(ps2dev, 0x47, FSP_CMD_TIMEOUT2); ps2_sendbyte(ps2dev, 0x47, FSP_CMD_TIMEOUT2);
...@@ -309,7 +309,7 @@ static int fsp_get_buttons(struct psmouse *psmouse, int *btn) ...@@ -309,7 +309,7 @@ static int fsp_get_buttons(struct psmouse *psmouse, int *btn)
}; };
int val; int val;
if (fsp_reg_read(psmouse, FSP_REG_TMOD_STATUS1, &val) == -1) if (fsp_reg_read(psmouse, FSP_REG_TMOD_STATUS, &val) == -1)
return -EIO; return -EIO;
*btn = buttons[(val & 0x30) >> 4]; *btn = buttons[(val & 0x30) >> 4];
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* Finger Sensing Pad PS/2 mouse driver. * Finger Sensing Pad PS/2 mouse driver.
* *
* Copyright (C) 2005-2007 Asia Vital Components Co., Ltd. * Copyright (C) 2005-2007 Asia Vital Components Co., Ltd.
* Copyright (C) 2005-2009 Tai-hwa Liang, Sentelic Corporation. * Copyright (C) 2005-2011 Tai-hwa Liang, Sentelic Corporation.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
/* Finger-sensing Pad control registers */ /* Finger-sensing Pad control registers */
#define FSP_REG_SYSCTL1 0x10 #define FSP_REG_SYSCTL1 0x10
#define FSP_BIT_EN_REG_CLK BIT(5) #define FSP_BIT_EN_REG_CLK BIT(5)
#define FSP_REG_TMOD_STATUS 0x20
#define FSP_REG_OPC_QDOWN 0x31 #define FSP_REG_OPC_QDOWN 0x31
#define FSP_BIT_EN_OPC_TAG BIT(7) #define FSP_BIT_EN_OPC_TAG BIT(7)
#define FSP_REG_OPTZ_XLO 0x34 #define FSP_REG_OPTZ_XLO 0x34
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment