public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
To: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Cc: i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
Subject: Re: [PATCH] Add a new-style driver for most I2C EEPROMs
Date: Thu, 17 Apr 2008 18:24:03 +0200	[thread overview]
Message-ID: <20080417182403.09b570e4@hyperion.delvare> (raw)
In-Reply-To: <fu7sgc$lgt$1@ger.gmane.org>

On Thu, 17 Apr 2008 18:05:32 +0200, Wolfram Sang wrote:
> Greetings,
> 
> (this goes mostly to David, I assume)
> 
> In at24_ee_write:
> > +	/* Writes fail if the previous one didn't complete yet.  We'll
> > +	 * loop a few times until this one succeeds, waiting at least
> > +	 * long enough for one entire page write to work.
> > +	 */
> > +	timeout = jiffies + msecs_to_jiffies(AT24_EE_TIMEOUT);
> > +	for (retries = 0; retries < 3; retries++) {
> > +
> > +		if (at24->use_smbus) {
> > +			status = i2c_smbus_write_i2c_block_data(client,
> > +					offset, count, buf);
> > +			if (status == 0)
> > +				status = count;
> > +		} else {
> > +			status = i2c_transfer(client->adapter, &msg, 1);
> > +			if (status == 1)
> > +				status = count;
> > +		}
> > +		dev_dbg(&client->dev, "write %zd@%d --> %zd (%ld)\n",
> > +				count, offset, status, jiffies);
> > +
> > +		if (status == count)
> > +			return count;
> > +
> > +		if (retries < 3 || time_after(timeout, jiffies)) {
> > +			/* REVISIT:  at HZ=100, this is sloooow */
> > +			msleep(1);
> > +			continue;
> > +		}
> > +	}
> I assume 'retries < 3' (always true) and 'continue' (nothing follows) 
> are left-overs from earlier revisions and can be thrown out? My main 
> questions is 'msleep(1)' though: As I understand it, this means the 
> for-loop will wait roughly 3ms on failures until it reports a timeout 
> (assuming good precision of msleep). Comparing this to AT24_EE_TIMEOUT 
> (25 ms), it looks to me that the msleep value could be increased a 
> little (maybe to AT24_EE_TIMEOUT / 3)? Or is i2c_transfer slow enough 
> and can we count on that behaviour?

msleep() can't sleep less than one jiffie, so msleep(1) is the same as
msleep(10) at HZ=100. At HZ=1000, msleep(1) is almost possible,
although it might sleep for up to 2 ms in practice (finish the current
jiffie + the next jiffie.)

The bottom line is that you never really know how much msleep(N)
will sleep for small values of N.

I realize that it doesn't really answer your question, but that's still
worth keeping in mind.

-- 
Jean Delvare

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

  reply	other threads:[~2008-04-17 16:24 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-11 11:43 [PATCH] Add a new-style driver for most I2C EEPROMs Wolfram Sang
     [not found] ` <1207914198-8561-1-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-04-11 12:24   ` Wolfram Sang
2008-04-14  7:22     ` Robert Schwebel
     [not found]       ` <20080414072227.GU13814-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-04-14 12:39         ` Jean Delvare
     [not found]           ` <20080414143925.31b55b39-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-04-14 15:57             ` David Brownell
     [not found]               ` <200804140857.33732.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-04-17 21:17                 ` David Brownell
     [not found]                   ` <200804171417.23753.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-04-18  8:07                     ` Trent Piepho
     [not found]                       ` <Pine.LNX.4.58.0804172346580.10592-nuiHJn5p267P3RPoUHIrnuTW4wlIGRCZ@public.gmane.org>
2008-04-18 10:31                         ` Wolfram Sang
     [not found]                           ` <20080418103149.GA4245-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-04-18 23:06                             ` Trent Piepho
     [not found]                               ` <Pine.LNX.4.58.0804181555560.15372-13q4cmjDBaTP3RPoUHIrnuTW4wlIGRCZ@public.gmane.org>
2008-04-21  9:17                                 ` Wolfram Sang
2008-04-21 17:20                                   ` Trent Piepho
     [not found]                                     ` <Pine.LNX.4.58.0804211005410.15697-nuiHJn5p267P3RPoUHIrnuTW4wlIGRCZ@public.gmane.org>
2008-04-24 10:47                                       ` Wolfram Sang
     [not found]                                         ` <20080424104740.GB4201-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-04-27  1:28                                           ` Trent Piepho
2008-04-18 16:48                         ` David Brownell
     [not found]                           ` <200804180948.15298.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-04-18 23:26                             ` Trent Piepho
2008-04-18  8:59                     ` Wolfram Sang
2008-04-15 10:13             ` Wolfram Sang
2008-04-17 16:05   ` Wolfram Sang
2008-04-17 16:24     ` Jean Delvare [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-05-15 20:36 Wolfram Sang
     [not found] ` <1210883799-25188-1-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-05-22 20:20   ` Jean Delvare
     [not found]     ` <20080522222022.68d65cd7-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-05-22 21:35       ` David Brownell
     [not found]         ` <200805221435.36829.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-05-23  7:17           ` Jean Delvare
     [not found]             ` <20080523091703.2ba86bb1-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-05-24 21:11               ` David Brownell
2008-05-30  9:15       ` Wolfram Sang
     [not found]         ` <20080530091534.GB727-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-05-30  9:51           ` Jean Delvare
     [not found]             ` <20080530115131.0e111fdb-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-05-30 10:45               ` Wolfram Sang
2008-06-02 16:21       ` Wolfram Sang
     [not found]         ` <20080602162154.GA11141-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-06-02 18:50           ` Jean Delvare
     [not found]             ` <20080602205034.3e2b392b-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-02 19:33               ` David Brownell
     [not found]                 ` <200806021233.46781.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-06-02 19:48                   ` Jean Delvare
     [not found]                     ` <20080602214823.15ca190b-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-03 20:36                       ` David Brownell
     [not found]                         ` <200806031336.35678.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-06-03 21:19                           ` Jean Delvare
     [not found]                             ` <20080603231927.61f9eb61-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-04 11:51                               ` Wolfram Sang
2008-06-08  8:40                           ` Jean Delvare
     [not found]                             ` <20080608104038.006be072-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-06-08 20:26                               ` David Brownell
2008-05-23  7:21   ` Jean Delvare

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=20080417182403.09b570e4@hyperion.delvare \
    --to=khali-puyad+kwke1g9huczpvpmw@public.gmane.org \
    --cc=i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org \
    --cc=w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@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