[lkml]   [2018]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 09/12] i2c: qup: fix buffer overflow for multiple msg of maximum xfer len
On 2018-02-28 04:45, Andy Gross wrote:
> On Sat, Feb 03, 2018 at 01:28:14PM +0530, Abhishek Sahu wrote:
>> The BAM mode requires buffer for start tag data and tx, rx SG
>> list. Currently, this is being taken for maximum transfer length
>> (65K). But an I2C transfer can have multiple messages and each
>> message can be of this maximum length so the buffer overflow will
>> happen in this case. Since increasing buffer length won’t be
>> feasible since an I2C transfer can contain any number of messages
>> so this patch does following changes to make i2c transfers working
>> for multiple messages case.
>> 1. Calculate the required buffers for 2 maximum length messages
>> (65K * 2).
>> 2. Split the descriptor formation and descriptor scheduling.
>> The idea is to fit as many messages in one DMA transfers for 65K
>> threshold value (max_xfer_sg_len). Whenever the sg_cnt is
>> crossing this, then schedule the BAM transfer and subsequent
>> transfer will again start from zero.
>> Signed-off-by: Abhishek Sahu <>
> I'm ok with this patch. I find the idea of a > 64k size message to be
> something
> that usually wouldn't be encountered, but... with some eeproms and
> maybe TPMs
> perhaps this could happen?
> Reviewed-by: Andy Gross <>

Thanks Andy for reviewing this patch.

There are EEPROM available with 1MB size like AT24CM01 in which we can
complete flash (128 KB) in single go by one transfer with 2 read
messages of


 \ /
  Last update: 2018-03-12 13:29    [W:0.137 / U:0.728 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site