[alsa-devel] [PATCH v2] ASoC: codec: hdac_hdmi: fix pin connections at cvt enable

Takashi Iwai tiwai at suse.de
Thu Jun 13 12:21:45 CEST 2019


On Thu, 13 Jun 2019 12:17:55 +0200,
Kai Vehmanen wrote:
> 
> +/**
> + * Go through all converters and ensure connection is set to
> + * the correct pin as set via kcontrols.
> + */

Avoid using the double asterisks "/**" unless it's an entry for
kernel-doc.

> +static void hdac_hdmi_verify_connect_sel_all_pins(struct hdac_device *hdev)
> +{
> +	struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev);
> +	struct hdac_hdmi_port *port;
> +	struct hdac_hdmi_cvt *cvt;
> +	int cvt_idx = 0;
> +
> +	list_for_each_entry(cvt, &hdmi->cvt_list, head) {
> +		port = hdac_hdmi_get_port_from_cvt(hdev, hdmi, cvt);
> +		if (port && port->pin) {
> +                  snd_hdac_codec_write(hdev, port->pin->nid, 0,
> +                                       AC_VERB_SET_CONNECT_SEL, cvt_idx);
> +                  dev_dbg(&hdev->dev, "%s: %s set connect %d -> %d\n",
> +                          __func__, cvt->name, port->pin->nid, cvt_idx);

Please fix indentation and use tabs.

> +		}
> +		++cvt_idx;
> +	}
> +}
> +
>  /*
>   * This tries to get a valid pin and set the HW constraints based on the
>   * ELD. Even if a valid pin is not found return success so that device open
> @@ -806,6 +829,14 @@ static int hdac_hdmi_cvt_output_widget_event(struct snd_soc_dapm_widget *w,
>  				AC_VERB_SET_CHANNEL_STREAMID, pcm->stream_tag);
>  		snd_hdac_codec_write(hdev, cvt->nid, 0,
>  				AC_VERB_SET_STREAM_FORMAT, pcm->format);
> +
> +		/**
> +		 * The connection indices are shared by all converters and
> +		 * may interfere with each other. Ensure correct
> +		 * routing for all converters at stream start.
> +		 */

Avoid the double-asterisks.


thanks,

Takashi


More information about the Alsa-devel mailing list