linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] I2C: busses: i2c-eg20t Do not print error message in syslog if no ACK received
@ 2013-11-17  8:58 Andreas Werner
       [not found] ` <1384678731-10399-1-git-send-email-wernerandy-Mmb7MZpHnFY@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Andreas Werner @ 2013-11-17  8:58 UTC (permalink / raw)
  To: wsa-z923LK4zBo2bacvFa/9K2g
  Cc: khali-PUYAD+kWke1g9hUCZPvPmw, jacmet-OfajU3CKLf1/SzgSGea1oA,
	hskinnemoen-Re5JQEeQqe8AvxtiuMwx3w,
	dianders-F7+t8E8rja9g9hUCZPvPmw, linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, wernerandy-Mmb7MZpHnFY

Revision 2:
	- delete the pch_err completly instead of changing to pch_dbg
	  because there is already a pch_dbg at the function who calls
	  pch_i2c_getack.
	- Fixed message line issue

Using the i2c-eg20t driver and call i2cdetect or probe on the bus,
the driver will print a lot of error messages if there was no ACK
received.

i2cdetect normally print a table with all the available devices. If there
is no device on the address, the table will be empty.
Currently with the i2c-eg20t driver, the table is not visible because
the error messages destroy the table.

Error message: pch_i2c_getack return -71

This patch prevent the driver to print the messages to syslog.
The pch_i2c_wait_for_check_xfer function is the only one who is
calling pch_i2c_getack, and there is already a dbg print if it fails,
so we can delete the pch_err in pch_i2c_getack completly.

Fixed print message to be a one liner so we can grep for the
error message.

Tested on Intel Atom E6xx and Eg20t Chipset.

Signed-off-by: Andreas Werner <wernerandy-Mmb7MZpHnFY@public.gmane.org>
---
 drivers/i2c/busses/i2c-eg20t.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/i2c/busses/i2c-eg20t.c b/drivers/i2c/busses/i2c-eg20t.c
index 0f37529..5c39f90 100644
--- a/drivers/i2c/busses/i2c-eg20t.c
+++ b/drivers/i2c/busses/i2c-eg20t.c
@@ -321,10 +321,8 @@ static s32 pch_i2c_getack(struct i2c_algo_pch_data *adap)
 	void __iomem *p = adap->pch_base_address;
 	reg_val = ioread32(p + PCH_I2CSR) & PCH_GETACK;
 
-	if (reg_val != 0) {
-		pch_err(adap, "return%d\n", -EPROTO);
+	if (reg_val != 0)
 		return -EPROTO;
-	}
 
 	return 0;
 }
@@ -367,8 +365,7 @@ static int pch_i2c_wait_for_check_xfer(struct i2c_algo_pch_data *adap)
 	adap->pch_event_flag = 0;
 
 	if (pch_i2c_getack(adap)) {
-		pch_dbg(adap, "Receive NACK for slave address"
-			"setting\n");
+		pch_dbg(adap, "Receive NACK for slave address setting\n");
 		return -EIO;
 	}
 
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] I2C: busses: i2c-eg20t Do not print error message in syslog if no ACK received
       [not found] ` <1384678731-10399-1-git-send-email-wernerandy-Mmb7MZpHnFY@public.gmane.org>
@ 2013-11-17 11:08   ` Wolfram Sang
  2013-11-17 12:39     ` Andreas Werner
  0 siblings, 1 reply; 8+ messages in thread
From: Wolfram Sang @ 2013-11-17 11:08 UTC (permalink / raw)
  To: Andreas Werner
  Cc: khali-PUYAD+kWke1g9hUCZPvPmw, jacmet-OfajU3CKLf1/SzgSGea1oA,
	hskinnemoen-Re5JQEeQqe8AvxtiuMwx3w,
	dianders-F7+t8E8rja9g9hUCZPvPmw, linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1304 bytes --]

On Sun, Nov 17, 2013 at 09:58:51AM +0100, Andreas Werner wrote:
> Revision 2:
> 	- delete the pch_err completly instead of changing to pch_dbg
> 	  because there is already a pch_dbg at the function who calls
> 	  pch_i2c_getack.
> 	- Fixed message line issue

I prefer this below "---" after Signed-off.

> 
> diff --git a/drivers/i2c/busses/i2c-eg20t.c b/drivers/i2c/busses/i2c-eg20t.c
> index 0f37529..5c39f90 100644
> --- a/drivers/i2c/busses/i2c-eg20t.c
> +++ b/drivers/i2c/busses/i2c-eg20t.c
> @@ -321,10 +321,8 @@ static s32 pch_i2c_getack(struct i2c_algo_pch_data *adap)
>  	void __iomem *p = adap->pch_base_address;
>  	reg_val = ioread32(p + PCH_I2CSR) & PCH_GETACK;
>  
> -	if (reg_val != 0) {
> -		pch_err(adap, "return%d\n", -EPROTO);
> +	if (reg_val != 0)
>  		return -EPROTO;

That could be fixed to -ENXIO according to
Documentation/i2c/fault-codes.

> @@ -367,8 +365,7 @@ static int pch_i2c_wait_for_check_xfer(struct i2c_algo_pch_data *adap)
>  	adap->pch_event_flag = 0;
>  
>  	if (pch_i2c_getack(adap)) {
> -		pch_dbg(adap, "Receive NACK for slave address"
> -			"setting\n");
> +		pch_dbg(adap, "Receive NACK for slave address setting\n");
>  		return -EIO;

What about returning the value we got from pch_i2c_getack?

Regards,

   Wolfram


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] I2C: busses: i2c-eg20t Do not print error message in syslog if no ACK received
  2013-11-17 12:39     ` Andreas Werner
@ 2013-11-17 12:18       ` Wolfram Sang
  2013-11-17 16:53         ` Andreas Werner
  0 siblings, 1 reply; 8+ messages in thread
From: Wolfram Sang @ 2013-11-17 12:18 UTC (permalink / raw)
  To: Andreas Werner
  Cc: khali, jacmet, hskinnemoen, dianders, linux-i2c, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 411 bytes --]


> Is there another reason why pch_i2c_getack returned EPROTO?
> May be ENXIO was introduced later?

Imperfect review :)

> I think we can just replace the -EIO with -ENXIO or do you want to pick up the return
> vale of pch_i2c_getack and return that ?

The latter. As a rule of thumb, it is usually more sustainable to pass
through error codes. Overloading them should only be done when really
necessary IMO.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] I2C: busses: i2c-eg20t Do not print error message in syslog if no ACK received
  2013-11-17 11:08   ` Wolfram Sang
@ 2013-11-17 12:39     ` Andreas Werner
  2013-11-17 12:18       ` Wolfram Sang
  0 siblings, 1 reply; 8+ messages in thread
From: Andreas Werner @ 2013-11-17 12:39 UTC (permalink / raw)
  To: Wolfram Sang
  Cc: khali-PUYAD+kWke1g9hUCZPvPmw, jacmet-OfajU3CKLf1/SzgSGea1oA,
	hskinnemoen-Re5JQEeQqe8AvxtiuMwx3w,
	dianders-F7+t8E8rja9g9hUCZPvPmw, linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

On Sun, Nov 17, 2013 at 12:08:46PM +0100, Wolfram Sang wrote:
> On Sun, Nov 17, 2013 at 09:58:51AM +0100, Andreas Werner wrote:
> > Revision 2:
> > 	- delete the pch_err completly instead of changing to pch_dbg
> > 	  because there is already a pch_dbg at the function who calls
> > 	  pch_i2c_getack.
> > 	- Fixed message line issue
> 
> I prefer this below "---" after Signed-off.
Ok i will change it next time.
> 
> > 
> > diff --git a/drivers/i2c/busses/i2c-eg20t.c b/drivers/i2c/busses/i2c-eg20t.c
> > index 0f37529..5c39f90 100644
> > --- a/drivers/i2c/busses/i2c-eg20t.c
> > +++ b/drivers/i2c/busses/i2c-eg20t.c
> > @@ -321,10 +321,8 @@ static s32 pch_i2c_getack(struct i2c_algo_pch_data *adap)
> >  	void __iomem *p = adap->pch_base_address;
> >  	reg_val = ioread32(p + PCH_I2CSR) & PCH_GETACK;
> >  
> > -	if (reg_val != 0) {
> > -		pch_err(adap, "return%d\n", -EPROTO);
> > +	if (reg_val != 0)
> >  		return -EPROTO;
> 
> That could be fixed to -ENXIO according to
> Documentation/i2c/fault-codes.
Yes you are right -ENXIO should returned if no ACK was received.
Is there another reason why pch_i2c_getack returned EPROTO?
May be ENXIO was introduced later?
> 
> > @@ -367,8 +365,7 @@ static int pch_i2c_wait_for_check_xfer(struct i2c_algo_pch_data *adap)
> >  	adap->pch_event_flag = 0;
> >  
> >  	if (pch_i2c_getack(adap)) {
> > -		pch_dbg(adap, "Receive NACK for slave address"
> > -			"setting\n");
> > +		pch_dbg(adap, "Receive NACK for slave address setting\n");
> >  		return -EIO;
> 
> What about returning the value we got from pch_i2c_getack?
> 
EIO is almost ok, because EIO means something went wrong when performing
an I/O operation, but yes we can return the value from pch_i2c_getack (ENXIO)
to get more detailed informations whats going wrong exactly (no ACK reveiced).

I think we can just replace the -EIO with -ENXIO or do you want to pick up the return
vale of pch_i2c_getack and return that ?

Regards

Andy


> Regards,
> 
>    Wolfram
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] I2C: busses: i2c-eg20t Do not print error message in syslog if no ACK received
  2013-11-17 12:18       ` Wolfram Sang
@ 2013-11-17 16:53         ` Andreas Werner
       [not found]           ` <20131117165329.GA1562-Zv899e0YUSYXU02nzanrWNbf9cGiqdzd@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Andreas Werner @ 2013-11-17 16:53 UTC (permalink / raw)
  To: Wolfram Sang
  Cc: khali, jacmet, hskinnemoen, dianders, linux-i2c, linux-kernel

On Sun, Nov 17, 2013 at 01:18:09PM +0100, Wolfram Sang wrote:
> 
> > Is there another reason why pch_i2c_getack returned EPROTO?
> > May be ENXIO was introduced later?
> 
> Imperfect review :)
> 
> > I think we can just replace the -EIO with -ENXIO or do you want to pick up the return
> > vale of pch_i2c_getack and return that ?
> 
> The latter. As a rule of thumb, it is usually more sustainable to pass
> through error codes. Overloading them should only be done when really
> necessary IMO.
> 
Ok, if that will be ok in pch_i2c_wait_for_check_xfer i will resend 
the patch.

        ret = pch_i2c_getack(adap);

        if (ret)
                pch_dbg(adap, "Receive NACK for slave address setting\n");

        return (int)ret;

Regards 
Andy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] I2C: busses: i2c-eg20t Do not print error message in syslog if no ACK received
       [not found]           ` <20131117165329.GA1562-Zv899e0YUSYXU02nzanrWNbf9cGiqdzd@public.gmane.org>
@ 2013-11-17 17:08             ` Wolfram Sang
  2013-11-17 17:16               ` Andreas Werner
  0 siblings, 1 reply; 8+ messages in thread
From: Wolfram Sang @ 2013-11-17 17:08 UTC (permalink / raw)
  To: Andreas Werner
  Cc: khali-PUYAD+kWke1g9hUCZPvPmw, jacmet-OfajU3CKLf1/SzgSGea1oA,
	hskinnemoen-Re5JQEeQqe8AvxtiuMwx3w,
	dianders-F7+t8E8rja9g9hUCZPvPmw, linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1183 bytes --]

On Sun, Nov 17, 2013 at 05:53:29PM +0100, Andreas Werner wrote:
> On Sun, Nov 17, 2013 at 01:18:09PM +0100, Wolfram Sang wrote:
> > 
> > > Is there another reason why pch_i2c_getack returned EPROTO?
> > > May be ENXIO was introduced later?
> > 
> > Imperfect review :)
> > 
> > > I think we can just replace the -EIO with -ENXIO or do you want to pick up the return
> > > vale of pch_i2c_getack and return that ?
> > 
> > The latter. As a rule of thumb, it is usually more sustainable to pass
> > through error codes. Overloading them should only be done when really
> > necessary IMO.
> > 
> Ok, if that will be ok in pch_i2c_wait_for_check_xfer i will resend 
> the patch.
> 
>         ret = pch_i2c_getack(adap);
> 
>         if (ret)
>                 pch_dbg(adap, "Receive NACK for slave address setting\n");
> 
>         return (int)ret;

Hmm, the cast looks ugly. Looking at the driver more closely, my
preferred solution would be to elimiate the getack function and just do
that directly in wait_for_check_xfer:

	if (ioread32(adap->pch_base_address + PCH_I2CSR) & PCH_GETACK) {
		pch_dbg ...
		return -ENXIO;
	}

Something like that...


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] I2C: busses: i2c-eg20t Do not print error message in syslog if no ACK received
  2013-11-17 17:08             ` Wolfram Sang
@ 2013-11-17 17:16               ` Andreas Werner
  2013-11-17 17:31                 ` Wolfram Sang
  0 siblings, 1 reply; 8+ messages in thread
From: Andreas Werner @ 2013-11-17 17:16 UTC (permalink / raw)
  To: Wolfram Sang
  Cc: khali, jacmet, hskinnemoen, dianders, linux-i2c, linux-kernel

On Sun, Nov 17, 2013 at 06:08:38PM +0100, Wolfram Sang wrote:
> On Sun, Nov 17, 2013 at 05:53:29PM +0100, Andreas Werner wrote:
> > On Sun, Nov 17, 2013 at 01:18:09PM +0100, Wolfram Sang wrote:
> > > 
> > > > Is there another reason why pch_i2c_getack returned EPROTO?
> > > > May be ENXIO was introduced later?
> > > 
> > > Imperfect review :)
> > > 
> > > > I think we can just replace the -EIO with -ENXIO or do you want to pick up the return
> > > > vale of pch_i2c_getack and return that ?
> > > 
> > > The latter. As a rule of thumb, it is usually more sustainable to pass
> > > through error codes. Overloading them should only be done when really
> > > necessary IMO.
> > > 
> > Ok, if that will be ok in pch_i2c_wait_for_check_xfer i will resend 
> > the patch.
> > 
> >         ret = pch_i2c_getack(adap);
> > 
> >         if (ret)
> >                 pch_dbg(adap, "Receive NACK for slave address setting\n");
> > 
> >         return (int)ret;
> 
> Hmm, the cast looks ugly. Looking at the driver more closely, my
> preferred solution would be to elimiate the getack function and just do
> that directly in wait_for_check_xfer:
> 
> 	if (ioread32(adap->pch_base_address + PCH_I2CSR) & PCH_GETACK) {
> 		pch_dbg ...
> 		return -ENXIO;
> 	}
> 
> Something like that...
> 
Sometimes its really usfull to look closely :-)
I agree you, because the function is just called one time, so
we can really delete this function.

regards
Andy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] I2C: busses: i2c-eg20t Do not print error message in syslog if no ACK received
  2013-11-17 17:16               ` Andreas Werner
@ 2013-11-17 17:31                 ` Wolfram Sang
  0 siblings, 0 replies; 8+ messages in thread
From: Wolfram Sang @ 2013-11-17 17:31 UTC (permalink / raw)
  To: Andreas Werner
  Cc: khali, jacmet, hskinnemoen, dianders, linux-i2c, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 196 bytes --]


> Sometimes its really usfull to look closely :-)

I can't do this for every patch right from the beginning since my time
is limited. I usually start with letting people sort it out themselves.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-11-17 17:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-17  8:58 [PATCH v2] I2C: busses: i2c-eg20t Do not print error message in syslog if no ACK received Andreas Werner
     [not found] ` <1384678731-10399-1-git-send-email-wernerandy-Mmb7MZpHnFY@public.gmane.org>
2013-11-17 11:08   ` Wolfram Sang
2013-11-17 12:39     ` Andreas Werner
2013-11-17 12:18       ` Wolfram Sang
2013-11-17 16:53         ` Andreas Werner
     [not found]           ` <20131117165329.GA1562-Zv899e0YUSYXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2013-11-17 17:08             ` Wolfram Sang
2013-11-17 17:16               ` Andreas Werner
2013-11-17 17:31                 ` Wolfram Sang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).