> dsnoop runs its hardware slave with stop_threshold == boundary and can
> consume the mmap capture ring without advancing the hardware application
> pointer. Staged capture currently treats every stream as a bounded
> consumer: capture_ready grows until the completion capacity check fails.
> 
> With a 48 kHz mono slave, 960-frame periods and a 7680-frame buffer, the
> baseline dsnoop reproduction stops after 6720 frames with -EPIPE and a
> ring_capacity rejection. Direct capture continues to work.
> 
> Cache the prepared boundary and recognize the free-running policy under
> the substream lock. Keep RX requests supplied in that mode, while retaining
> payload, frame alignment, counter and pointer-window checks. Sample the
> policy once per completion so validation, copying and refill agree.
> Refresh it separately in the ACK accounting and refill critical sections.
> 
> [ ... ]
> regression also pass with KASAN and lockdep. No new physical-device or
> KCSAN results are claimed for this revision.
> 
> 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=11


Reply via email to