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
next prev 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