diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.9/950-0108-i2c-bcm2835-Use-dev_dbg-logging-on-transfer-errors.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.9/950-0108-i2c-bcm2835-Use-dev_dbg-logging-on-transfer-errors.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.9/950-0108-i2c-bcm2835-Use-dev_dbg-logging-on-transfer-errors.patch b/target/linux/brcm2708/patches-4.9/950-0108-i2c-bcm2835-Use-dev_dbg-logging-on-transfer-errors.patch new file mode 100644 index 0000000..acc2ade --- /dev/null +++ b/target/linux/brcm2708/patches-4.9/950-0108-i2c-bcm2835-Use-dev_dbg-logging-on-transfer-errors.patch @@ -0,0 +1,32 @@ +From bff25210b88dc7b71ee9c2626e42a939072dec64 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org> +Date: Mon, 19 Sep 2016 17:19:41 +0200 +Subject: [PATCH] i2c: bcm2835: Use dev_dbg logging on transfer errors +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Writing to an AT24C32 generates on average 2x i2c transfer errors per +32-byte page write. Which amounts to a lot for a 4k write. This is due +to the fact that the chip doesn't respond during it's internal write +cycle when the at24 driver tries and retries the next write. +Only a handful drivers use dev_err() on transfer error, so switch to +dev_dbg() instead. + +Signed-off-by: Noralf Trønnes <noralf@tronnes.org> +Reviewed-by: Eric Anholt <eric@anholt.net> +--- + drivers/i2c/busses/i2c-bcm2835.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/i2c/busses/i2c-bcm2835.c ++++ b/drivers/i2c/busses/i2c-bcm2835.c +@@ -216,7 +216,7 @@ static int bcm2835_i2c_xfer_msg(struct b + (msg->flags & I2C_M_IGNORE_NAK)) + return 0; + +- dev_err(i2c_dev->dev, "i2c transfer failed: %x\n", i2c_dev->msg_err); ++ dev_dbg(i2c_dev->dev, "i2c transfer failed: %x\n", i2c_dev->msg_err); + + if (i2c_dev->msg_err & BCM2835_I2C_S_ERR) + return -EREMOTEIO; |