diff --git a/drivers/hwmon/lm63.c b/drivers/hwmon/lm63.c
index 5984d54..4a15e04 100644
--- a/drivers/hwmon/lm63.c
+++ b/drivers/hwmon/lm63.c
@@ -44,6 +44,7 @@
 #include <linux/i2c.h>
 #include <linux/hwmon-sysfs.h>
 #include <linux/hwmon.h>
+#include <linux/ktime.h>
 #include <linux/err.h>
 #include <linux/mutex.h>
 #include <linux/sysfs.h>
@@ -238,9 +239,19 @@
 		u8 command, u8 value) {
 	s32 ret;
 	int retries = MAX_SMBUS_RETRIES;
+	ktime_t start_time;
+	s64 d;
 	while (retries-- > 0) {
+		start_time = ktime_get();
 		ret = i2c_smbus_write_byte_data(client, command, value);
-		if (!ret) return ret;
+		if (!ret) {
+			d = ktime_us_delta(ktime_get(), start_time);
+			if (d <= 22000) return 0;
+			dev_printk(KERN_DEBUG, &client->dev,
+				"I2C transaction took too long: %lld us.\n",
+				(long long) d);
+			ret = -ETIME;
+		}
 		dev_printk(KERN_DEBUG, &client->dev,
 			"Failed to write value 0x%02x to register 0x%02x: rc %d. Retries left: %d\n",
 			value, command, ret, retries);
@@ -256,9 +267,19 @@
 		u8 command) {
 	s32 ret;
 	int retries = MAX_SMBUS_RETRIES;
+	ktime_t start_time;
+	s64 d;
 	while (retries-- > 0) {
+		start_time = ktime_get();
 		ret = i2c_smbus_read_byte_data(client, command);
-		if (ret >= 0) return ret;
+		if (ret >= 0) {
+			d = ktime_us_delta(ktime_get(), start_time);
+			if (d <= 22000) return 0;
+			dev_printk(KERN_DEBUG, &client->dev,
+				"I2C transaction took too long: %lld us.\n",
+				(long long) d);
+			ret = -ETIME;
+		}
 		dev_printk(KERN_DEBUG, &client->dev,
 			"Failed to read from register 0x%02x: rc %d. Retries left: %d\n",
 			command, ret, retries);
diff --git a/drivers/i2c/busses/i2c-comcerto.c b/drivers/i2c/busses/i2c-comcerto.c
index 4a50cac..6492017 100644
--- a/drivers/i2c/busses/i2c-comcerto.c
+++ b/drivers/i2c/busses/i2c-comcerto.c
@@ -24,7 +24,6 @@
 #include <linux/delay.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
-#include <linux/ktime.h>
 #include <asm/io.h>
 #include <asm/sizes.h>
 #include <mach/i2c.h>
@@ -65,7 +64,6 @@
 	int			msg_status;	/* < 0: error, == 0: success, > 0: message in progress */
 	int			msg_len;
 	int			msg_retries;
-	ktime_t			msg_start_time;
 };
 
 #define REG_ADDR(i2c, offset)		((i2c)->membase + (offset))
@@ -178,20 +176,8 @@
 
 static inline void comcerto_i2c_message_complete(struct comcerto_i2c *i2c, int status)
 {
-	s64 d;
 	WR_CNTR(i2c, CNTR_STP);
-
 	i2c->msg_status = status;
-
-	if (i2c->msg_len < 10) {
-		d = ktime_us_delta(ktime_get(), i2c->msg_start_time);
-		if (d > 22000) {
-			i2c->msg_status = -ETIME;
-			dev_printk(KERN_DEBUG, i2c->dev,
-				"I2C transaction took too long: %lld us. Returning error.\n",
-				(long long) d);
-		}
-	}
 }
 
 static inline int comcerto_i2c_message_in_progress(struct comcerto_i2c *i2c)
@@ -468,7 +454,6 @@
 	i2c->msg_state = TR_IDLE;
 	i2c->msg_status = 1;
 	i2c->msg_retries = i2c->adapter->retries;
-	i2c->msg_start_time = ktime_get();
 
 polling_mode:
 	if (msg->flags & I2C_M_RD)
