[PATCH 07/16] i3c: mipi-i3c-hci: Complete transfer lists immediately on error

Adrian Hunter adrian.hunter at intel.com
Fri Apr 17 10:12:46 PDT 2026


On 17/04/2026 11:11, Frank Li wrote:
> On Thu, Apr 16, 2026 at 08:56:55PM +0300, Adrian Hunter wrote:
>> In DMA mode, transfer lists are currently completed only when the final
>> transfer in the list completes. If an earlier transfer fails, the list is
>> left incomplete and callers wait until timeout.
>>
>> There is no need to wait for a timeout, as the completion path in
>> i3c_hci_process_xfer() already checks for error status. Complete the
>> transfer list as soon as any transfer in the list reports an error.
>>
>> This avoids unnecessary delays and spurious timeouts on error.
>>
>> Complete a transfer list completion immediately there is an error.
>>
>> Signed-off-by: Adrian Hunter <adrian.hunter at intel.com>
>> ---
> ...
>>  			struct i3c_dma *dma;
>> +			struct hci_xfer *completing_xfer;
> 
> Generally, it should be working queue.
> 
> So working(current)_xfer should be better.

The completing transfer might not be the current transfer.
This patch is concerned with transfer lists with more than
one transfer, and an error happens on a transfer that is not
the last one of the list (the last one is the completing transfer).

> 
> Frank
>>  			int ring_number;
>>  			int ring_entry;
>>  		};
>> --
>> 2.51.0
>>




More information about the linux-i3c mailing list