RE: [PATCH V17 3/6] i2c: tegra: fix maximum transfer size
From: Sowjanya Komatineni
Date: Fri Feb 08 2019 - 13:34:57 EST
> > >>> 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.