Skip to contentSkip to conversation

i2c-mxs woes

DISCUSSION Alexandre Belloni 3 participants 5 messages Apr 19, 2013 3 messages not in the archive I2C subsystem host drivers

lore
Share & tools
lore
#0 lore raw

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]

#2 lore raw

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]

#5 lore raw
In reply to a message not in the archive

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

#7 lore raw

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