[PATCH] misc: hmc6352: fix wrong return value checking fori2c_master_recv

From: Axel Lin
Date: Wed Mar 09 2011 - 03:42:08 EST


i2c_master_recv() returns negative errno, or else the number of bytes read.
Thus i2c_master_recv(client, i2c_data, 2) returns 2 instead of 1 in success case.

Signed-off-by: Axel Lin <axel.lin@xxxxxxxxx>
---
drivers/misc/hmc6352.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/misc/hmc6352.c b/drivers/misc/hmc6352.c
index 234bfca..3afc11e 100644
--- a/drivers/misc/hmc6352.c
+++ b/drivers/misc/hmc6352.c
@@ -86,7 +86,7 @@ static ssize_t compass_heading_data_show(struct device *dev,
msleep(10); /* sending 'A' cmd we need to wait for 7-10 millisecs */
ret = i2c_master_recv(client, i2c_data, 2);
mutex_unlock(&compass_mutex);
- if (ret != 1) {
+ if (ret < 0) {
dev_warn(dev, "i2c read data cmd failed\n");
return ret;
}
--
1.7.2



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/