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
This commit is contained in:
@@ -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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
};
|
};
|
||||||
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 @@
|
|||||||
* 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 @@
|
|||||||
/* 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
|
||||||
|
Reference in New Issue
Block a user