> A linked prepare can finish one member before another member's driver
> prepare or reset fails. Drivers that admit transfers after their own
> prepare callback can then accept an ACK while the group action is still
> incomplete.
> 
> Add an optional prepare_complete callback. After all sleeping prepare
> and reset actions have succeeded, take the group and member PCM locks,
> publish every PREPARED state, and notify opted-in drivers before
> releasing those locks. Keep the buffer locks and access gates held
> throughout the operation. A concurrent DROP observes the group before or
> after this commit point.
> 
> On a driver error, notify only the attempted prefix, including the
> failing member. Opted-in members in that prefix return to SETUP. Leave
> unreached members untouched. Preflight failures have no completion
> callback. Preserve SUSPENDED and DISCONNECTED states if finalization
> finds either in the affected group or prefix. Successful driver actions
> canceled by such a state return -ESTRPIPE or -EBADFD, respectively. A
> driver error keeps its original return value. DISCONNECTED takes
> precedence when a linked group contains both terminal states.
> 
> Do not generate a stop-timer event while closing prepare admission.
> Ordinary legacy drivers keep their existing successful preparation and
> pointer rebasing. The new callback runs with the group and member locks
> held and must neither sleep nor acquire another PCM stream lock.
> 
> Assisted-by: LLM
> Signed-off-by: Joonho Lee <[email protected]>

Sashiko has reviewed this patch and found no issues.

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=4


Reply via email to