[alsa-devel] [PATCH v2] ASoC: Intel: boards: kbl_da7219_max98927: add dai_trigger function

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Tue Mar 5 05:03:35 CET 2019


>   
>   static int kabylake_ssp_fixup(struct snd_soc_pcm_runtime *rtd,
> @@ -864,6 +914,7 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
>   {
>   	struct kbl_codec_private *ctx = snd_soc_card_get_drvdata(card);
>   	struct kbl_hdmi_pcm *pcm;
> +	struct snd_soc_dapm_context *dapm = &card->dapm;
>   	struct snd_soc_component *component = NULL;
>   	int err, i = 0;
>   	char jack_name[NAME_SIZE];
> @@ -890,9 +941,25 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
>   	if (!component)
>   		return -EINVAL;
>   
> +
>   	return hdac_hdmi_jack_port_init(component, &card->dapm);

That part looks quite broken. You have functional code after the 
unconditional return above for the jack init.

This is not a diff illusion, I applied this patch and looked at the diff 
with emacs and I don't know how this could possibly work.

The code prior to this patch was also weird with 2 returns at the end of 
kabylake_card_late_probe()

My take is that this has never been tested against Mark's branch but 
ported without tests from the Chrome tree.

>   
> -	return 0;
> +	if (err < 0)
> +		return err;
> +
> +	err = snd_soc_dapm_disable_pin(dapm, "Left Spk");
> +	if (err) {
> +		dev_err(card->dev, "failed to disable Left Spk: %d\n", err);
> +		return err;
> +	}
> +
> +	err = snd_soc_dapm_disable_pin(dapm, "Right Spk");
> +	if (err) {
> +		dev_err(card->dev, "failed to disable Right Spk: %d\n", err);
> +		return err;
> +	}
> +
> +	return snd_soc_dapm_sync(dapm);




More information about the Alsa-devel mailing list