> 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=2
