I'm trying to track yet another vendor vs current OpenWrt driver mishandling.

In my vendor kernel:

[    2.243263] i2c-mt7621 1e000900.i2c: clock 100KHz, re-start not support

Which is this driver:


* drivers/i2c/busses/i2c-mt7621.c
*
* Copyright (C) 2013 Steven Liu <steven_...@mediatek.com>
* Copyright (C) 2016 Michael Lee <igv...@gmail.com>
*
* Improve driver for i2cdetect from i2c-tools to detect i2c devices on the bus.
* (C) 2014 Sittisak <sittis...@hotmail.com>

This is kernel 4.14.131

Which of course works fine.

In 5.10 and 5.15 current OpenWrt kernels:


[    2.917685] i2c-mt7621 1e000900.i2c: clock 100 kHz


Writes work correctly. This for example sets LEDs via i2c (handled by the MCU and its GPIOs - I control this code too):


# i2ctransfer -y 0 w1@0x50 0x43 w3 3 2 1
Wed Feb 15 18:23:01 2023 kern.debug kernel: [ 307.979880] i2c i2c-0: ioctl, cmd=0x705, arg=0x7fb736f0 Wed Feb 15 18:23:01 2023 kern.debug kernel: [ 307.979927] i2c i2c-0: ioctl, cmd=0x703, arg=0x50 Wed Feb 15 18:23:01 2023 kern.debug kernel: [ 307.979954] i2c i2c-0: ioctl, cmd=0x707, arg=0x7fb736f0


# i2ctransfer -y 0 w1@0x50 1 r1
Wed Feb 15 18:23:04 2023 kern.debug kernel: [ 310.921389] i2c i2c-0: ioctl, cmd=0x705, arg=0x7febfd60 Wed Feb 15 18:23:04 2023 kern.debug kernel: [ 310.921437] i2c i2c-0: ioctl, cmd=0x703, arg=0x50 Wed Feb 15 18:23:04 2023 kern.debug kernel: [ 310.921463] i2c i2c-0: ioctl, cmd=0x707, arg=0x7febfd60
0x03
# i2ctransfer -y 0 w1@0x50 1 r1
Wed Feb 15 18:23:06 2023 kern.debug kernel: [ 312.714856] i2c i2c-0: ioctl, cmd=0x705, arg=0x7feaf3e0 Wed Feb 15 18:23:06 2023 kern.debug kernel: [ 312.714903] i2c i2c-0: ioctl, cmd=0x703, arg=0x50 Wed Feb 15 18:23:06 2023 kern.debug kernel: [ 312.714928] i2c i2c-0: ioctl, cmd=0x707, arg=0x7feaf3e0
0x00

In particular, for the first read attempt, the value is always the first
value sent as part of the last write. i.e, 3 in this case. After, that,
it's always 0 (the correct answer ought to be 0xf).

Clues where to look please?









_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to