[alsa-devel] [PATCH v2] ASoC: hdac_hdmi: Enable MST audio
From: Jeeja KP jeeja.kp@intel.com
With the patch series "ASoC: hdmi: Preparatory work to support MST audio", the design is extended from pin to port mapping to handle MST usecases.
A pin is MST capable if pipe is valid value (i.e. not -1) in the notify callback. If pipe = -1, default port is 0 else port = pipe. A MST capable pin widget is programmed by first sending a verb to select the device/port and then the actual verb is sent to program the widget.
This patch series enables MST Audio by configuring MST capable pins and extended the jack handling to report event for ports. Now the jack events are based on port connect/disconnect. The design is also extended to support mapping of multiple port to a single converter.
Now with the introduction of multiple ports with a single pin, a pin widget is created to enable/disable path based on device connection. Required machine driver changes are done to handle this change.
Also use the ASoC jack instead of snd_jack framework to creates jacks in the machine driver.
Note: This patch series has dependency on the series "ASoC: hdmi: Preparatory work to support MST audio"
Change v2: - Fixed the SOB missing in the patch. - Removed already applied patches.
Jeeja KP (1): ASoC: Intel: bxt: Add jack port initialize in bxt_rt298 machine
sound/soc/intel/boards/bxt_rt298.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
From: Jeeja KP jeeja.kp@intel.com
After the pcm jack is created, create and initialize the pin switch widget for each port. Pin switch is to enable/disable the pin when monitor is connected/disconnected.
Signed-off-by: Jeeja KP jeeja.kp@intel.com --- sound/soc/intel/boards/bxt_rt298.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/sound/soc/intel/boards/bxt_rt298.c b/sound/soc/intel/boards/bxt_rt298.c index d5f53a6..176c080 100644 --- a/sound/soc/intel/boards/bxt_rt298.c +++ b/sound/soc/intel/boards/bxt_rt298.c @@ -459,10 +459,12 @@ static int bxt_card_late_probe(struct snd_soc_card *card) { struct bxt_rt286_private *ctx = snd_soc_card_get_drvdata(card); struct bxt_hdmi_pcm *pcm; + struct snd_soc_codec *codec = NULL; int err, i = 0; char jack_name[NAME_SIZE];
list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) { + codec = pcm->codec_dai->codec; snprintf(jack_name, sizeof(jack_name), "HDMI/DP, pcm=%d Jack", pcm->device); err = snd_soc_card_jack_new(card, jack_name, @@ -480,7 +482,10 @@ static int bxt_card_late_probe(struct snd_soc_card *card) i++; }
- return 0; + if (!codec) + return -EINVAL; + + return hdac_hdmi_jack_port_init(codec, &card->dapm); }
On Fri, Feb 17, 2017 at 02:50:29PM +0530, jeeja.kp@intel.com wrote:
From: Jeeja KP jeeja.kp@intel.com
Please ignore, by mistake it went out of my mailbox. i will resend the patch.
With the patch series "ASoC: hdmi: Preparatory work to support MST audio", the design is extended from pin to port mapping to handle MST usecases.
A pin is MST capable if pipe is valid value (i.e. not -1) in the notify callback. If pipe = -1, default port is 0 else port = pipe. A MST capable pin widget is programmed by first sending a verb to select the device/port and then the actual verb is sent to program the widget.
This patch series enables MST Audio by configuring MST capable pins and extended the jack handling to report event for ports. Now the jack events are based on port connect/disconnect. The design is also extended to support mapping of multiple port to a single converter.
Now with the introduction of multiple ports with a single pin, a pin widget is created to enable/disable path based on device connection. Required machine driver changes are done to handle this change.
Also use the ASoC jack instead of snd_jack framework to creates jacks in the machine driver.
Note: This patch series has dependency on the series "ASoC: hdmi: Preparatory work to support MST audio"
Change v2:
- Fixed the SOB missing in the patch.
- Removed already applied patches.
Jeeja KP (1): ASoC: Intel: bxt: Add jack port initialize in bxt_rt298 machine
sound/soc/intel/boards/bxt_rt298.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
-- 2.5.0
--
participants (2)
-
Jeeja KP
-
jeeja.kp@intel.com