aes67-daemon/3rdparty/patches/ravenna-alsa-fix-playback-rw-mode.patch

28 lines
1021 B
Diff

diff --git a/driver/audio_driver.c b/driver/audio_driver.c
index 3d9debd..cc6240e 100644
--- a/driver/audio_driver.c
+++ b/driver/audio_driver.c
@@ -936,6 +936,8 @@
chip->dma_playback_offset = 0;
chip->dma_playback_buffer = runtime->dma_area;
chip->pcm_playback_buffer_size = snd_pcm_lib_buffer_bytes(chip->playback_substream);
+ // early startup to fix problem with read-write interleaved mode pre-buffering
+ chip->mr_alsa_audio_ops->start_interrupts(chip->ravenna_peer, 1);
}
else if(substream->stream == SNDRV_PCM_STREAM_CAPTURE)
{
index 5a90eca..8023708 100644
--- a/driver/manager.c
+++ b/driver/manager.c
@@ -271,6 +271,10 @@
return false;
MTAL_DP("MergingRAVENNAAudioDriver::startIO\n");
+ if (is_playback && self->m_bIsPlaybackIO)
+ return true;
+ if (!is_playback && self->m_bIsRecordingIO)
+ return true;
if (!is_playback) {
printk(KERN_DEBUG "starting capture I/O\n");