Some userspace applications need jack control events, so register hdmi
and dp jack pins to activate jack control events.
Signed-off-by: Trevor Wu <trevor.wu@mediatek.com>
---
sound/soc/mediatek/mt8188/mt8188-mt6359.c | 27 +++++++++++++++++++----
1 file changed, 23 insertions(+), 4 deletions(-)
diff --git a/sound/soc/mediatek/mt8188/mt8188-mt6359.c b/sound/soc/mediatek/mt8188/mt8188-mt6359.c
index 833bc362dad2..6c3f36e2fffd 100644
--- a/sound/soc/mediatek/mt8188/mt8188-mt6359.c
+++ b/sound/soc/mediatek/mt8188/mt8188-mt6359.c
@@ -151,6 +151,20 @@ struct mt8188_mt6359_priv {
struct snd_soc_jack hdmi_jack;
};
+static struct snd_soc_jack_pin mt8188_hdmi_jack_pins[] = {
+ {
+ .pin = "HDMI",
+ .mask = SND_JACK_LINEOUT,
+ },
+};
+
+static struct snd_soc_jack_pin mt8188_dp_jack_pins[] = {
+ {
+ .pin = "DP",
+ .mask = SND_JACK_LINEOUT,
+ },
+};
+
struct mt8188_card_data {
const char *name;
unsigned long quirk;
@@ -159,6 +173,8 @@ struct mt8188_card_data {
static const struct snd_soc_dapm_widget mt8188_mt6359_widgets[] = {
SND_SOC_DAPM_HP("Headphone", NULL),
SND_SOC_DAPM_MIC("Headset Mic", NULL),
+ SND_SOC_DAPM_SINK("HDMI"),
+ SND_SOC_DAPM_SINK("DP"),
};
static const struct snd_kcontrol_new mt8188_mt6359_controls[] = {
@@ -396,8 +412,10 @@ static int mt8188_hdmi_codec_init(struct snd_soc_pcm_runtime *rtd)
struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component;
int ret = 0;
- ret = snd_soc_card_jack_new(rtd->card, "HDMI Jack", SND_JACK_LINEOUT,
- &priv->hdmi_jack);
+ ret = snd_soc_card_jack_new_pins(rtd->card, "HDMI Jack",
+ SND_JACK_LINEOUT, &priv->hdmi_jack,
+ mt8188_hdmi_jack_pins,
+ ARRAY_SIZE(mt8188_hdmi_jack_pins));
if (ret) {
dev_info(rtd->dev, "%s, new jack failed: %d\n", __func__, ret);
return ret;
@@ -417,8 +435,9 @@ static int mt8188_dptx_codec_init(struct snd_soc_pcm_runtime *rtd)
struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component;
int ret = 0;
- ret = snd_soc_card_jack_new(rtd->card, "DP Jack", SND_JACK_LINEOUT,
- &priv->dp_jack);
+ ret = snd_soc_card_jack_new_pins(rtd->card, "DP Jack", SND_JACK_LINEOUT,
+ &priv->dp_jack, mt8188_dp_jack_pins,
+ ARRAY_SIZE(mt8188_dp_jack_pins));
if (ret) {
dev_info(rtd->dev, "%s, new jack failed: %d\n", __func__, ret);
return ret;
--
2.18.0
Il 17/05/23 13:15, Trevor Wu ha scritto: > Some userspace applications need jack control events, so register hdmi > and dp jack pins to activate jack control events. > > Signed-off-by: Trevor Wu <trevor.wu@mediatek.com> > --- > sound/soc/mediatek/mt8188/mt8188-mt6359.c | 27 +++++++++++++++++++---- > 1 file changed, 23 insertions(+), 4 deletions(-) > > diff --git a/sound/soc/mediatek/mt8188/mt8188-mt6359.c b/sound/soc/mediatek/mt8188/mt8188-mt6359.c > index 833bc362dad2..6c3f36e2fffd 100644 > --- a/sound/soc/mediatek/mt8188/mt8188-mt6359.c > +++ b/sound/soc/mediatek/mt8188/mt8188-mt6359.c > @@ -151,6 +151,20 @@ struct mt8188_mt6359_priv { > struct snd_soc_jack hdmi_jack; > }; > > +static struct snd_soc_jack_pin mt8188_hdmi_jack_pins[] = { > + { > + .pin = "HDMI", "HDMI Jack" is more consistent with the snd_soc_jack_new_pins() call performed later. > + .mask = SND_JACK_LINEOUT, > + }, > +}; > + > +static struct snd_soc_jack_pin mt8188_dp_jack_pins[] = { > + { > + .pin = "DP", Same here: "DP Jack" > + .mask = SND_JACK_LINEOUT, > + }, > +}; > + Regards, Angelo
On Wed, 2023-05-17 at 13:31 +0200, AngeloGioacchino Del Regno wrote: > External email : Please do not click links or open attachments until > you have verified the sender or the content. > > > Il 17/05/23 13:15, Trevor Wu ha scritto: > > Some userspace applications need jack control events, so register > > hdmi > > and dp jack pins to activate jack control events. > > > > Signed-off-by: Trevor Wu <trevor.wu@mediatek.com> > > --- > > sound/soc/mediatek/mt8188/mt8188-mt6359.c | 27 > > +++++++++++++++++++---- > > 1 file changed, 23 insertions(+), 4 deletions(-) > > > > diff --git a/sound/soc/mediatek/mt8188/mt8188-mt6359.c > > b/sound/soc/mediatek/mt8188/mt8188-mt6359.c > > index 833bc362dad2..6c3f36e2fffd 100644 > > --- a/sound/soc/mediatek/mt8188/mt8188-mt6359.c > > +++ b/sound/soc/mediatek/mt8188/mt8188-mt6359.c > > @@ -151,6 +151,20 @@ struct mt8188_mt6359_priv { > > struct snd_soc_jack hdmi_jack; > > }; > > > > +static struct snd_soc_jack_pin mt8188_hdmi_jack_pins[] = { > > + { > > + .pin = "HDMI", > > "HDMI Jack" is more consistent with the snd_soc_jack_new_pins() call > performed > later. Hi Angelo, I see jack_kctl_name_gen() will append "Jack" to the name if I don't name the pin "HDMI Jack". Do you mean that I could directly use "HDMI Jack" because ALSA uses the name finally? Thanks, Trevor > > > + .mask = SND_JACK_LINEOUT, > > + }, > > +}; > > + > > +static struct snd_soc_jack_pin mt8188_dp_jack_pins[] = { > > + { > > + .pin = "DP", > > Same here: "DP Jack" > > > + .mask = SND_JACK_LINEOUT, > > + }, > > +}; > > + > > Regards, > Angelo >
Il 17/05/23 14:10, Trevor Wu (吳文良) ha scritto: > On Wed, 2023-05-17 at 13:31 +0200, AngeloGioacchino Del Regno wrote: >> External email : Please do not click links or open attachments until >> you have verified the sender or the content. >> >> >> Il 17/05/23 13:15, Trevor Wu ha scritto: >>> Some userspace applications need jack control events, so register >>> hdmi >>> and dp jack pins to activate jack control events. >>> >>> Signed-off-by: Trevor Wu <trevor.wu@mediatek.com> >>> --- >>> sound/soc/mediatek/mt8188/mt8188-mt6359.c | 27 >>> +++++++++++++++++++---- >>> 1 file changed, 23 insertions(+), 4 deletions(-) >>> >>> diff --git a/sound/soc/mediatek/mt8188/mt8188-mt6359.c >>> b/sound/soc/mediatek/mt8188/mt8188-mt6359.c >>> index 833bc362dad2..6c3f36e2fffd 100644 >>> --- a/sound/soc/mediatek/mt8188/mt8188-mt6359.c >>> +++ b/sound/soc/mediatek/mt8188/mt8188-mt6359.c >>> @@ -151,6 +151,20 @@ struct mt8188_mt6359_priv { >>> struct snd_soc_jack hdmi_jack; >>> }; >>> >>> +static struct snd_soc_jack_pin mt8188_hdmi_jack_pins[] = { >>> + { >>> + .pin = "HDMI", >> >> "HDMI Jack" is more consistent with the snd_soc_jack_new_pins() call >> performed >> later. > > Hi Angelo, > > I see jack_kctl_name_gen() will append "Jack" to the name if I don't > name the pin "HDMI Jack". Do you mean that I could directly use "HDMI > Jack" because ALSA uses the name finally? > You're right and I just checked; the comment even says 'remove redundant " Jack" from src_name' So yes, the current names are fine. Sorry about that. Regards, Angelo
On Wed, 2023-05-17 at 17:10 +0200, AngeloGioacchino Del Regno wrote: > External email : Please do not click links or open attachments until > you have verified the sender or the content. > > > Il 17/05/23 14:10, Trevor Wu (吳文良) ha scritto: > > On Wed, 2023-05-17 at 13:31 +0200, AngeloGioacchino Del Regno > > wrote: > > > External email : Please do not click links or open attachments > > > until > > > you have verified the sender or the content. > > > > > > > > > Il 17/05/23 13:15, Trevor Wu ha scritto: > > > > Some userspace applications need jack control events, so > > > > register > > > > hdmi > > > > and dp jack pins to activate jack control events. > > > > > > > > Signed-off-by: Trevor Wu <trevor.wu@mediatek.com> > > > > --- > > > > sound/soc/mediatek/mt8188/mt8188-mt6359.c | 27 > > > > +++++++++++++++++++---- > > > > 1 file changed, 23 insertions(+), 4 deletions(-) > > > > > > > > diff --git a/sound/soc/mediatek/mt8188/mt8188-mt6359.c > > > > b/sound/soc/mediatek/mt8188/mt8188-mt6359.c > > > > index 833bc362dad2..6c3f36e2fffd 100644 > > > > --- a/sound/soc/mediatek/mt8188/mt8188-mt6359.c > > > > +++ b/sound/soc/mediatek/mt8188/mt8188-mt6359.c > > > > @@ -151,6 +151,20 @@ struct mt8188_mt6359_priv { > > > > struct snd_soc_jack hdmi_jack; > > > > }; > > > > > > > > +static struct snd_soc_jack_pin mt8188_hdmi_jack_pins[] = { > > > > + { > > > > + .pin = "HDMI", > > > > > > "HDMI Jack" is more consistent with the snd_soc_jack_new_pins() > > > call > > > performed > > > later. > > > > Hi Angelo, > > > > I see jack_kctl_name_gen() will append "Jack" to the name if I > > don't > > name the pin "HDMI Jack". Do you mean that I could directly use > > "HDMI > > Jack" because ALSA uses the name finally? > > > > You're right and I just checked; the comment even says > 'remove redundant " Jack" from src_name' > > So yes, the current names are fine. Sorry about that. > > Regards, > Angelo I checked the original commit[1] for the function. The purpose of jack_kctl_name_gen() is to ensure only one "Jack" shown in kctrl_name. If "Jack" is already found in src_name, don't append "Jack" again. I'm not sure which is better for pin name, but it's certain they get the same kctrl_name finally. [1] https://lore.kernel.org/all/1430140862-17207-3-git-send-email-yang.jie@intel.com Thanks, Trevor
© 2016 - 2024 Red Hat, Inc.