* [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[parent not found: <1384678731-10399-1-git-send-email-wernerandy-Mmb7MZpHnFY@public.gmane.org>]
* 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 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: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 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
[parent not found: <20131117165329.GA1562-Zv899e0YUSYXU02nzanrWNbf9cGiqdzd@public.gmane.org>]
* 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).