All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Cc: libin.yang@intel.com, alsa-devel@alsa-project.org,
	kai.vehmanen@linux.intel.com, tiwai@suse.de,
	pierre-louis.bossart@linux.intel.com, julia.lawall@lip6.fr,
	Mark Brown <broonie@kernel.org>
Subject: [alsa-devel] Applied "ALSA: hda/hdmi - implement mst_no_extra_pcms flag" to the asoc tree
Date: Tue, 29 Oct 2019 17:34:20 +0000 (GMT)	[thread overview]
Message-ID: <20191029173421.0D65B2742157@ypsilon.sirena.org.uk> (raw)
In-Reply-To: <20191029134017.18901-2-kai.vehmanen@linux.intel.com>

The patch

   ALSA: hda/hdmi - implement mst_no_extra_pcms flag

has been applied to the asoc tree at

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-5.5

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

From 2a2edfbbfee47947dd05f5860c66c0e80ee5e09d Mon Sep 17 00:00:00 2001
From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Date: Tue, 29 Oct 2019 15:40:09 +0200
Subject: [PATCH] ALSA: hda/hdmi - implement mst_no_extra_pcms flag

To support the DP-MST multiple streams via single connector feature,
the HDMI driver was extended with the concept of backup PCMs. See
commit 9152085defb6 ("ALSA: hda - add DP MST audio support").

This implementation works fine with snd_hda_intel.c as PCM topology
is fully managed within the single driver.

When the HDA codec driver is used from ASoC components, the concept
of backup PCMs no longer fits. For ASoC topologies, the physical
HDMI converters are presented as backend DAIs and these should match
with hardware capabilities. The ASoC topology may define arbitrary
PCMs (i.e. frontend DAIs) and have processing elements before eventual
routing to the HDMI BE DAIs. With backup PCMs, the link between
FE and BE DAIs would become dynamic and change when monitors are
(un)plugged. This would lead to modifying the topology every time
hotplug events happen, which is not currently possible in ASoC and
there does not seem to be any obvious benefits from this design.

To overcome above problems and enable the HDMI driver to be used
from ASoC, this patch adds a new mode (mst_no_extra_pcms flags) to
patch_hdmi.c. In this mode, the codec driver does not assume
the backup PCMs to be created.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20191029134017.18901-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 include/sound/hda_codec.h  |  1 +
 sound/pci/hda/patch_hdmi.c | 19 ++++++++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/include/sound/hda_codec.h b/include/sound/hda_codec.h
index 9a0393cf024c..ac18f428eda6 100644
--- a/include/sound/hda_codec.h
+++ b/include/sound/hda_codec.h
@@ -254,6 +254,7 @@ struct hda_codec {
 	unsigned int force_pin_prefix:1; /* Add location prefix */
 	unsigned int link_down_at_suspend:1; /* link down at runtime suspend */
 	unsigned int relaxed_resume:1;	/* don't resume forcibly for jack */
+	unsigned int mst_no_extra_pcms:1; /* no backup PCMs for DP-MST */
 
 #ifdef CONFIG_PM
 	unsigned long power_on_acct;
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index bca5de78e9ad..59aaee4a40fd 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -2072,15 +2072,24 @@ static bool is_hdmi_pcm_attached(struct hdac_device *hdac, int pcm_idx)
 static int generic_hdmi_build_pcms(struct hda_codec *codec)
 {
 	struct hdmi_spec *spec = codec->spec;
-	int idx;
+	int idx, pcm_num;
 
 	/*
 	 * for non-mst mode, pcm number is the same as before
-	 * for DP MST mode, pcm number is (nid number + dev_num - 1)
-	 *  dev_num is the device entry number in a pin
-	 *
+	 * for DP MST mode without extra PCM, pcm number is same
+	 * for DP MST mode with extra PCMs, pcm number is
+	 *  (nid number + dev_num - 1)
+	 * dev_num is the device entry number in a pin
 	 */
-	for (idx = 0; idx < spec->num_nids + spec->dev_num - 1; idx++) {
+
+	if (codec->mst_no_extra_pcms)
+		pcm_num = spec->num_nids;
+	else
+		pcm_num = spec->num_nids + spec->dev_num - 1;
+
+	codec_dbg(codec, "hdmi: pcm_num set to %d\n", pcm_num);
+
+	for (idx = 0; idx < pcm_num; idx++) {
 		struct hda_pcm *info;
 		struct hda_pcm_stream *pstr;
 
-- 
2.20.1

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2019-10-29 17:36 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-29 13:40 [alsa-devel] [PATCH v8 0/9] adapt SOF to use snd-hda-codec-hdmi Kai Vehmanen
2019-10-29 13:40 ` [alsa-devel] [PATCH v8 1/9] ALSA: hda/hdmi - implement mst_no_extra_pcms flag Kai Vehmanen
2019-10-29 17:34   ` Mark Brown [this message]
2019-10-29 13:40 ` [alsa-devel] [PATCH v8 2/9] ASoC: hdac_hda: add support for HDMI/DP as a HDA codec Kai Vehmanen
2019-10-29 17:34   ` [alsa-devel] Applied "ASoC: hdac_hda: add support for HDMI/DP as a HDA codec" to the asoc tree Mark Brown
2019-10-29 13:40 ` [alsa-devel] [PATCH v8 3/9] ASoC: Intel: skl-hda-dsp-generic: use snd-hda-codec-hdmi Kai Vehmanen
2019-10-29 17:34   ` [alsa-devel] Applied "ASoC: Intel: skl-hda-dsp-generic: use snd-hda-codec-hdmi" to the asoc tree Mark Brown
2019-10-29 13:40 ` [alsa-devel] [PATCH v8 4/9] ASoC: Intel: skl-hda-dsp-generic: fix include guard name Kai Vehmanen
2019-10-29 17:34   ` [alsa-devel] Applied "ASoC: Intel: skl-hda-dsp-generic: fix include guard name" to the asoc tree Mark Brown
2019-10-29 13:40 ` [alsa-devel] [PATCH v8 5/9] ASoC: SOF: Intel: add support for snd-hda-codec-hdmi Kai Vehmanen
2019-10-29 17:34   ` [alsa-devel] Applied "ASoC: SOF: Intel: add support for snd-hda-codec-hdmi" to the asoc tree Mark Brown
2019-10-29 13:40 ` [alsa-devel] [PATCH v8 6/9] ASoC: Intel: bxt-da7219-max98357a: common hdmi codec support Kai Vehmanen
2019-10-29 17:34   ` [alsa-devel] Applied "ASoC: Intel: bxt-da7219-max98357a: common hdmi codec support" to the asoc tree Mark Brown
2019-10-29 13:40 ` [alsa-devel] [PATCH v8 7/9] ASoC: Intel: glk_rt5682_max98357a: common hdmi codec support Kai Vehmanen
2019-10-29 17:34   ` [alsa-devel] Applied "ASoC: Intel: glk_rt5682_max98357a: common hdmi codec support" to the asoc tree Mark Brown
2019-10-29 13:40 ` [alsa-devel] [PATCH v8 8/9] ASoC: intel: sof_rt5682: common hdmi codec support Kai Vehmanen
2019-10-29 17:34   ` [alsa-devel] Applied "ASoC: intel: sof_rt5682: common hdmi codec support" to the asoc tree Mark Brown
2019-10-29 13:40 ` [alsa-devel] [PATCH v8 9/9] ASoC: Intel: bxt_rt298: common hdmi codec support Kai Vehmanen
2019-10-29 17:34   ` [alsa-devel] Applied "ASoC: Intel: bxt_rt298: common hdmi codec support" to the asoc tree Mark Brown
2019-10-29 13:56 ` [alsa-devel] [PATCH v8 0/9] adapt SOF to use snd-hda-codec-hdmi Takashi Iwai
2019-10-29 14:20 ` Pierre-Louis Bossart

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=20191029173421.0D65B2742157@ypsilon.sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=julia.lawall@lip6.fr \
    --cc=kai.vehmanen@linux.intel.com \
    --cc=libin.yang@intel.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=tiwai@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.