Unverified Commit 8434111c authored by Dom Cobley's avatar Dom Cobley Committed by Maxime Ripard
Browse files

drm/vc4: hdmi: Remove firmware logic for MAI threshold setting



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: default avatarDom Cobley <popcornmix@gmail.com>
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20210525132354.297468-10-maxime@cerno.tech
parent 9a8fd277
Loading
Loading
Loading
Loading
+6 −16
Original line number Diff line number Diff line
@@ -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 {
	/* 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 |