Thread (30 messages) 30 messages, 4 authors, 2021-03-18

Re: Errant readings on LM81 with T2080 SoC

From: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Date: 2021-03-09 04:37:56
Also in: linux-hwmon, linux-i2c, lkml

On 9/03/21 11:10 am, Chris Packham wrote:
On 8/03/21 5:59 pm, Guenter Roeck wrote:
quoted
On 3/7/21 8:37 PM, Chris Packham wrote:
[ ... ]
quoted
quoted
That's from -ENXIO which is used in only one place in i2c-mpc.c. I'll
enable some debug and see what we get.
For the errant readings there was nothing abnormal reported by the 
driver.

For the "No such device or address" I saw "mpc-i2c ffe119000.i2c: No
RXAK" which matches up with the -ENXIO return.
Id suggest to check the time until not busy and stop in mpc_xfer().
Those hot loops are unusual, and may well mess up the code especially
if preempt is enabled.
Reworking those loops seems to have had a positive result. I'll do a 
bit more testing and hopefully get a patch out later today.
D'oh my "fix" was to replace the cond_reshed() with msleep(10) which did 
"fix" the problem but made every i2c read slow. I didn't notice when 
testing just the lm81 but as soon as I booted the system with more i2c 
devices I saw stupidly slow boot times.
quoted
  Also, are you using interrupts or polling in
your system ? The interrupt handler looks a bit odd, with "Read again
to allow register to stabilise".

Do you have fsl,timeout set in the devicetree properties and, if so,
have you played with it ?

Other than that, the only other real idea I have would be to monitor
the i2c bus.

Guenter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help