Re: wrong assumption in i2c-at91-master.c ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07.03.2022 17:57, Michael Walle wrote:
> Hi,

Mi Michael,

> 
> 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.

Best regards,
Codrin


[1] 
https://elixir.bootlin.com/linux/latest/source/drivers/i2c/busses/i2c-at91-master.c#L720




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux