Re: [PATCH V17 3/6] i2c: tegra: fix maximum transfer size
From: Dmitry Osipenko
Date: Fri Feb 08 2019 - 13:38:40 EST
08.02.2019 21:37, Sowjanya Komatineni ÐÐÑÐÑ:
>>>>>> static const struct i2c_adapter_quirks tegra194_i2c_quirks = {
>>>>>> .flags = I2C_AQ_NO_ZERO_LEN,
>>>>>> + .max_write_len = 65535 - I2C_PACKET_HEADER_SIZE,
>>>>>
>>>>> Ideally it should be SZ_64K - I2C_PACKET_HEADER_SIZE to not miss the one byte, otherwise good to me:
>>>>>
>>>>> Reviewed-by: Dmitry Osipenko <digetx@xxxxxxxxx>
>>>>
>>>> With SZ_64K - I2C_PACKET_HEADR_Size, When we compute dma_buf_size
>>>> = max_write_len + I2C_PACKET_HEADER_SIZE, dma_buf_size will be
>>>> SZ_64K which is 0x10000 apbdma dma count limit should be < 64K
>>>> meaning 65535 max is allowed
>>>>
>>>
>>> But it's for the GPCDMA, does it have the same 64K limit as APB DMA?
>>
> 64K limit is for APBDMA. This patch has APBDMA support only. No GPCDMA support so buf size limit is based on APBDMA.
> GPCDMA supports upto 1GB.
>
> I think dma_buf_size is only for buffer allocation so shouldnât harm for exact 64K.
> Will take a look at dma driver...
>
> All msg reads, max length is 65535
> All msg writes, max length requests is also limited to 65535 due to u16 type of msg.len So, In any case, we donât need 65536 bytes.
> Confused, yeah with max write quirk, max transfer can be 64K.
>
> Will change to 64K instead of 65535.
>
Good, thank you! Everything else looks good to me.