linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: Jaroslav Kysela <perex@perex.cz>, Mark Brown <broonie@kernel.org>,
	dri-devel@lists.freedesktop.org,
	Daniel Vetter <daniel.vetter@intel.com>,
	David Airlie <airlied@linux.ie>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Maxime Ripard <maxime@cerno.tech>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Takashi Iwai <tiwai@suse.com>
Cc: devicetree@vger.kernel.org,
	Dave Stevenson <dave.stevenson@raspberrypi.com>,
	Phil Elwell <phil@raspberrypi.com>,
	Tim Gover <tim.gover@raspberrypi.com>,
	Dom Cobley <dom@raspberrypi.com>,
	linux-doc@vger.kernel.org, Eric Anholt <eric@anholt.net>,
	Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
	linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org,
	Maxime Ripard <mripard@kernel.org>,
	Nicolas Saenz Julienne <nsaenz@kernel.org>,
	bcm-kernel-feedback-list@broadcom.com,
	linux-arm-kernel@lists.infradead.org,
	Daniel Vetter <daniel@ffwll.ch>,
	linux-rpi-kernel@lists.infradead.org,
	Jonathan Corbet <corbet@lwn.net>,
	Rob Herring <robh+dt@kernel.org>,
	Dom Cobley <popcornmix@gmail.com>
Subject: [PATCH v2 06/12] drm/vc4: hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET
Date: Tue, 25 May 2021 15:23:48 +0200	[thread overview]
Message-ID: <20210525132354.297468-7-maxime@cerno.tech> (raw)
In-Reply-To: <20210525132354.297468-1-maxime@cerno.tech>

From: Dom Cobley <popcornmix@gmail.com>

Symptom is random switching of speakers when using multichannel.

Repeatedly running speakertest -c8 occasionally starts with
channels jumbled. This is fixed with HD_CTL_WHOLSMP.

The other bit looks beneficial and apears harmless in testing so
I'd suggest adding it too.

Documentation says: HD_CTL_WHILSMP_SET
Wait for whole sample. When this bit is set MAI transmit will start
only when there is at least one whole sample available in the fifo.

Documentation says: HD_CTL_CHALIGN_SET
Channel Align When Overflow. This bit is used to realign the audio
channels in case of an overflow.
If this bit is set, after the detection of an overflow, equal
amount of dummy words to the missing words will be written to fifo,
filling up the broken sample and maintaining alignment.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/vc4/vc4_hdmi.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index c27b287d2053..212b5df11d73 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1267,7 +1267,9 @@ static int vc4_hdmi_audio_trigger(struct snd_pcm_substream *substream, int cmd,
 		HDMI_WRITE(HDMI_MAI_CTL,
 			   VC4_SET_FIELD(vc4_hdmi->audio.channels,
 					 VC4_HD_MAI_CTL_CHNUM) |
-			   VC4_HD_MAI_CTL_ENABLE);
+					 VC4_HD_MAI_CTL_WHOLSMP |
+					 VC4_HD_MAI_CTL_CHALIGN |
+					 VC4_HD_MAI_CTL_ENABLE);
 		break;
 	case SNDRV_PCM_TRIGGER_STOP:
 		HDMI_WRITE(HDMI_MAI_CTL,
-- 
2.31.1


  parent reply	other threads:[~2021-05-25 13:25 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-25 13:23 [PATCH v2 00/12] drm/vc4: hdmi: Enable Channel Mapping, IEC958, HBR Passthrough using hdmi-codec Maxime Ripard
2021-05-25 13:23 ` [PATCH v2 01/12] ALSA: doc: Clarify IEC958 controls iface Maxime Ripard
2021-05-25 15:58   ` Takashi Iwai
2021-05-25 13:23 ` [PATCH v2 02/12] ALSA: iec958: Split status creation and fill Maxime Ripard
2021-05-25 16:01   ` Takashi Iwai
2021-05-25 13:23 ` [PATCH v2 03/12] ASoC: hdmi-codec: Rework to support more controls Maxime Ripard
2021-05-26 10:38   ` Mark Brown
2021-05-25 13:23 ` [PATCH v2 04/12] ASoC: hdmi-codec: Add iec958 controls Maxime Ripard
2021-05-26 10:38   ` Mark Brown
2021-06-09 12:43   ` Mark Brown
2021-06-10 12:26     ` Maxime Ripard
2021-05-25 13:23 ` [PATCH v2 05/12] ASoC: hdmi-codec: Add a prepare hook Maxime Ripard
2021-05-26 10:39   ` Mark Brown
2021-05-31  9:42     ` Maxime Ripard
2021-05-31 11:12       ` Takashi Iwai
2021-06-01 12:36         ` Mark Brown
2021-06-03  8:18           ` Maxime Ripard
2021-05-25 13:23 ` Maxime Ripard [this message]
2021-06-01  8:45   ` [PATCH v2 06/12] drm/vc4: hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET nicolas saenz julienne
2021-05-25 13:23 ` [PATCH v2 07/12] drm/vc4: hdmi: Set HDMI_MAI_FMT Maxime Ripard
2021-06-01  8:47   ` nicolas saenz julienne
2021-05-25 13:23 ` [PATCH v2 08/12] drm/vc4: hdmi: Set VC4_HDMI_MAI_CONFIG_FORMAT_REVERSE Maxime Ripard
2021-06-01  8:49   ` nicolas saenz julienne
2021-05-25 13:23 ` [PATCH v2 09/12] drm/vc4: hdmi: Remove firmware logic for MAI threshold setting Maxime Ripard
2021-06-01  8:52   ` nicolas saenz julienne
2021-05-25 13:23 ` [PATCH v2 10/12] drm/vc4: hdmi: Register HDMI codec Maxime Ripard
2021-06-01  9:26   ` nicolas saenz julienne
2021-06-23 12:29     ` Maxime Ripard
2021-05-25 13:23 ` [PATCH v2 11/12] drm/vc4: hdmi: Remove redundant variables Maxime Ripard
2021-06-01  9:30   ` nicolas saenz julienne
2021-05-25 13:23 ` [PATCH v2 12/12] ARM: dts: bcm2711: Tune DMA parameters for HDMI audio Maxime Ripard
2021-05-25 15:25   ` Florian Fainelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210525132354.297468-7-maxime@cerno.tech \
    --to=maxime@cerno.tech \
    --cc=airlied@linux.ie \
    --cc=alsa-devel@alsa-project.org \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=broonie@kernel.org \
    --cc=corbet@lwn.net \
    --cc=daniel.vetter@intel.com \
    --cc=daniel@ffwll.ch \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dom@raspberrypi.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eric@anholt.net \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=nsaenz@kernel.org \
    --cc=nsaenzjulienne@suse.de \
    --cc=perex@perex.cz \
    --cc=phil@raspberrypi.com \
    --cc=popcornmix@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=tim.gover@raspberrypi.com \
    --cc=tiwai@suse.com \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).