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)
committerMaxime Ripard <maxime@cerno.tech>
Wed, 23 Jun 2021 12:32:28 +0000 (14:32 +0200)
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
drivers/gpu/drm/vc4/vc4_hdmi.c

index e310a10..054dec3 100644 (file)
@@ -1380,22 +1380,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 |