Re: [PATCH 07/16] i3c: mipi-i3c-hci: Complete transfer lists immediately on error
From: Adrian Hunter
Date: Fri Apr 17 2026 - 13:14:25 EST
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@xxxxxxxxx>
>> ---
> ...
>> 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
>>