ALSA: x86: Prepare LPE audio ctls for multiple PCMs
In preparation for register a PCM device for each pipe adjust link up the ctl elements with the corresponding PCM device. Cc: Takashi Iwai <tiwai@suse.de> Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170427160231.13337-10-ville.syrjala@linux.intel.com Reviewed-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
a8562e4dec
commit
bb4ac5a0ec
|
@ -1609,11 +1609,16 @@ static void had_audio_wq(struct work_struct *work)
|
||||||
/*
|
/*
|
||||||
* Jack interface
|
* Jack interface
|
||||||
*/
|
*/
|
||||||
static int had_create_jack(struct snd_intelhad *ctx)
|
static int had_create_jack(struct snd_intelhad *ctx,
|
||||||
|
struct snd_pcm *pcm)
|
||||||
{
|
{
|
||||||
|
char hdmi_str[32];
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = snd_jack_new(ctx->card, "HDMI/DP", SND_JACK_AVOUT, &ctx->jack,
|
snprintf(hdmi_str, sizeof(hdmi_str),
|
||||||
|
"HDMI/DP,pcm=%d", pcm->device);
|
||||||
|
|
||||||
|
err = snd_jack_new(ctx->card, hdmi_str, SND_JACK_AVOUT, &ctx->jack,
|
||||||
true, false);
|
true, false);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
@ -1793,7 +1798,17 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
/* create controls */
|
/* create controls */
|
||||||
for (i = 0; i < ARRAY_SIZE(had_controls); i++) {
|
for (i = 0; i < ARRAY_SIZE(had_controls); i++) {
|
||||||
ret = snd_ctl_add(card, snd_ctl_new1(&had_controls[i], ctx));
|
struct snd_kcontrol *kctl;
|
||||||
|
|
||||||
|
kctl = snd_ctl_new1(&had_controls[i], ctx);
|
||||||
|
if (!kctl) {
|
||||||
|
ret = -ENOMEM;
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
kctl->id.device = pcm->device;
|
||||||
|
|
||||||
|
ret = snd_ctl_add(card, kctl);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
@ -1805,7 +1820,7 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
ret = had_create_jack(ctx);
|
ret = had_create_jack(ctx, pcm);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue