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: [PATCHv2 3/3] Add platform driver on top of the new pca-algorithm
Date: Sat, 8 Mar 2008 11:13:37 +0100	[thread overview]
Message-ID: <20080308111337.440a7c83@hyperion.delvare> (raw)
In-Reply-To: <fqrob6$3e6$1@ger.gmane.org>

Hi Wolfgang,

On Fri, 07 Mar 2008 16:52:05 +0100, Wolfram Sang wrote:
> nearly a month since your reply, I am sorry. Work was shifting in a 
> different direction meanwhile.

No problem, I have been pretty busy myself.

> (Everything I did not comment on is already fixed as suggested)
> 
> >> +/* Read/Write functions for different register alignments */
> >> +
> >> +static int i2c_pca_pf_readbyte8(void *pd, int reg)
> >> +{
> >> +	struct i2c_pca_pf_data *i2c = pd;
> >> +	return ioread8(i2c->reg_base + reg);
> >> +}
> >> +
> >> +static int i2c_pca_pf_readbyte16(void *pd, int reg)
> >> +{
> >> +	struct i2c_pca_pf_data *i2c = pd;
> >> +	return ioread8(i2c->reg_base + reg * 2);
> > 
> > Shouldn't this be ioread16?
> I don't think so. The registers get scattered differently in the 
> address-room, but their size itself is still 8 bit. I expect that 
> ioread8 gives me just those 8 bits I want, hiding that some busses 
> actually do 32-bit accesses only. Am I wrong?

I really don't know, I am not familiar with the hardware. Leave it as
is, we'll fix it later if someone complains.

> >> +	if (i2c->irq) {
> >> +		ret = wait_event_interruptible(i2c->wait,
> >> +			i2c->algo_data.read_byte(i2c, I2C_PCA_CON)
> >> +			& I2C_PCA_CON_SI);
> >> +	} else {
> >> +		while ((i2c->algo_data.read_byte(i2c, I2C_PCA_CON)
> >> +				& I2C_PCA_CON_SI) == 0)
> >> +			udelay(100);
> > 
> > No timeout?
> You got a point there. The thing is that the underlying pca-algorithm 
> does not have a timeout when expecting this condition (interrupt bit 
> set). Even when using interrupts instead of polling, it will just sleep 
> forever, if there goes something _really_ wrong. I could copy at least 
> this behaviour by replacing the udelay(100); with an msleep(x) with x 
> being a module parameter. I hope this is good enough, connecting the IRQ 
> is preferred anyhow. (I am afraid that I don't have the time to add a 
> sane and tested timeout mechanism to the algorithm)

I'd rather not make the driver more complex for a mode you do not want
to encourage anyway. Leave the code as is, once again we can improve it
later if really needed.

Waiting for an updated patch, then I'll push it to -mm. Patches 1/3 and
2/3 are already there.

-- 
Jean Delvare

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

  reply	other threads:[~2008-03-08 10:13 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-06 20:20 [PATCHv2 0/3] PCA9564 platform driver Wolfram Sang
2008-02-06 20:20 ` [PATCHv2 1/3] Remove trailing whitespaces and unnecessary UTF Wolfram Sang
     [not found]   ` <20080206203036.394734224-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-02-12 16:31     ` Jean Delvare
2008-02-06 20:20 ` [PATCHv2 2/3] Extend the PCA9564-algorithm and adapt its only user (pca-isa) Wolfram Sang
     [not found]   ` <20080206203036.863518353-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-02-12 17:14     ` Jean Delvare
2008-02-06 20:20 ` [PATCHv2 3/3] Add platform driver on top of the new pca-algorithm Wolfram Sang
     [not found]   ` <20080206203037.228001815-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-02-12 21:53     ` Jean Delvare
     [not found]       ` <20080212225306.4cf2bd74-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-03-07 15:52         ` Wolfram Sang
2008-03-08 10:13           ` Jean Delvare [this message]
     [not found]             ` <20080308111337.440a7c83-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-03-10 11:26               ` Wolfram Sang
     [not found]                 ` <20080310112640.GB12128-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-03-10 21:31                   ` Jean Delvare
     [not found]                     ` <20080310223116.73277c4f-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-03-14 14:50                       ` Wolfram Sang
     [not found]                         ` <20080314145010.GA28612-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-03-14 18:46                           ` Jean Delvare
     [not found]                             ` <20080314194628.07630698-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-03-16 14:28                               ` Wolfram Sang
     [not found]                                 ` <20080316142834.GA4485-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2008-03-16 15:44                                   ` Jean Delvare
     [not found]                                     ` <20080316164457.19157e0c-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-03-16 19:55                                       ` Trent Piepho
2008-03-12 10:43                   ` 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=20080308111337.440a7c83@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