public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
To: Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
Cc: i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
Subject: Re: [patch 1/8] I2C: S3C2410: Check ACK on byte transmission
Date: Fri, 30 May 2008 21:45:40 +0200	[thread overview]
Message-ID: <20080530214540.638008b7@hyperion.delvare> (raw)
In-Reply-To: <20080529132405.971048345-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>

Hi Ben,

On Thu, 29 May 2008 14:22:45 +0100, Ben Dooks wrote:
> We should check for the reception of an ACK after transmissint each

Spelling: transmitting.

> data byte. The address send has been correctly checking this, but the
> data write byte state should have also been checking for these failures.
> 
> As part of the same fix, we remove the ACK checking from the receive
> path where it should not have been checking for an ACK which our hardware
> was sending.
> 
> Signed-off-by: Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
> 
> Index: linux-2.6.26-rc4-quilt1/drivers/i2c/busses/i2c-s3c2410.c
> ===================================================================
> --- linux-2.6.26-rc4-quilt1.orig/drivers/i2c/busses/i2c-s3c2410.c	2008-05-28 11:49:18.000000000 +0100
> +++ linux-2.6.26-rc4-quilt1/drivers/i2c/busses/i2c-s3c2410.c	2008-05-28 11:56:14.000000000 +0100
> @@ -324,6 +324,15 @@ static int i2s_s3c_irq_nextbyte(struct s
>  		 */
>  
>  	retry_write:
> +		if (!(i2c->msg->flags & I2C_M_IGNORE_NAK)) {
> +			if (iicstat & S3C2410_IICSTAT_LASTBIT) {
> +				dev_dbg(i2c->dev, "WRITE: No Ack\n");
> +
> +				s3c24xx_i2c_stop(i2c, -ECONNREFUSED);
> +				goto out_ack;
> +			}
> +		}
> +

Do you really want to check this again when you jump to retry_write? I
doubt it. My guess is that you want to add the code before the
retry_write label, rather than after it.

>  		if (!is_msgend(i2c)) {
>  			byte = i2c->msg->buf[i2c->msg_ptr++];
>  			writeb(byte, i2c->regs + S3C2410_IICDS);
> @@ -377,17 +386,6 @@ static int i2s_s3c_irq_nextbyte(struct s
>  		 * going to do any more read/write
>  		 */
>  
> -		if (!(i2c->msg->flags & I2C_M_IGNORE_NAK) &&
> -		    !(is_msglast(i2c) && is_lastmsg(i2c))) {
> -
> -			if (iicstat & S3C2410_IICSTAT_LASTBIT) {
> -				dev_dbg(i2c->dev, "READ: No Ack\n");
> -
> -				s3c24xx_i2c_stop(i2c, -ECONNREFUSED);
> -				goto out_ack;
> -			}
> -		}
> -
>  		byte = readb(i2c->regs + S3C2410_IICDS);
>  		i2c->msg->buf[i2c->msg_ptr++] = byte;
>  
> 


-- 
Jean Delvare

_______________________________________________
i2c mailing list
i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
http://lists.lm-sensors.org/mailman/listinfo/i2c

  parent reply	other threads:[~2008-05-30 19:45 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-29 13:22 [patch 0/8] I2C fixes and -next from Ben Dooks Ben Dooks
2008-05-29 13:22 ` [patch 1/8] I2C: S3C2410: Check ACK on byte transmission Ben Dooks
     [not found]   ` <20080529132405.971048345-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-05-30 19:45     ` Jean Delvare [this message]
     [not found]       ` <20080530214540.638008b7-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-02 19:29         ` Ben Dooks
2008-05-29 13:22 ` [patch 2/8] I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device Ben Dooks
     [not found]   ` <20080529132406.186957190-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-05-30 19:54     ` Jean Delvare
     [not found]       ` <20080530215452.2ee3d4a7-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-01 21:51         ` Ben Dooks
     [not found]           ` <20080601215102.GJ7334-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2008-06-02  6:59             ` Jean Delvare
2008-05-29 13:22 ` [patch 3/8] I2C: S3C2410: Pass the I2C bus number via drivers platform data Ben Dooks
     [not found]   ` <20080529132406.387873305-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-06-01  7:07     ` Jean Delvare
     [not found]       ` <20080601090706.0e29a76d-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-01 21:53         ` Ben Dooks
     [not found]           ` <20080601215335.GK7334-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2008-06-02  6:38             ` Jean Delvare
2008-05-29 13:22 ` [patch 4/8] I2C: S3C2410: Add a option of reducing the bus busy waiting time Ben Dooks
     [not found]   ` <20080529132406.586501777-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-06-01  7:16     ` Jean Delvare
2008-05-29 13:22 ` [patch 5/8] OSIRIS: Add i2c device list to Simtec Osiris Ben Dooks
     [not found]   ` <20080529132406.837870894-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-06-01  7:21     ` Jean Delvare
     [not found]       ` <20080601092116.63c4808e-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-01 21:35         ` Ben Dooks
     [not found]           ` <20080601213509.GH7334-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2008-06-02  6:31             ` Jean Delvare
2008-05-29 13:22 ` [patch 6/8] BAST: Add i2c device list on Simtec Bast Ben Dooks
2008-05-29 13:22 ` [patch 7/8] VR1000: Add i2c device list to Thorcom VR1000 Ben Dooks
     [not found]   ` <20080529132407.211335410-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-06-01  7:32     ` Jean Delvare
     [not found]       ` <20080601093215.67a1ac41-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-01 21:38         ` Ben Dooks
     [not found]           ` <20080601213855.GI7334-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2008-06-02  6:35             ` Jean Delvare
2008-05-29 13:22 ` [patch 8/8] ANUBIS: Add i2c device list to Simtec Anubis Ben Dooks

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080530214540.638008b7@hyperion.delvare \
    --to=khali-puyad+kwke1g9huczpvpmw@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox