summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorJavier Martin <javier.martin@vista-silicon.com>2012-10-25 06:55:01 (GMT)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2012-10-25 07:13:47 (GMT)
commita6e8c0a25377e27958b11b20e1927885ae7c9857 (patch)
tree2e9df4f9062c14f087fcf6192f5df1f692d66440 /drivers/input
parente52278a36898dc93aa1991a3ac976c1c7c55e2ed (diff)
downloadlinux-fsl-qoriq-a6e8c0a25377e27958b11b20e1927885ae7c9857.tar.xz
Input: qt2160 - fix qt2160_write() implementation
The previous implementation of qt2160_write() didn't work properly because the value was actually not written to the device. Probably nobody detected this because the only write that was issued was the one related to auto calibration. In order to fix the problem use a similar aproach as qt1070 instead. Signed-off-by: Javier Martin <javier.martin@vista-silicon.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/keyboard/qt2160.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/input/keyboard/qt2160.c b/drivers/input/keyboard/qt2160.c
index e7a5e36..73ea4b0 100644
--- a/drivers/input/keyboard/qt2160.c
+++ b/drivers/input/keyboard/qt2160.c
@@ -207,23 +207,14 @@ static int __devinit qt2160_read(struct i2c_client *client, u8 reg)
static int __devinit qt2160_write(struct i2c_client *client, u8 reg, u8 data)
{
- int error;
-
- error = i2c_smbus_write_byte(client, reg);
- if (error) {
- dev_err(&client->dev,
- "couldn't send request. Returned %d\n", error);
- return error;
- }
+ int ret;
- error = i2c_smbus_write_byte(client, data);
- if (error) {
+ ret = i2c_smbus_write_byte_data(client, reg, data);
+ if (ret < 0)
dev_err(&client->dev,
- "couldn't write data. Returned %d\n", error);
- return error;
- }
+ "couldn't write data. Returned %d\n", ret);
- return error;
+ return ret;
}