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.