Message ID | 1390752337-22386-4-git-send-email-ben.dooks@codethink.co.uk (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On Sun, Jan 26, 2014 at 04:05:34PM +0000, Ben Dooks wrote: > The i2c-rcar driver currently prints an error message if the master_xfer > callback fails. However if the bus is being probed then lots of NAKs > will be generated, causing the output of a number of errors printed. > > To solve this, disable the print if the error is not -EREMOTEIO. > > An example of running i2cdetect: > > 10: i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- 12 i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > > Cc: Simon Horman <horms+renesas@verge.net.au> > Cc: Wolfram Sang <wsa@the-dreams.de> > Cc: linux-i2c@vger.kernel.org > Cc: linux-sh@vger.kernel.org > Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> All applied to for-current, thanks, especially for doing the extra kernel-doc update!
On Sun, Jan 26, 2014 at 04:05:34PM +0000, Ben Dooks wrote: > The i2c-rcar driver currently prints an error message if the master_xfer > callback fails. However if the bus is being probed then lots of NAKs > will be generated, causing the output of a number of errors printed. > > To solve this, disable the print if the error is not -EREMOTEIO. > > An example of running i2cdetect: So, after this patch i2cdetect runs fine for you? I assume you are working with the lager/r8a7790 board? With koelsch/r8a7791, it stalls the bus :(
On Sun, Feb 16, 2014 at 10:46 AM, Wolfram Sang <wsa@the-dreams.de> wrote: > On Sun, Jan 26, 2014 at 04:05:34PM +0000, Ben Dooks wrote: >> The i2c-rcar driver currently prints an error message if the master_xfer >> callback fails. However if the bus is being probed then lots of NAKs >> will be generated, causing the output of a number of errors printed. >> >> To solve this, disable the print if the error is not -EREMOTEIO. >> >> An example of running i2cdetect: > > So, after this patch i2cdetect runs fine for you? I assume you are > working with the lager/r8a7790 board? With koelsch/r8a7791, it stalls > the bus :( Do you know at which i2c client device it stalls? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, Feb 16, 2014 at 11:25:37AM +0100, Geert Uytterhoeven wrote: > On Sun, Feb 16, 2014 at 10:46 AM, Wolfram Sang <wsa@the-dreams.de> wrote: > > On Sun, Jan 26, 2014 at 04:05:34PM +0000, Ben Dooks wrote: > >> The i2c-rcar driver currently prints an error message if the master_xfer > >> callback fails. However if the bus is being probed then lots of NAKs > >> will be generated, causing the output of a number of errors printed. > >> > >> To solve this, disable the print if the error is not -EREMOTEIO. > >> > >> An example of running i2cdetect: > > > > So, after this patch i2cdetect runs fine for you? I assume you are > > working with the lager/r8a7790 board? With koelsch/r8a7791, it stalls > > the bus :( > > Do you know at which i2c client device it stalls? It gives errors when it scans for the first device. The errors are different depending on if I use SMBUS_QUICK or BYTE_READ, but the bus is unusable afterwards. I can read/write the eeprom on that bus before I use i2cdetect, but not afterwards.
On 16/02/14 09:46, Wolfram Sang wrote: > On Sun, Jan 26, 2014 at 04:05:34PM +0000, Ben Dooks wrote: >> The i2c-rcar driver currently prints an error message if the master_xfer >> callback fails. However if the bus is being probed then lots of NAKs >> will be generated, causing the output of a number of errors printed. >> >> To solve this, disable the print if the error is not -EREMOTEIO. >> >> An example of running i2cdetect: > > So, after this patch i2cdetect runs fine for you? I assume you are > working with the lager/r8a7790 board? With koelsch/r8a7791, it stalls > the bus :( It runs fine most of the time, however I've seen some issues with the bus locking up. However it seems to be random and affects either of bus 2 or bus 3 randomly. Once the bus does lock up then there is no possibility of further transfers. I am trying to put together a breakout board to get at the signals involved as they are all pretty much only available on high-density connectors. I hope to have a look at this before the end of the week and see if there is a fix for this.
Hello. On 01/26/2014 07:05 PM, Ben Dooks wrote: > The i2c-rcar driver currently prints an error message if the master_xfer > callback fails. However if the bus is being probed then lots of NAKs > will be generated, causing the output of a number of errors printed. > To solve this, disable the print if the error is not -EREMOTEIO. > An example of running i2cdetect: > 10: i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- 12 i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > -- i2c-rcar e6530000.i2c: error -121 : 15 > Cc: Simon Horman <horms+renesas@verge.net.au> > Cc: Wolfram Sang <wsa@the-dreams.de> > Cc: linux-i2c@vger.kernel.org > Cc: linux-sh@vger.kernel.org > Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> > --- > drivers/i2c/busses/i2c-rcar.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c > index 2c2fd7c..0d25104 100644 > --- a/drivers/i2c/busses/i2c-rcar.c > +++ b/drivers/i2c/busses/i2c-rcar.c > @@ -623,7 +623,7 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap, > > pm_runtime_put(dev); > > - if (ret < 0) > + if (ret < 0 && ret != -EREMOTEIO) > dev_err(dev, "error %d : %x\n", ret, priv->flags); Hm, I'm now getting -EBUSY and -EAGAIN running i2cdetect on R8A7791 base Henninger board. Only when I comment out the above 2 lines, I can get the bus scanned, otherwise I don't see any devices at all. WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> >- if (ret < 0) > >+ if (ret < 0 && ret != -EREMOTEIO) > > dev_err(dev, "error %d : %x\n", ret, priv->flags); > > Hm, I'm now getting -EBUSY and -EAGAIN running i2cdetect on > R8A7791 base Henninger board. Only when I comment out the above 2 > lines, I can get the bus scanned, otherwise I don't see any devices > at all. Huh, this is only a printout? Do you get those errors as well if you remove the printout and add a delay at that place? And -EAGAIN? This is arbitration lost. Do you have another I2C master on the bus?
On 08/05/14 23:03, Sergei Shtylyov wrote: > Hello. > > On 01/26/2014 07:05 PM, Ben Dooks wrote: > >> The i2c-rcar driver currently prints an error message if the master_xfer >> callback fails. However if the bus is being probed then lots of NAKs >> will be generated, causing the output of a number of errors printed. > >> To solve this, disable the print if the error is not -EREMOTEIO. > >> An example of running i2cdetect: > >> 10: i2c-rcar e6530000.i2c: error -121 : 15 >> -- i2c-rcar e6530000.i2c: error -121 : 15 >> -- 12 i2c-rcar e6530000.i2c: error -121 : 15 >> -- i2c-rcar e6530000.i2c: error -121 : 15 >> -- i2c-rcar e6530000.i2c: error -121 : 15 >> -- i2c-rcar e6530000.i2c: error -121 : 15 >> -- i2c-rcar e6530000.i2c: error -121 : 15 >> -- i2c-rcar e6530000.i2c: error -121 : 15 > >> Cc: Simon Horman <horms+renesas@verge.net.au> >> Cc: Wolfram Sang <wsa@the-dreams.de> >> Cc: linux-i2c@vger.kernel.org >> Cc: linux-sh@vger.kernel.org >> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> >> --- >> drivers/i2c/busses/i2c-rcar.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> diff --git a/drivers/i2c/busses/i2c-rcar.c >> b/drivers/i2c/busses/i2c-rcar.c >> index 2c2fd7c..0d25104 100644 >> --- a/drivers/i2c/busses/i2c-rcar.c >> +++ b/drivers/i2c/busses/i2c-rcar.c >> @@ -623,7 +623,7 @@ static int rcar_i2c_master_xfer(struct i2c_adapter >> *adap, >> >> pm_runtime_put(dev); >> >> - if (ret < 0) >> + if (ret < 0 && ret != -EREMOTEIO) >> dev_err(dev, "error %d : %x\n", ret, priv->flags); > > Hm, I'm now getting -EBUSY and -EAGAIN running i2cdetect on R8A7791 > base Henninger board. Only when I comment out the above 2 lines, I can > get the bus scanned, otherwise I don't see any devices at all. i2c-detect does not work well on the i2c-rcar due to it insisting on sending or receiving at-least one byte of data. I think it is possible that it confuses some of the bus devices.
Hello. On 05/09/2014 01:32 PM, Ben Dooks wrote: >>> The i2c-rcar driver currently prints an error message if the master_xfer >>> callback fails. However if the bus is being probed then lots of NAKs >>> will be generated, causing the output of a number of errors printed. >>> To solve this, disable the print if the error is not -EREMOTEIO. >>> An example of running i2cdetect: >>> 10: i2c-rcar e6530000.i2c: error -121 : 15 >>> -- i2c-rcar e6530000.i2c: error -121 : 15 >>> -- 12 i2c-rcar e6530000.i2c: error -121 : 15 >>> -- i2c-rcar e6530000.i2c: error -121 : 15 >>> -- i2c-rcar e6530000.i2c: error -121 : 15 >>> -- i2c-rcar e6530000.i2c: error -121 : 15 >>> -- i2c-rcar e6530000.i2c: error -121 : 15 >>> -- i2c-rcar e6530000.i2c: error -121 : 15 >>> Cc: Simon Horman <horms+renesas@verge.net.au> >>> Cc: Wolfram Sang <wsa@the-dreams.de> >>> Cc: linux-i2c@vger.kernel.org >>> Cc: linux-sh@vger.kernel.org >>> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> >>> --- >>> drivers/i2c/busses/i2c-rcar.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> diff --git a/drivers/i2c/busses/i2c-rcar.c >>> b/drivers/i2c/busses/i2c-rcar.c >>> index 2c2fd7c..0d25104 100644 >>> --- a/drivers/i2c/busses/i2c-rcar.c >>> +++ b/drivers/i2c/busses/i2c-rcar.c >>> @@ -623,7 +623,7 @@ static int rcar_i2c_master_xfer(struct i2c_adapter >>> *adap, >>> >>> pm_runtime_put(dev); >>> >>> - if (ret < 0) >>> + if (ret < 0 && ret != -EREMOTEIO) >>> dev_err(dev, "error %d : %x\n", ret, priv->flags); >> Hm, I'm now getting -EBUSY and -EAGAIN running i2cdetect on R8A7791 >> base Henninger board. Only when I comment out the above 2 lines, I can >> get the bus scanned, otherwise I don't see any devices at all. > i2c-detect does not work well on the i2c-rcar due to it insisting > on sending or receiving at-least one byte of data. I've noticed that it works more or less reliable only the first time I run it, on subsequent runs it only sees devices for which a driver is bound, IIRC. > I think it > is possible that it confuses some of the bus devices. Yes, it seems to be the case. However, with these lines commented out, it still works the first time... WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c index 2c2fd7c..0d25104 100644 --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c @@ -623,7 +623,7 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap, pm_runtime_put(dev); - if (ret < 0) + if (ret < 0 && ret != -EREMOTEIO) dev_err(dev, "error %d : %x\n", ret, priv->flags); return ret;
The i2c-rcar driver currently prints an error message if the master_xfer callback fails. However if the bus is being probed then lots of NAKs will be generated, causing the output of a number of errors printed. To solve this, disable the print if the error is not -EREMOTEIO. An example of running i2cdetect: 10: i2c-rcar e6530000.i2c: error -121 : 15 -- i2c-rcar e6530000.i2c: error -121 : 15 -- 12 i2c-rcar e6530000.i2c: error -121 : 15 -- i2c-rcar e6530000.i2c: error -121 : 15 -- i2c-rcar e6530000.i2c: error -121 : 15 -- i2c-rcar e6530000.i2c: error -121 : 15 -- i2c-rcar e6530000.i2c: error -121 : 15 -- i2c-rcar e6530000.i2c: error -121 : 15 Cc: Simon Horman <horms+renesas@verge.net.au> Cc: Wolfram Sang <wsa@the-dreams.de> Cc: linux-i2c@vger.kernel.org Cc: linux-sh@vger.kernel.org Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> --- drivers/i2c/busses/i2c-rcar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)