[alsa-devel] [PATCH v1 3/5] ALSA: hda - Add DP-MST conn list support

Takashi Iwai tiwai at suse.de
Thu Nov 14 11:57:48 CET 2019


On Thu, 14 Nov 2019 04:37:02 +0100,
Nikhil Mahale wrote:
> 
> Document change notification HDA040-A for the Intel High Definition
> Audio 1.0a specification introduces a Device Select verb for Digital
> Display Pin Widgets that are multi-stream capable. This verb selects
> a Device Entry that is used by subsequent Pin Widget verbs,
> including the Get Connection List Entry verb.
> 
> This patch queries the current Device Select value, associates it
> with the connection list, and updates the connection list management
> code to consider dev_id along with nid.

I don't get why this is needed.  This is the list that is added only
from snd_hda_override_conn_list(), and you don't change that call
pattern, so dev_id is always zero.


thanks,

Takashi

> 
> Signed-off-by: Nikhil Mahale <nmahale at nvidia.com>
> Reviewed-by: Aaron Plattner <aplattner at nvidia.com>
> ---
>  sound/pci/hda/hda_codec.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index a2fb19129219..8f32cab8f4a4 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -88,6 +88,7 @@ struct hda_conn_list {
>  	struct list_head list;
>  	int len;
>  	hda_nid_t nid;
> +	int dev_id;
>  	hda_nid_t conns[0];
>  };
>  
> @@ -96,8 +97,9 @@ static struct hda_conn_list *
>  lookup_conn_list(struct hda_codec *codec, hda_nid_t nid)
>  {
>  	struct hda_conn_list *p;
> +	int dev_id = snd_hda_get_dev_select(codec, nid);
>  	list_for_each_entry(p, &codec->conn_list, list) {
> -		if (p->nid == nid)
> +		if (p->nid == nid && p->dev_id == dev_id)
>  			return p;
>  	}
>  	return NULL;
> @@ -113,6 +115,7 @@ static int add_conn_list(struct hda_codec *codec, hda_nid_t nid, int len,
>  		return -ENOMEM;
>  	p->len = len;
>  	p->nid = nid;
> +	p->dev_id = snd_hda_get_dev_select(codec, nid);
>  	memcpy(p->conns, list, len * sizeof(hda_nid_t));
>  	list_add(&p->list, &codec->conn_list);
>  	return 0;
> -- 
> 2.16.4
> 


More information about the Alsa-devel mailing list