]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/vc4: hdmi: Remove firmware logic for MAI threshold setting
authorDom Cobley <popcornmix@gmail.com>
Tue, 25 May 2021 13:23:51 +0000 (15:23 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 21 Aug 2022 13:15:43 +0000 (15:15 +0200)
[ Upstream commit 8434111ccfec8fc0549ec325a632067232d38e14 ]

This was a workaround for bugs in hardware on earlier Pi models
and wasn't totally successful.

It makes audio quality worse on a Pi4 at the higher sample rates

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20210525132354.297468-10-maxime@cerno.tech
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/vc4/vc4_hdmi.c

index d5822878b5a7ed85e2c6c485c476e786f5f5f196..6acc34f1e095da34c81a346d49d8971324620805 100644 (file)
@@ -1031,22 +1031,12 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream,
        audio_packet_config |= VC4_SET_FIELD(channel_mask,
                                             VC4_HDMI_AUDIO_PACKET_CEA_MASK);
 
-       /* Set the MAI threshold.  This logic mimics the firmware's. */
-       if (vc4_hdmi->audio.samplerate > 96000) {
-               HDMI_WRITE(HDMI_MAI_THR,
-                          VC4_SET_FIELD(0x12, VC4_HD_MAI_THR_DREQHIGH) |
-                          VC4_SET_FIELD(0x12, VC4_HD_MAI_THR_DREQLOW));
-       } else if (vc4_hdmi->audio.samplerate > 48000) {
-               HDMI_WRITE(HDMI_MAI_THR,
-                          VC4_SET_FIELD(0x14, VC4_HD_MAI_THR_DREQHIGH) |
-                          VC4_SET_FIELD(0x12, VC4_HD_MAI_THR_DREQLOW));
-       } else {
-               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));
-       }
+       /* 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));
 
        HDMI_WRITE(HDMI_MAI_CONFIG,
                   VC4_HDMI_MAI_CONFIG_BIT_REVERSE |