From 0d615b9ec61b7cb06b3aab8e123e2eacade3891e Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 16 Feb 2021 16:45:26 +0100 Subject: [PATCH] linux (RPi): add patch to avoid full hdmi audio fifo writes on vc4 Signed-off-by: Matthias Reichl --- ...c4-Avoid-full-hdmi-audio-fifo-writes.patch | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 packages/linux/patches/raspberrypi/linux-011-vc4-Avoid-full-hdmi-audio-fifo-writes.patch diff --git a/packages/linux/patches/raspberrypi/linux-011-vc4-Avoid-full-hdmi-audio-fifo-writes.patch b/packages/linux/patches/raspberrypi/linux-011-vc4-Avoid-full-hdmi-audio-fifo-writes.patch new file mode 100644 index 0000000000..c407892597 --- /dev/null +++ b/packages/linux/patches/raspberrypi/linux-011-vc4-Avoid-full-hdmi-audio-fifo-writes.patch @@ -0,0 +1,30 @@ +From 6ddb85813f7a61637a54f76a76ccb95ade8a50de Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Sun, 24 Jan 2021 15:44:10 +0000 +Subject: [PATCH] vc4: Avoid full hdmi audio fifo writes + +We are getting occasional VC4_HD_MAI_CTL_ERRORF in HDMI_MAI_CTL which seem to correspond with +audio dropouts. Reduce the threshold where we deassert DREQ to avoid the fifo overfilling +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 64b1567998861..3b85158fbbaa8 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -1562,10 +1562,10 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, + + /* Set the MAI threshold */ + HDMI_WRITE(HDMI_MAI_THR, +- VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_PANICHIGH) | +- VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_PANICLOW) | +- VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_DREQHIGH) | +- VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_DREQLOW)); ++ VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_PANICHIGH) | ++ VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_PANICLOW) | ++ VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_DREQHIGH) | ++ VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_DREQLOW)); + + HDMI_WRITE(HDMI_MAI_CONFIG, + VC4_HDMI_MAI_CONFIG_BIT_REVERSE |