RE: [PATCH V17 3/6] i2c: tegra: fix maximum transfer size

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

 



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




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux