|
|
Re: [PATCHv3 06/17] i2c: omap: split out [XR]DR and [XR]RDY |
Hi,
On Fri, Jun 29, 2012 at 03:43:26PM +0530, Shubhrajyoti D wrote:
> From: Felipe Balbi <balbi@xxxxxx>
>
> 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
> Signed-off-by: Felipe Balbi <balbi@xxxxxx>
> Signed-off-by: Shubhrajyoti D <shubhrajyoti@xxxxxx>
> ---
> 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.
--
balbi
Attachment:
signature.asc
Description: Digital signature
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
[Linux ARM (vger)] [Linux ARM MSM] [Linux Omap] [Linux Arm] [Linux Tegra] [Fedora ARM] [eCos] [Linux Fastboot] [Gcc Help] [Git] [DCCP] [IETF Announce] [Security] [PDAs] [Linux] [Linux MIPS] [Yosemite Campsites] [Photos]
![]() |
![]() |