From: jeeja.kp@intel.com
To: alsa-devel@alsa-project.org
Cc: tiwai@suse.de, patches.audio@intel.com, broonie@kernel.org,
liam.r.girdwood@intel.com, Jeeja KP <jeeja.kp@intel.com>
Subject: [PATCH v3 12/12] ASoC: hdac_hdmi: Add support to handle MST capable pin
Date: Tue, 24 Jan 2017 21:49:14 +0530 [thread overview]
Message-ID: <1485274754-5723-13-git-send-email-jeeja.kp@intel.com> (raw)
In-Reply-To: <1485274754-5723-1-git-send-email-jeeja.kp@intel.com>
From: Jeeja KP <jeeja.kp@intel.com>
To handle jack event and configuration of the pin widget for MST
capable pin, this patch adds:
o Flag to identify the pin is MST capable.
o In notify callback(), based on the pipe and port information marks if
the port is mst_capable. In case of non MST, port is defaulted to zero.
Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
---
sound/soc/codecs/hdac_hdmi.c | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c
index d3858b5..17a1ad3 100644
--- a/sound/soc/codecs/hdac_hdmi.c
+++ b/sound/soc/codecs/hdac_hdmi.c
@@ -82,6 +82,7 @@ struct hdac_hdmi_eld {
struct hdac_hdmi_pin {
struct list_head head;
hda_nid_t nid;
+ bool mst_capable;
struct hdac_hdmi_port *ports;
int num_ports;
struct hdac_ext_device *edev;
@@ -1065,14 +1066,22 @@ static void hdac_hdmi_present_sense(struct hdac_hdmi_pin *pin,
struct hdac_hdmi_priv *hdmi = edev->private_data;
struct hdac_hdmi_pcm *pcm;
int size = 0;
+ int port_id = -1;
if (!hdmi)
return;
+ /*
+ * In case of non MST pin, get_eld info API expectes port
+ * to be -1.
+ */
mutex_lock(&hdmi->pin_mutex);
port->eld.monitor_present = false;
- size = snd_hdac_acomp_get_eld(&edev->hdac, pin->nid, -1,
+ if (pin->mst_capable)
+ port_id = port->id;
+
+ size = snd_hdac_acomp_get_eld(&edev->hdac, pin->nid, port_id,
&port->eld.monitor_present,
port->eld.eld_buffer,
ELD_MAX_SIZE);
@@ -1167,6 +1176,7 @@ static int hdac_hdmi_add_pin(struct hdac_ext_device *edev, hda_nid_t nid)
return -ENOMEM;
pin->nid = nid;
+ pin->mst_capable = false;
pin->edev = edev;
ret = hdac_hdmi_add_ports(hdmi, pin);
if (ret < 0)
@@ -1363,6 +1373,7 @@ static void hdac_hdmi_eld_notify_cb(void *aptr, int port, int pipe)
struct hdac_hdmi_pin *pin = NULL;
struct hdac_hdmi_port *hport = NULL;
struct snd_soc_codec *codec = edev->scodec;
+ int i;
/* Don't know how this mapping is derived */
hda_nid_t pin_nid = port + 0x04;
@@ -1389,13 +1400,23 @@ static void hdac_hdmi_eld_notify_cb(void *aptr, int port, int pipe)
/* In case of non MST pin, pipe is -1 */
if (pipe == -1) {
+ pin->mst_capable = false;
/* if not MST, default is port[0] */
hport = &pin->ports[0];
- break;
+ goto out;
+ } else {
+ for (i = 0; i < pin->num_ports; i++) {
+ pin->mst_capable = true;
+ if (pin->ports[i].id == pipe) {
+ hport = &pin->ports[i];
+ goto out;
+ }
+ }
}
}
- if (hport)
+out:
+ if (pin && hport)
hdac_hdmi_present_sense(pin, hport);
}
--
2.5.0
next prev parent reply other threads:[~2017-01-24 16:08 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-24 16:19 [PATCH v3 00/12] ASoC: hdmi: Preparatory work to support MST audio jeeja.kp
2017-01-24 16:19 ` [PATCH v3 01/12] ASoC: hdac_hdmi: Register widget event handlers jeeja.kp
2017-01-24 16:19 ` [PATCH v3 02/12] ASoC: Intel: Skylake: Use set_tdm_slot to set the dma channel jeeja.kp
2017-01-24 16:19 ` [PATCH v3 03/12] ASoC: hdac_hdmi: Move channel info from pin to PCM structure jeeja.kp
2017-01-24 16:19 ` [PATCH v3 04/12] ASoC: Intel: bxt: add channel map support in rt298 machine jeeja.kp
2017-01-24 16:19 ` [PATCH v3 05/12] ASoC: Intel: bxt: add channel map support in bxt_da7219_max98357a machine jeeja.kp
2017-01-24 16:19 ` [PATCH v3 06/12] ASoC: hdac_hdmi: Begin to add support for DP Multi-stream audio jeeja.kp
2017-02-04 12:09 ` Mark Brown
2017-02-06 6:49 ` Jeeja KP
2017-01-24 16:19 ` [PATCH v3 07/12] ASoC: Intel: Skylake: Add route change to rt286 machine jeeja.kp
2017-01-24 16:19 ` [PATCH v3 08/12] ASoC: Intel: Skylake: Add route change to nau88l25_max98357a machine jeeja.kp
2017-01-24 16:19 ` [PATCH v3 09/12] ASoC: Intel: Skylake: Add route change to nau88l25_ssm4567 machine jeeja.kp
2017-01-24 16:19 ` [PATCH v3 10/12] ASoC: Intel: bxt: Add route change to rt298 machine jeeja.kp
2017-01-24 16:19 ` [PATCH v3 11/12] ASoC: Intel: bxt: Add route change to da7219_max98357a machine jeeja.kp
2017-01-24 16:19 ` jeeja.kp [this message]
2017-02-08 18:34 ` Applied "ASoC: hdac_hdmi: Add support to handle MST capable pin" to the asoc tree Mark Brown
2017-01-31 19:45 ` [PATCH v3 00/12] ASoC: hdmi: Preparatory work to support MST audio Mark Brown
2017-02-01 10:00 ` Jeeja KP
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=1485274754-5723-13-git-send-email-jeeja.kp@intel.com \
--to=jeeja.kp@intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=liam.r.girdwood@intel.com \
--cc=patches.audio@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 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).