From 143d98dee563255b98be7cb66aa0ca6d1ace3c43 Mon Sep 17 00:00:00 2001 From: Andrea Bondavalli Date: Sun, 31 Jan 2021 18:12:09 +0100 Subject: [PATCH] Added patch to Ravenna driver to enable mono channel configuration for playback and capture devices. Without this patch a Source or Sink configured with a single channel fail to work as expected. --- ...avenna-alsa-lkm-enable-mono-channels.patch | 23 +++++++++++++++++++ build.sh | 1 + 2 files changed, 24 insertions(+) create mode 100644 3rdparty/patches/ravenna-alsa-lkm-enable-mono-channels.patch diff --git a/3rdparty/patches/ravenna-alsa-lkm-enable-mono-channels.patch b/3rdparty/patches/ravenna-alsa-lkm-enable-mono-channels.patch new file mode 100644 index 0000000..fd6f67d --- /dev/null +++ b/3rdparty/patches/ravenna-alsa-lkm-enable-mono-channels.patch @@ -0,0 +1,23 @@ +diff --git a/driver/audio_driver.c b/driver/audio_driver.c +index 3d9debd..339327b 100644 +--- a/driver/audio_driver.c ++++ b/driver/audio_driver.c +@@ -1106,7 +1130,7 @@ static struct snd_pcm_hardware mr_alsa_audio_pcm_hardware_playback = + .rates = (SNDRV_PCM_RATE_KNOT|SNDRV_PCM_RATE_44100|SNDRV_PCM_RATE_48000|SNDRV_PCM_RATE_88200|SNDRV_PCM_RATE_96000|SNDRV_PCM_RATE_176400|SNDRV_PCM_RATE_192000), + .rate_min = 44100, + .rate_max = 384000, +- .channels_min = 2, ++ .channels_min = 1, + .channels_max = MR_ALSA_NB_CHANNELS_MAX, + .buffer_bytes_max = MR_ALSA_RINGBUFFER_NB_FRAMES * MR_ALSA_NB_CHANNELS_MAX * 4, // 4 bytes per sample, 128 ch + .period_bytes_min = MR_ALSA_NB_FRAMES_PER_PERIOD_AT_1FS * 2 * 3, // amount of data in bytes for 8 channels, 24bit samples, at 1Fs +@@ -1135,7 +1159,7 @@ static struct snd_pcm_hardware mr_alsa_audio_pcm_hardware_capture = + .rates = (SNDRV_PCM_RATE_KNOT|SNDRV_PCM_RATE_44100|SNDRV_PCM_RATE_48000|SNDRV_PCM_RATE_88200|SNDRV_PCM_RATE_96000|SNDRV_PCM_RATE_176400|SNDRV_PCM_RATE_192000), + .rate_min = 44100, + .rate_max = 384000, +- .channels_min = 2, ++ .channels_min = 1, + .channels_max = MR_ALSA_NB_CHANNELS_MAX, + .buffer_bytes_max = MR_ALSA_RINGBUFFER_NB_FRAMES * MR_ALSA_NB_CHANNELS_MAX * 4, // 4 bytes per sample, 128 ch + .period_bytes_min = MR_ALSA_NB_FRAMES_PER_PERIOD_AT_1FS * 2 * 4, // amount of data in bytes for 8 channels, 24bit samples, at 1Fs + diff --git a/build.sh b/build.sh index 538b9a3..a4b3c85 100755 --- a/build.sh +++ b/build.sh @@ -23,6 +23,7 @@ if [ ! -d ravenna-alsa-lkm.git ]; then git apply ../patches/ravenna-alsa-lkm-disable-ptp-checksum.patch git apply ../patches/ravenna-alsa-lkm-independent-playback-capture.patch git apply ../patches/ravenna-alsa-lkm-direct-pcm-transfer.patch + git apply ../patches/ravenna-alsa-lkm-enable-mono-channels.patch echo "Building ravenna-alsa-lkm kernel module ..." cd driver make