Hi Codrin,
Am 2022-03-07 18:09, schrieb Codrin.Ciubotariu@xxxxxxxxxxxxx:
On 07.03.2022 17:57, Michael Walle wrote:
I saw that the at91 i2c driver has some kind of heuristic in
at91_twi_xfer(). It assumes that if there are exactly two
messages to transfer, the first is the address write of a
common i2c write address, read data transaction. I don't
think that assumption is correct.
Also there is no check if msg->len is actually smaller
than the width of the address which can be written to
AT91_TWI_IADR.
I think, what is at least missing is that, the first
one is actually a write and have at max 3 bytes (IIRC
thats the max width of AT91_TWI_IADR).
Actually, I don't find any code at all which would
handle multiple messages. Looks like it just supports
num == 2 (and assumes the first message fits into the
AT91_TWI_IADR) and num == 1.
The constraints are set using the quirks feature [1] of the i2c
subsystem.
Ahhh! Now it makes sense. Thanks.
-michael