[PATCH] I2C: ds1337: i2c_transfer() checking
authorLadislav Michl <ladis@linux-mips.org>
Wed, 4 May 2005 06:13:54 +0000 (08:13 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 22 Jun 2005 04:51:51 +0000 (21:51 -0700)
i2c_transfer returns number of sucessfully transfered messages. Change
error checking to accordingly. (ds1337_set_datetime never returned
sucess)

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: James Chapman <jchapman@katalix.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/i2c/chips/ds1337.c

index 0967ec6d7947b803b346d4498e3b1a70eff63801..c4762ac980a3beab2caaf68df94c06e744c48ef0 100644 (file)
@@ -122,7 +122,7 @@ static int ds1337_get_datetime(struct i2c_client *client, struct rtc_time *dt)
                __FUNCTION__, result, buf[0], buf[1], buf[2], buf[3],
                buf[4], buf[5], buf[6]);
 
-       if (result >= 0) {
+       if (result == 2) {
                dt->tm_sec = BCD2BIN(buf[0]);
                dt->tm_min = BCD2BIN(buf[1]);
                val = buf[2] & 0x3f;
@@ -140,12 +140,12 @@ static int ds1337_get_datetime(struct i2c_client *client, struct rtc_time *dt)
                        __FUNCTION__, dt->tm_sec, dt->tm_min,
                        dt->tm_hour, dt->tm_mday,
                        dt->tm_mon, dt->tm_year, dt->tm_wday);
-       } else {
-               dev_err(&client->dev, "error reading data! %d\n", result);
-               result = -EIO;
+
+               return 0;
        }
 
-       return result;
+       dev_err(&client->dev, "error reading data! %d\n", result);
+       return -EIO;
 }
 
 static int ds1337_set_datetime(struct i2c_client *client, struct rtc_time *dt)
@@ -185,14 +185,11 @@ static int ds1337_set_datetime(struct i2c_client *client, struct rtc_time *dt)
        msg[0].buf = &buf[0];
 
        result = i2c_transfer(client->adapter, msg, 1);
-       if (result < 0) {
-               dev_err(&client->dev, "error writing data! %d\n", result);
-               result = -EIO;
-       } else {
-               result = 0;
-       }
+       if (result == 1)
+               return 0;
 
-       return result;
+       dev_err(&client->dev, "error writing data! %d\n", result);
+       return -EIO;
 }
 
 static int ds1337_command(struct i2c_client *client, unsigned int cmd,