]> git.ipfire.org Git - thirdparty/qemu.git/commit
hw/audio/es1370: reset current sample counter
authorVolker Rümelin <vr_qemu@t-online.de>
Sun, 17 Sep 2023 06:58:06 +0000 (08:58 +0200)
committerMichael Tokarev <mjt@tls.msk.ru>
Sat, 21 Oct 2023 11:05:14 +0000 (14:05 +0300)
commitc19fd37eb32ecd250e5bd9c25abb787277408ce2
tree23f8666463d22ec5e80f623f951ab0a064d10eaa
parent77d36ba30083265269501552e9c092e6954cd382
hw/audio/es1370: reset current sample counter

Reset the current sample counter when writing the Channel Sample
Count Register. The Linux ens1370 driver and the AROS sb128
driver expect the current sample counter counts down from sample
count to 0 after a write to the Channel Sample Count Register.
Currently the current sample counter starts from 0 after a reset
or the last count when the counter was stopped.

The current sample counter is used to raise an interrupt whenever
a complete buffer was transferred. When the counter starts with a
value lower than the reload value, the interrupt triggeres before
the buffer was completly transferred. This may lead to corrupted
audio streams.

Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-1-vr_qemu@t-online.de>
(cherry picked from commit 00e3b29d065f3b88bb3726afbd5c73f8b2bff1b4)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/audio/es1370.c