]> git.ipfire.org Git - thirdparty/linux.git/commit
sound: oss: dmasound: kick queued output before extending tail fragment
authorCássio Gabriel <cassiogabrielcontato@gmail.com>
Mon, 27 Apr 2026 22:13:28 +0000 (19:13 -0300)
committerTakashi Iwai <tiwai@suse.de>
Wed, 29 Apr 2026 05:52:54 +0000 (07:52 +0200)
commit6e934725ec3abb63247a0cb4cd455fff3c009ef5
tree0a695e827ae1e4516af3a53b430c1ea86cc90cff
parented060707d4bac8f1a2fcf83af4e1f01d3337893c
sound: oss: dmasound: kick queued output before extending tail fragment

sq_write() currently clears POST and then immediately appends
to the current rear fragment.

If the queue already contains complete fragments ahead of that
incomplete tail, playback is not kicked until the queue-full wait
path or the final sq_play() at the end of the write. That wastes
the slack those queued samples would otherwise provide while the driver
spends more time copying and translating more data into the tail fragment.

All in-tree dmasound playback backends still refuse to queue
an incomplete last fragment while !syncing, but they can start
earlier complete fragments.

Call sq_play() immediately after clearing POST and before extending
the rear fragment so already-queued complete output can start earlier.

Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
Link: https://patch.msgid.link/20260427-dmasound-sq-play-v1-1-28bbeb8509b1@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/oss/dmasound/dmasound_core.c