Thread (21 messages) 21 messages, 3 authors, 2012-07-02

[PATCHv3 06/17] i2c: omap: split out [XR]DR and [XR]RDY

From: Shubhrajyoti Datta <hidden>
Date: 2012-07-02 12:00:02
Also in: linux-i2c, linux-omap

On Mon, Jul 2, 2012 at 5:26 PM, Felipe Balbi [off-list ref] wrote:
Hi,

On Fri, Jun 29, 2012 at 03:43:26PM +0530, Shubhrajyoti D wrote:
quoted
From: Felipe Balbi <redacted>

While they do pretty much the same thing, there
are a few peculiarities. Specially WRT erratas,
it's best to split those out and re-factor the
read/write loop to another function which both
cases call.

This last part will be done on another patch.

While at that, also avoid an unncessary register
read since dev->fifo_len will always contain the
correct amount of data to be transferred.
this statement isn't valid anymore, but I'd like it to be. See below
quoted
Signed-off-by: Felipe Balbi <redacted>
Signed-off-by: Shubhrajyoti D <redacted>
---
 drivers/i2c/busses/i2c-omap.c |  126 ++++++++++++++++++++++++++++++----------
 1 files changed, 94 insertions(+), 32 deletions(-)
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 359ee08..45bd731 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -820,36 +820,64 @@ complete:
                      return IRQ_HANDLED;
              }

-             if (stat & (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR)) {
+             if (stat & OMAP_I2C_STAT_RDR) {
                      u8 num_bytes = 1;

+                     if (dev->fifo_size)
+                             num_bytes = (omap_i2c_read_reg(dev,
+                                             OMAP_I2C_BUFSTAT_REG) >> 8)
+                                             & 0x3F;
I wanted to avoid reading registers if we don't have to. This value will
be sitting in dev->buf_len.
Yes will fix this and resend.
--
balbi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help