On Sun, 11 May 2008 10:13:25 -0700, David Brownell wrote:
> On Saturday 10 May 2008, you wrote:
> > >  
> > >  static int ali1563_block_start(struct i2c_adapter * a)
> > > @@ -170,7 +170,7 @@ static int ali1563_block_start(struct i2
> > >               data & HST_STS_BUSERR ? "No response or Bus Collision " : 
> > > "",
> > >               data & HST_STS_DEVERR ? "Device Error " : "",
> > >               !(data & HST_STS_DONE) ? "Transaction Never Finished " : 
> > > "");
> > > -     return -1;
> > > +     return -EIO;
> > >  }
> > 
> > And same here. That's a little more work, admittedly.
> 
> Returning ENXIO for BUSERR/no-response doesn't follow your
> heuristic of trusting the logspam-eliminators ... plus, it's
> not clear that's not a different failure mode on that path.

Elsewhere in this driver there is:

        /* device error - no response, ignore the autodetection case */
        if ((data & HST_STS_DEVERR) && (size != HST_CNTL2_QUICK)) {
                dev_err(&a->dev, "Device error!\n");
        }

which makes it clear to me that HST_STS_DEVERR is what you get when no
device acks a transaction. So returning -ENODEV would make sense.

> NVidia seems to not have ALI 1563 specs on line (sigh) so
> for now I'll just stick to your heuristic.

Not sure why nVidia would host ALi datasheets in the first place? Let
alone the fact that nVidia is notoriously known to _not_ publish
datasheets anyway :(

> I did make the "timeout" fault unique there, since that
> fault was clearly distinguishable.

Agreed.

-- 
Jean Delvare

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

Reply via email to