i2c-mxs woes
Hi,
I'm having some issues with the i2c-mxs driver in 3.9. Marek already pointed me to the patches from Lucas and that greatly improved the situation.
For the context, my board has three nau7802 adcs, connected to a gpio i2c-muxer, connected to i2c1.
Here is what I observe:
On 3.9:
# time cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw 2620 real 0m 7.08s user 0m 0.00s sys 0m 0.02s # time cat /sys/bus/iio/devices/iio:device1/in_voltage1_raw 2623 real 0m 6.07s user 0m 0.01s sys 0m 0.01s #
On 3.9 but using i2c-gpio to bitbang on the bus:
# time cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw 2661 real 0m 0.08s user 0m 0.00s sys 0m 0.06s # time cat /sys/bus/iio/devices/iio:device1/in_voltage1_raw 2270 real 0m 0.08s user 0m 0.00s sys 0m 0.05s #
On 3.7, i2c-mxs:
# time cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw 2643 real 0m 0.06s user 0m 0.01s sys 0m 0.02s # time cat /sys/bus/iio/devices/iio:device1/in_voltage1_raw 1546 real 0m 0.05s user 0m 0.00s sys 0m 0.02s #
Any input would be appreciated.
Regards,
Signature · 3 lines
Alexandre Belloni, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
A message that is not in the archive (sent off-list or not yet received): 51712C8B.7070302-wi1+55ScJUtKEb57/[email protected]
Dear Alexandre Belloni,
Quoted 13 lines
Hi,
I'm having some issues with the i2c-mxs driver in 3.9. Marek already pointed me to the patches from Lucas and that greatly improved the situation.
For the context, my board has three nau7802 adcs, connected to a gpio i2c-muxer, connected to i2c1.
Here is what I observe:
On 3.9:
Quoted 11 lines
# time cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw 2620 real 0m 7.08s user 0m 0.00s sys 0m 0.02s # time cat /sys/bus/iio/devices/iio:device1/in_voltage1_raw 2623 real 0m 6.07s user 0m 0.01s sys 0m 0.01s #
Looks like there's a fixes 7-second delay. Like a timeout maybe?
Best regards,
Marek Vasut
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 1 line · Marek Vasut
Looks like there's a fixes 7-second delay. Like a timeout maybe?
Yeah, probably, I'm reading 6 times 3 registers of the ADC
BTW, the code is there:
https://github.com/crystalfontz/cfa_10036_kernel/blob/cfa-3.9-12-10049-i2c-adc/drivers/iio/adc/nau7802.c
Signature · 3 lines
Alexandre Belloni, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Hi Alexandre,
Am Freitag, den 19.04.2013, 13:37 +0200 schrieb Alexandre Belloni:
Quoted 13 lines
Hi,
I'm having some issues with the i2c-mxs driver in 3.9. Marek already pointed me to the patches from Lucas and that greatly improved the situation.
For the context, my board has three nau7802 adcs, connected to a gpio i2c-muxer, connected to i2c1.
Here is what I observe:
On 3.9:
Quoted 12 lines
# time cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw 2620 real 0m 7.08s user 0m 0.00s sys 0m 0.02s # time cat /sys/bus/iio/devices/iio:device1/in_voltage1_raw 2623 real 0m 6.07s user 0m 0.01s sys 0m 0.01s #
Is this with or without my patches? Before introduction of the error handling in PIO code there were a lot of situations where the controller would signal an error, but the driver would go on as usual, so the next transaction wouldn't succeed and stop for a whole second until the timeout hits and resets the controller.
Regards,
Lucas
Signature · 4 lines
Pengutronix e.K. | Lucas Stach | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-5076 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
A message that is not in the archive (sent off-list or not yet received): 1366372407.4146.3.camel-WzVe3FnzCwFR6QfukMTsflXZhhPuCNm+@public.gmane.org
Hi Lucas,
Quoted 28 lines · Lucas Stach
Hi Alexandre,
Am Freitag, den 19.04.2013, 13:37 +0200 schrieb Alexandre Belloni:
Quoted 13 lines
Hi,
I'm having some issues with the i2c-mxs driver in 3.9. Marek already pointed me to the patches from Lucas and that greatly improved the situation.
For the context, my board has three nau7802 adcs, connected to a gpio i2c-muxer, connected to i2c1.
Here is what I observe:
On 3.9:
Quoted 12 lines
# time cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw 2620 real 0m 7.08s user 0m 0.00s sys 0m 0.02s # time cat /sys/bus/iio/devices/iio:device1/in_voltage1_raw 2623 real 0m 6.07s user 0m 0.01s sys 0m 0.01s #
Quoted 5 lines
Is this with or without my patches? Before introduction of the error handling in PIO code there were a lot of situations where the controller would signal an error, but the driver would go on as usual, so the next transaction wouldn't succeed and stop for a whole second until the timeout hits and resets the controller.
This is with v2 of your patches. I applied "i2c-mxs remove races in PIO code" and "i2c-mxs do error checking and handling in PIO mode"
Regards,
Signature · 3 lines
Alexandre Belloni, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com