ASoC: soc-card: Create jack kcontrol without pins
authorAkihiko Odaki <akihiko.odaki@gmail.com>
Fri, 8 Apr 2022 04:11:14 +0000 (13:11 +0900)
committerMark Brown <broonie@kernel.org>
Thu, 14 Apr 2022 16:37:21 +0000 (17:37 +0100)
snd_soc_card_jack_new() allowed to create jack kcontrol without pins,
but did not create kcontrols. The jack would not have kcontrols if pins
were not going to be added.

This renames the old snd_soc_card_jack_new() to
snd_soc_card_jack_new_pins() for use when pins are provided or will be
added later. The new snd_soc_card_jack_new() appropriately creates a
jack for use without pins and adds a kcontrol.

Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Link: https://lore.kernel.org/r/20220408041114.6024-1-akihiko.odaki@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
84 files changed:
drivers/staging/greybus/audio_codec.c
include/sound/soc-card.h
sound/soc/amd/acp-da7219-max98357a.c
sound/soc/amd/acp-rt5645.c
sound/soc/amd/acp/acp-mach-common.c
sound/soc/amd/acp3x-rt5682-max9836.c
sound/soc/amd/vangogh/acp5x-mach.c
sound/soc/codecs/cs43130.c
sound/soc/fsl/imx-es8328.c
sound/soc/fsl/imx-hdmi.c
sound/soc/generic/simple-card-utils.c
sound/soc/intel/boards/bdw-rt5650.c
sound/soc/intel/boards/bdw-rt5677.c
sound/soc/intel/boards/broadwell.c
sound/soc/intel/boards/bxt_da7219_max98357a.c
sound/soc/intel/boards/bxt_rt298.c
sound/soc/intel/boards/bytcht_cx2072x.c
sound/soc/intel/boards/bytcht_es8316.c
sound/soc/intel/boards/bytcr_rt5640.c
sound/soc/intel/boards/bytcr_rt5651.c
sound/soc/intel/boards/bytcr_wm5102.c
sound/soc/intel/boards/cht_bsw_max98090_ti.c
sound/soc/intel/boards/cht_bsw_nau8824.c
sound/soc/intel/boards/cht_bsw_rt5645.c
sound/soc/intel/boards/cht_bsw_rt5672.c
sound/soc/intel/boards/cml_rt1011_rt5682.c
sound/soc/intel/boards/glk_rt5682_max98357a.c
sound/soc/intel/boards/kbl_da7219_max98357a.c
sound/soc/intel/boards/kbl_da7219_max98927.c
sound/soc/intel/boards/kbl_rt5660.c
sound/soc/intel/boards/kbl_rt5663_max98927.c
sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
sound/soc/intel/boards/skl_hda_dsp_common.c
sound/soc/intel/boards/skl_nau88l25_max98357a.c
sound/soc/intel/boards/skl_nau88l25_ssm4567.c
sound/soc/intel/boards/skl_rt286.c
sound/soc/intel/boards/sof_cs42l42.c
sound/soc/intel/boards/sof_da7219_max98373.c
sound/soc/intel/boards/sof_es8336.c
sound/soc/intel/boards/sof_nau8825.c
sound/soc/intel/boards/sof_rt5682.c
sound/soc/intel/boards/sof_sdw_rt5682.c
sound/soc/intel/boards/sof_sdw_rt700.c
sound/soc/intel/boards/sof_sdw_rt711.c
sound/soc/intel/boards/sof_sdw_rt711_sdca.c
sound/soc/intel/boards/sof_ssp_amp.c
sound/soc/mediatek/mt8173/mt8173-max98090.c
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
sound/soc/mediatek/mt8173/mt8173-rt5650.c
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
sound/soc/mediatek/mt8195/mt8195-mt6359.c
sound/soc/pxa/hx4700.c
sound/soc/pxa/palm27x.c
sound/soc/pxa/ttc-dkb.c
sound/soc/pxa/z2.c
sound/soc/qcom/apq8016_sbc.c
sound/soc/qcom/sc7180.c
sound/soc/qcom/sc7280.c
sound/soc/qcom/sdm845.c
sound/soc/qcom/sm8250.c
sound/soc/rockchip/rk3288_hdmi_analog.c
sound/soc/rockchip/rk3399_gru_sound.c
sound/soc/rockchip/rockchip_max98090.c
sound/soc/rockchip/rockchip_rt5645.c
sound/soc/samsung/aries_wm8994.c
sound/soc/samsung/h1940_uda1380.c
sound/soc/samsung/littlemill.c
sound/soc/samsung/lowland.c
sound/soc/samsung/midas_wm1811.c
sound/soc/samsung/rx1950_uda1380.c
sound/soc/samsung/smartq_wm8987.c
sound/soc/samsung/speyside.c
sound/soc/samsung/tobermory.c
sound/soc/soc-card.c
sound/soc/soc-jack.c
sound/soc/tegra/tegra_asoc_machine.c
sound/soc/tegra/tegra_wm8903.c
sound/soc/ti/ams-delta.c
sound/soc/ti/omap-abe-twl6040.c
sound/soc/ti/omap-twl4030.c
sound/soc/ti/rx51.c

index b589cf6..db0b600 100644 (file)
@@ -702,8 +702,9 @@ static int gbaudio_init_jack(struct gbaudio_module_info *module,
 
        headset->pin = module->jack_name;
        headset->mask = module->jack_mask;
-       ret = snd_soc_card_jack_new(card, module->jack_name, module->jack_mask,
-                                   &module->headset.jack, headset, 1);
+       ret = snd_soc_card_jack_new_pins(card, module->jack_name,
+                                        module->jack_mask,
+                                        &module->headset.jack, headset, 1);
        if (ret) {
                dev_err(module->dev, "Failed to create new jack\n");
                return ret;
@@ -725,9 +726,10 @@ static int gbaudio_init_jack(struct gbaudio_module_info *module,
 
        button->pin = module->button_name;
        button->mask = module->button_mask;
-       ret = snd_soc_card_jack_new(card, module->button_name,
-                                   module->button_mask, &module->button.jack,
-                                   button, 1);
+       ret = snd_soc_card_jack_new_pins(card, module->button_name,
+                                        module->button_mask,
+                                        &module->button.jack,
+                                        button, 1);
        if (ret) {
                dev_err(module->dev, "Failed to create button jack\n");
                goto free_jacks;
index 4f2cc4f..df08573 100644 (file)
@@ -16,8 +16,11 @@ enum snd_soc_card_subclass {
 struct snd_kcontrol *snd_soc_card_get_kcontrol(struct snd_soc_card *soc_card,
                                               const char *name);
 int snd_soc_card_jack_new(struct snd_soc_card *card, const char *id, int type,
-                         struct snd_soc_jack *jack,
-                         struct snd_soc_jack_pin *pins, unsigned int num_pins);
+                         struct snd_soc_jack *jack);
+int snd_soc_card_jack_new_pins(struct snd_soc_card *card, const char *id,
+                              int type, struct snd_soc_jack *jack,
+                              struct snd_soc_jack_pin *pins,
+                              unsigned int num_pins);
 
 int snd_soc_card_suspend_pre(struct snd_soc_card *card);
 int snd_soc_card_suspend_post(struct snd_soc_card *card);
index 3bf86c2..ef1b4ce 100644 (file)
@@ -71,7 +71,7 @@ static int cz_da7219_init(struct snd_soc_pcm_runtime *rtd)
                                SND_JACK_HEADSET | SND_JACK_LINEOUT |
                                SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                               &cz_jack, NULL, 0);
+                               &cz_jack);
        if (ret) {
                dev_err(card->dev, "HP jack creation failed %d\n", ret);
                return ret;
@@ -151,7 +151,7 @@ static int cz_rt5682_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_LINEOUT |
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &cz_jack, NULL, 0);
+                                   &cz_jack);
        if (ret) {
                dev_err(card->dev, "HP jack creation failed %d\n", ret);
                return ret;
index a79a466..532aa98 100644 (file)
@@ -80,7 +80,7 @@ static int cz_init(struct snd_soc_pcm_runtime *rtd)
                                SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
                                SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                               &cz_jack, NULL, 0);
+                               &cz_jack);
        if (ret) {
                dev_err(card->dev, "HP jack creation failed %d\n", ret);
                return ret;
index caa202f..51adb8f 100644 (file)
@@ -145,7 +145,7 @@ static int acp_card_rt5682_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_LINEOUT |
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &pco_jack, NULL, 0);
+                                   &pco_jack);
        if (ret) {
                dev_err(card->dev, "HP jack creation failed %d\n", ret);
                return ret;
@@ -266,7 +266,7 @@ static int acp_card_rt5682s_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_LINEOUT |
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &pco_jack, NULL, 0);
+                                   &pco_jack);
        if (ret) {
                dev_err(card->dev, "HP jack creation failed %d\n", ret);
                return ret;
index dad7043..0543dda 100644 (file)
@@ -90,7 +90,7 @@ static int acp3x_5682_init(struct snd_soc_pcm_runtime *rtd)
                                SND_JACK_HEADSET | SND_JACK_LINEOUT |
                                SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                               &pco_jack, NULL, 0);
+                               &pco_jack);
        if (ret) {
                dev_err(card->dev, "HP jack creation failed %d\n", ret);
                return ret;
index 1551546..d8b2562 100644 (file)
@@ -61,10 +61,10 @@ static int acp5x_8821_init(struct snd_soc_pcm_runtime *rtd)
         * Headset buttons map to the google Reference headset.
         * These can be configured by userspace.
         */
-       ret = snd_soc_card_jack_new(card, "Headset Jack",
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0,
-                                   &vg_headset, acp5x_nau8821_jack_pins,
-                                   ARRAY_SIZE(acp5x_nau8821_jack_pins));
+       ret = snd_soc_card_jack_new_pins(card, "Headset Jack",
+                                        SND_JACK_HEADSET | SND_JACK_BTN_0,
+                                        &vg_headset, acp5x_nau8821_jack_pins,
+                                        ARRAY_SIZE(acp5x_nau8821_jack_pins));
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed %d\n", ret);
                return ret;
index e38552a..04548b5 100644 (file)
@@ -2303,7 +2303,7 @@ static int cs43130_probe(struct snd_soc_component *component)
        }
 
        ret = snd_soc_card_jack_new(card, "Headphone", CS43130_JACK_MASK,
-                                   &cs43130->jack, NULL, 0);
+                                   &cs43130->jack);
        if (ret < 0) {
                dev_err(component->dev, "Cannot create jack\n");
                return ret;
index 1689730..b80c573 100644 (file)
@@ -48,7 +48,7 @@ static int imx_es8328_dai_init(struct snd_soc_pcm_runtime *rtd)
        if (gpio_is_valid(data->jack_gpio)) {
                ret = snd_soc_card_jack_new(rtd->card, "Headphone",
                                            SND_JACK_HEADPHONE | SND_JACK_BTN_0,
-                                           &headset_jack, NULL, 0);
+                                           &headset_jack);
                if (ret)
                        return ret;
 
index 929f69b..e10136a 100644 (file)
@@ -78,8 +78,9 @@ static int imx_hdmi_init(struct snd_soc_pcm_runtime *rtd)
        data->hdmi_jack_pin.pin = "HDMI Jack";
        data->hdmi_jack_pin.mask = SND_JACK_LINEOUT;
        /* enable jack detection */
-       ret = snd_soc_card_jack_new(card, "HDMI Jack", SND_JACK_LINEOUT,
-                                   &data->hdmi_jack, &data->hdmi_jack_pin, 1);
+       ret = snd_soc_card_jack_new_pins(card, "HDMI Jack", SND_JACK_LINEOUT,
+                                        &data->hdmi_jack,
+                                        &data->hdmi_jack_pin, 1);
        if (ret) {
                dev_err(card->dev, "Can't new HDMI Jack %d\n", ret);
                return ret;
index f215794..04a6fb7 100644 (file)
@@ -721,9 +721,8 @@ int asoc_simple_init_jack(struct snd_soc_card *card,
                sjack->gpio.invert      = !!(flags & OF_GPIO_ACTIVE_LOW);
                sjack->gpio.debounce_time = 150;
 
-               snd_soc_card_jack_new(card, pin_name, mask,
-                                     &sjack->jack,
-                                     &sjack->pin, 1);
+               snd_soc_card_jack_new_pins(card, pin_name, mask, &sjack->jack,
+                                          &sjack->pin, 1);
 
                snd_soc_jack_add_gpios(&sjack->jack, 1,
                                       &sjack->gpio);
index bc0eab1..aae857f 100644 (file)
@@ -192,15 +192,15 @@ static int bdw_rt5650_init(struct snd_soc_pcm_runtime *rtd)
        }
 
        /* Create and initialize headphone jack */
-       if (snd_soc_card_jack_new(rtd->card, "Headphone Jack",
+       if (snd_soc_card_jack_new_pins(rtd->card, "Headphone Jack",
                        SND_JACK_HEADPHONE, &headphone_jack,
                        &headphone_jack_pin, 1)) {
                dev_err(component->dev, "Can't create headphone jack\n");
        }
 
        /* Create and initialize mic jack */
-       if (snd_soc_card_jack_new(rtd->card, "Mic Jack", SND_JACK_MICROPHONE,
-                       &mic_jack, &mic_jack_pin, 1)) {
+       if (snd_soc_card_jack_new_pins(rtd->card, "Mic Jack",
+                       SND_JACK_MICROPHONE, &mic_jack, &mic_jack_pin, 1)) {
                dev_err(component->dev, "Can't create mic jack\n");
        }
 
index 071557f..d0ecbba 100644 (file)
@@ -256,7 +256,7 @@ static int bdw_rt5677_init(struct snd_soc_pcm_runtime *rtd)
        }
 
        /* Create and initialize headphone jack */
-       if (!snd_soc_card_jack_new(rtd->card, "Headphone Jack",
+       if (!snd_soc_card_jack_new_pins(rtd->card, "Headphone Jack",
                        SND_JACK_HEADPHONE, &headphone_jack,
                        &headphone_jack_pin, 1)) {
                headphone_jack_gpio.gpiod_dev = component->dev;
@@ -268,7 +268,7 @@ static int bdw_rt5677_init(struct snd_soc_pcm_runtime *rtd)
        }
 
        /* Create and initialize mic jack */
-       if (!snd_soc_card_jack_new(rtd->card, "Mic Jack",
+       if (!snd_soc_card_jack_new_pins(rtd->card, "Mic Jack",
                        SND_JACK_MICROPHONE, &mic_jack,
                        &mic_jack_pin, 1)) {
                mic_jack_gpio.gpiod_dev = component->dev;
index d37c74f..c30a9dc 100644 (file)
@@ -69,7 +69,7 @@ static int broadwell_rt286_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, "Headset",
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset",
                SND_JACK_HEADSET | SND_JACK_BTN_0, &broadwell_headset,
                broadwell_headset_pins, ARRAY_SIZE(broadwell_headset_pins));
        if (ret)
index 9bc7b88..d98376d 100644 (file)
@@ -234,7 +234,7 @@ static int broxton_da7219_codec_init(struct snd_soc_pcm_runtime *rtd)
        ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
                        SND_JACK_HEADSET | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                        SND_JACK_BTN_2 | SND_JACK_BTN_3 | SND_JACK_LINEOUT,
-                       &broxton_headset, NULL, 0);
+                       &broxton_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
@@ -720,8 +720,7 @@ static int bxt_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                       SND_JACK_AVOUT, &broxton_hdmi[i],
-                                       NULL, 0);
+                                       SND_JACK_AVOUT, &broxton_hdmi[i]);
 
                if (err)
                        return err;
index 05e8330..75995d1 100644 (file)
@@ -168,7 +168,7 @@ static int broxton_rt298_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, "Headset",
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset",
                SND_JACK_HEADSET | SND_JACK_BTN_0,
                &broxton_headset,
                broxton_headset_pins, ARRAY_SIZE(broxton_headset_pins));
@@ -544,8 +544,7 @@ static int bxt_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                       SND_JACK_AVOUT, &broxton_hdmi[i],
-                                       NULL, 0);
+                                       SND_JACK_AVOUT, &broxton_hdmi[i]);
 
                if (err)
                        return err;
index 96d3201..0eed68a 100644 (file)
@@ -87,11 +87,11 @@ static int byt_cht_cx2072x_init(struct snd_soc_pcm_runtime *rtd)
                return ret;
        }
 
-       ret = snd_soc_card_jack_new(card, "Headset",
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0,
-                                   &byt_cht_cx2072x_headset,
-                                   byt_cht_cx2072x_headset_pins,
-                                   ARRAY_SIZE(byt_cht_cx2072x_headset_pins));
+       ret = snd_soc_card_jack_new_pins(card, "Headset",
+                                        SND_JACK_HEADSET | SND_JACK_BTN_0,
+                                        &byt_cht_cx2072x_headset,
+                                        byt_cht_cx2072x_headset_pins,
+                                        ARRAY_SIZE(byt_cht_cx2072x_headset_pins));
        if (ret)
                return ret;
 
index e18371b..a085077 100644 (file)
@@ -219,10 +219,10 @@ static int byt_cht_es8316_init(struct snd_soc_pcm_runtime *runtime)
                return ret;
        }
 
-       ret = snd_soc_card_jack_new(card, "Headset",
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0,
-                                   &priv->jack, byt_cht_es8316_jack_pins,
-                                   ARRAY_SIZE(byt_cht_es8316_jack_pins));
+       ret = snd_soc_card_jack_new_pins(card, "Headset",
+                                        SND_JACK_HEADSET | SND_JACK_BTN_0,
+                                        &priv->jack, byt_cht_es8316_jack_pins,
+                                        ARRAY_SIZE(byt_cht_es8316_jack_pins));
        if (ret) {
                dev_err(card->dev, "jack creation failed %d\n", ret);
                return ret;
index d76a505..702a4f1 100644 (file)
@@ -1300,10 +1300,10 @@ static int byt_rt5640_init(struct snd_soc_pcm_runtime *runtime)
        }
 
        if (BYT_RT5640_JDSRC(byt_rt5640_quirk)) {
-               ret = snd_soc_card_jack_new(card, "Headset",
-                                           SND_JACK_HEADSET | SND_JACK_BTN_0,
-                                           &priv->jack, rt5640_pins,
-                                           ARRAY_SIZE(rt5640_pins));
+               ret = snd_soc_card_jack_new_pins(card, "Headset",
+                                                SND_JACK_HEADSET | SND_JACK_BTN_0,
+                                                &priv->jack, rt5640_pins,
+                                                ARRAY_SIZE(rt5640_pins));
                if (ret) {
                        dev_err(card->dev, "Jack creation failed %d\n", ret);
                        return ret;
@@ -1321,17 +1321,17 @@ static int byt_rt5640_init(struct snd_soc_pcm_runtime *runtime)
        }
 
        if (byt_rt5640_quirk & BYT_RT5640_JD_HP_ELITEP_1000G2) {
-               ret = snd_soc_card_jack_new(card, "Headset",
-                                           SND_JACK_HEADSET,
-                                           &priv->jack, rt5640_pins,
-                                           ARRAY_SIZE(rt5640_pins));
+               ret = snd_soc_card_jack_new_pins(card, "Headset",
+                                                SND_JACK_HEADSET,
+                                                &priv->jack, rt5640_pins,
+                                                ARRAY_SIZE(rt5640_pins));
                if (ret)
                        return ret;
 
-               ret = snd_soc_card_jack_new(card, "Headset 2",
-                                           SND_JACK_HEADSET,
-                                           &priv->jack2, rt5640_pins2,
-                                           ARRAY_SIZE(rt5640_pins2));
+               ret = snd_soc_card_jack_new_pins(card, "Headset 2",
+                                                SND_JACK_HEADSET,
+                                                &priv->jack2, rt5640_pins2,
+                                                ARRAY_SIZE(rt5640_pins2));
                if (ret)
                        return ret;
 
index 39348d2..d467fca 100644 (file)
@@ -652,9 +652,10 @@ static int byt_rt5651_init(struct snd_soc_pcm_runtime *runtime)
                report = SND_JACK_HEADSET;
 
        if (report) {
-               ret = snd_soc_card_jack_new(runtime->card, "Headset",
-                                   report, &priv->jack, bytcr_jack_pins,
-                                   ARRAY_SIZE(bytcr_jack_pins));
+               ret = snd_soc_card_jack_new_pins(runtime->card, "Headset",
+                                                report, &priv->jack,
+                                                bytcr_jack_pins,
+                                                ARRAY_SIZE(bytcr_jack_pins));
                if (ret) {
                        dev_err(runtime->dev, "jack creation failed %d\n", ret);
                        return ret;
index 8d8e96e..00384c6 100644 (file)
@@ -226,9 +226,9 @@ static int byt_wm5102_init(struct snd_soc_pcm_runtime *runtime)
 
        jack_type = ARIZONA_JACK_MASK | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                    SND_JACK_BTN_2 | SND_JACK_BTN_3;
-       ret = snd_soc_card_jack_new(card, "Headset", jack_type,
-                                   &priv->jack, byt_wm5102_pins,
-                                   ARRAY_SIZE(byt_wm5102_pins));
+       ret = snd_soc_card_jack_new_pins(card, "Headset", jack_type,
+                                        &priv->jack, byt_wm5102_pins,
+                                        ARRAY_SIZE(byt_wm5102_pins));
        if (ret) {
                dev_err(card->dev, "Error creating jack: %d\n", ret);
                return ret;
index 183edd0..a5160f2 100644 (file)
@@ -201,9 +201,10 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
 
        jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
 
-       ret = snd_soc_card_jack_new(runtime->card, "Headset Jack",
-                                   jack_type, jack,
-                                   hs_jack_pins, ARRAY_SIZE(hs_jack_pins));
+       ret = snd_soc_card_jack_new_pins(runtime->card, "Headset Jack",
+                                        jack_type, jack,
+                                        hs_jack_pins,
+                                        ARRAY_SIZE(hs_jack_pins));
        if (ret) {
                dev_err(runtime->dev, "Headset Jack creation failed %d\n", ret);
                return ret;
@@ -306,8 +307,7 @@ static int cht_max98090_headset_init(struct snd_soc_component *component)
                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                    SND_JACK_BTN_2 | SND_JACK_BTN_3;
 
-       ret = snd_soc_card_jack_new(card, "Headset Jack", jack_type,
-                                   jack, NULL, 0);
+       ret = snd_soc_card_jack_new(card, "Headset Jack", jack_type, jack);
        if (ret) {
                dev_err(card->dev, "Headset Jack creation failed %d\n", ret);
                return ret;
index da6c659..4c1d83b 100644 (file)
@@ -108,8 +108,8 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
         */
        jack_type = SND_JACK_HEADSET | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                SND_JACK_BTN_2 | SND_JACK_BTN_3;
-       ret = snd_soc_card_jack_new(runtime->card, "Headset", jack_type, jack,
-               cht_bsw_jack_pins, ARRAY_SIZE(cht_bsw_jack_pins));
+       ret = snd_soc_card_jack_new_pins(runtime->card, "Headset", jack_type,
+               jack, cht_bsw_jack_pins, ARRAY_SIZE(cht_bsw_jack_pins));
        if (ret) {
                dev_err(runtime->dev,
                        "Headset Jack creation failed %d\n", ret);
index c21561c..45c301e 100644 (file)
@@ -302,9 +302,9 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
        else
                jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
 
-       ret = snd_soc_card_jack_new(runtime->card, "Headset",
-                                   jack_type, &ctx->jack,
-                                   cht_bsw_jack_pins, ARRAY_SIZE(cht_bsw_jack_pins));
+       ret = snd_soc_card_jack_new_pins(runtime->card, "Headset", jack_type,
+                                        &ctx->jack, cht_bsw_jack_pins,
+                                        ARRAY_SIZE(cht_bsw_jack_pins));
        if (ret) {
                dev_err(runtime->dev, "Headset jack creation failed %d\n", ret);
                return ret;
index 9882aeb..c80324f 100644 (file)
@@ -221,12 +221,12 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
        if (ret)
                return ret;
 
-        ret = snd_soc_card_jack_new(runtime->card, "Headset",
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0 |
-                                   SND_JACK_BTN_1 | SND_JACK_BTN_2,
-                                   &ctx->headset,
-                                   cht_bsw_headset_pins,
-                                   ARRAY_SIZE(cht_bsw_headset_pins));
+       ret = snd_soc_card_jack_new_pins(runtime->card, "Headset",
+                                        SND_JACK_HEADSET | SND_JACK_BTN_0 |
+                                        SND_JACK_BTN_1 | SND_JACK_BTN_2,
+                                        &ctx->headset,
+                                        cht_bsw_headset_pins,
+                                        ARRAY_SIZE(cht_bsw_headset_pins));
         if (ret)
                 return ret;
 
index 27615ac..a99f74a 100644 (file)
@@ -141,7 +141,7 @@ static int cml_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_BTN_0 |
                                    SND_JACK_BTN_1 | SND_JACK_BTN_2 |
                                    SND_JACK_BTN_3,
-                                   &ctx->headset, NULL, 0);
+                                   &ctx->headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
@@ -338,8 +338,7 @@ static int sof_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                         "HDMI/DP, pcm=%d Jack", pcm->device);
                ret = snd_soc_card_jack_new(card, jack_name,
-                                           SND_JACK_AVOUT, &hdmi_jack[i],
-                                           NULL, 0);
+                                           SND_JACK_AVOUT, &hdmi_jack[i]);
                if (ret)
                        return ret;
 
index e4bfb0f..170164b 100644 (file)
@@ -176,7 +176,7 @@ static int geminilake_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
        ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
                        SND_JACK_HEADSET | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                        SND_JACK_BTN_2 | SND_JACK_BTN_3 | SND_JACK_LINEOUT,
-                       &ctx->geminilake_headset, NULL, 0);
+                       &ctx->geminilake_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
@@ -571,8 +571,7 @@ static int glk_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                       SND_JACK_AVOUT, &geminilake_hdmi[i],
-                                       NULL, 0);
+                                       SND_JACK_AVOUT, &geminilake_hdmi[i]);
 
                if (err)
                        return err;
index a4bdf63..ceabed8 100644 (file)
@@ -182,7 +182,7 @@ static int kabylake_da7219_codec_init(struct snd_soc_pcm_runtime *rtd)
        ret = snd_soc_card_jack_new(kabylake_audio_card, "Headset Jack",
                        SND_JACK_HEADSET | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                        SND_JACK_BTN_2 | SND_JACK_BTN_3 | SND_JACK_LINEOUT,
-                       &ctx->kabylake_headset, NULL, 0);
+                       &ctx->kabylake_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
@@ -587,8 +587,7 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                       SND_JACK_AVOUT, &skylake_hdmi[i],
-                                       NULL, 0);
+                                       SND_JACK_AVOUT, &skylake_hdmi[i]);
 
                if (err)
                        return err;
index 620a9fb..703ccff 100644 (file)
@@ -357,7 +357,7 @@ static int kabylake_da7219_codec_init(struct snd_soc_pcm_runtime *rtd)
        ret = snd_soc_card_jack_new(kabylake_audio_card, "Headset Jack",
                        SND_JACK_HEADSET | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                        SND_JACK_BTN_2 | SND_JACK_BTN_3 | SND_JACK_LINEOUT,
-                       &ctx->kabylake_headset, NULL, 0);
+                       &ctx->kabylake_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
@@ -965,8 +965,7 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                       SND_JACK_AVOUT, &kabylake_hdmi[i],
-                                       NULL, 0);
+                                       SND_JACK_AVOUT, &kabylake_hdmi[i]);
 
                if (err)
                        return err;
index 1cb56ec..2c7a547 100644 (file)
@@ -173,9 +173,9 @@ static int kabylake_rt5660_codec_init(struct snd_soc_pcm_runtime *rtd)
        }
 
        /* Create and initialize headphone jack, this jack is not mandatory, don't return if fails */
-       ret = snd_soc_card_jack_new(rtd->card, "Lineout Jack",
-                                   SND_JACK_LINEOUT, &lineout_jack,
-                                   &lineout_jack_pin, 1);
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Lineout Jack",
+                                        SND_JACK_LINEOUT, &lineout_jack,
+                                        &lineout_jack_pin, 1);
        if (ret)
                dev_warn(component->dev, "Can't create Lineout jack\n");
        else {
@@ -187,9 +187,9 @@ static int kabylake_rt5660_codec_init(struct snd_soc_pcm_runtime *rtd)
        }
 
        /* Create and initialize mic jack, this jack is not mandatory, don't return if fails */
-       ret = snd_soc_card_jack_new(rtd->card, "Mic Jack",
-                                   SND_JACK_MICROPHONE, &mic_jack,
-                                   &mic_jack_pin, 1);
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Mic Jack",
+                                        SND_JACK_MICROPHONE, &mic_jack,
+                                        &mic_jack_pin, 1);
        if (ret)
                dev_warn(component->dev, "Can't create mic jack\n");
        else {
@@ -485,8 +485,7 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                       SND_JACK_AVOUT, &skylake_hdmi[i],
-                                       NULL, 0);
+                                       SND_JACK_AVOUT, &skylake_hdmi[i]);
 
                if (err)
                        return err;
index f24e0ce..8d37b26 100644 (file)
@@ -273,8 +273,8 @@ static int kabylake_rt5663_codec_init(struct snd_soc_pcm_runtime *rtd)
         */
        ret = snd_soc_card_jack_new(kabylake_audio_card, "Headset Jack",
                        SND_JACK_HEADSET | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
-                       SND_JACK_BTN_2 | SND_JACK_BTN_3, &ctx->kabylake_headset,
-                       NULL, 0);
+                       SND_JACK_BTN_2 | SND_JACK_BTN_3,
+                       &ctx->kabylake_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed %d\n", ret);
                return ret;
@@ -919,8 +919,7 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                       SND_JACK_AVOUT, &skylake_hdmi[i],
-                                       NULL, 0);
+                                       SND_JACK_AVOUT, &skylake_hdmi[i]);
 
                if (err)
                        return err;
index 6874e98..564c70a 100644 (file)
@@ -230,8 +230,8 @@ static int kabylake_rt5663_codec_init(struct snd_soc_pcm_runtime *rtd)
         */
        ret = snd_soc_card_jack_new(&kabylake_audio_card, "Headset Jack",
                        SND_JACK_HEADSET | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
-                       SND_JACK_BTN_2 | SND_JACK_BTN_3, &ctx->kabylake_headset,
-                       NULL, 0);
+                       SND_JACK_BTN_2 | SND_JACK_BTN_3,
+                       &ctx->kabylake_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed %d\n", ret);
                return ret;
@@ -743,8 +743,7 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP,pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                               SND_JACK_AVOUT, &ctx->kabylake_hdmi[i],
-                               NULL, 0);
+                               SND_JACK_AVOUT, &ctx->kabylake_hdmi[i]);
 
                if (err)
                        return err;
index 07bfb2e..e9cefa4 100644 (file)
@@ -150,17 +150,11 @@ int skl_hda_hdmi_jack_init(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                         "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                           SND_JACK_AVOUT, &pcm->hdmi_jack,
-                                           NULL, 0);
+                                           SND_JACK_AVOUT, &pcm->hdmi_jack);
 
                if (err)
                        return err;
 
-               err = snd_jack_add_new_kctl(pcm->hdmi_jack.jack,
-                                           jack_name, SND_JACK_AVOUT);
-               if (err)
-                       dev_warn(component->dev, "failed creating Jack kctl\n");
-
                err = hdac_hdmi_jack_init(pcm->codec_dai, pcm->device,
                                          &pcm->hdmi_jack);
                if (err < 0)
index 7297eb0..8e2d03e 100644 (file)
@@ -165,8 +165,7 @@ static int skylake_nau8825_codec_init(struct snd_soc_pcm_runtime *rtd)
         */
        ret = snd_soc_card_jack_new(&skylake_audio_card, "Headset Jack",
                        SND_JACK_HEADSET | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
-                       SND_JACK_BTN_2 | SND_JACK_BTN_3, &skylake_headset,
-                       NULL, 0);
+                       SND_JACK_BTN_2 | SND_JACK_BTN_3, &skylake_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed %d\n", ret);
                return ret;
@@ -610,8 +609,7 @@ static int skylake_card_late_probe(struct snd_soc_card *card)
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
                                        SND_JACK_AVOUT,
-                                       &skylake_hdmi[i],
-                                       NULL, 0);
+                                       &skylake_hdmi[i]);
 
                if (err)
                        return err;
index 68efde1..501f0bb 100644 (file)
@@ -184,8 +184,7 @@ static int skylake_nau8825_codec_init(struct snd_soc_pcm_runtime *rtd)
         */
        ret = snd_soc_card_jack_new(&skylake_audio_card, "Headset Jack",
                SND_JACK_HEADSET | SND_JACK_BTN_0 | SND_JACK_BTN_1 |
-               SND_JACK_BTN_2 | SND_JACK_BTN_3, &skylake_headset,
-               NULL, 0);
+               SND_JACK_BTN_2 | SND_JACK_BTN_3, &skylake_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed %d\n", ret);
                return ret;
@@ -651,8 +650,7 @@ static int skylake_card_late_probe(struct snd_soc_card *card)
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
                                        SND_JACK_AVOUT,
-                                       &skylake_hdmi[i],
-                                       NULL, 0);
+                                       &skylake_hdmi[i]);
 
                if (err)
                        return err;
index eca4a78..e9f9520 100644 (file)
@@ -125,7 +125,7 @@ static int skylake_rt286_codec_init(struct snd_soc_pcm_runtime *rtd)
        struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component;
        int ret;
 
-       ret = snd_soc_card_jack_new(rtd->card, "Headset",
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset",
                SND_JACK_HEADSET | SND_JACK_BTN_0,
                &skylake_headset,
                skylake_headset_pins, ARRAY_SIZE(skylake_headset_pins));
@@ -491,8 +491,7 @@ static int skylake_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                       SND_JACK_AVOUT, &skylake_hdmi[i],
-                                       NULL, 0);
+                                       SND_JACK_AVOUT, &skylake_hdmi[i]);
 
                if (err)
                        return err;
index ce78c18..6a979c3 100644 (file)
@@ -102,7 +102,7 @@ static int sof_cs42l42_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_BTN_0 |
                                    SND_JACK_BTN_1 | SND_JACK_BTN_2 |
                                    SND_JACK_BTN_3,
-                                   jack, NULL, 0);
+                                   jack);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
@@ -186,8 +186,7 @@ static int sof_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                         "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                           SND_JACK_AVOUT, &pcm->hdmi_jack,
-                                           NULL, 0);
+                                           SND_JACK_AVOUT, &pcm->hdmi_jack);
 
                if (err)
                        return err;
index b7b3b0b..a83f30b 100644 (file)
@@ -160,7 +160,7 @@ static int da7219_codec_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_BTN_0 |
                                    SND_JACK_BTN_1 | SND_JACK_BTN_2 |
                                    SND_JACK_BTN_3 | SND_JACK_LINEOUT,
-                                   &headset, NULL, 0);
+                                   &headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
index 9d61783..23d03e0 100644 (file)
@@ -245,10 +245,10 @@ static int sof_es8316_init(struct snd_soc_pcm_runtime *runtime)
        if (ret)
                return ret;
 
-       ret = snd_soc_card_jack_new(card, "Headset",
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0,
-                                   &priv->jack, sof_es8316_jack_pins,
-                                   ARRAY_SIZE(sof_es8316_jack_pins));
+       ret = snd_soc_card_jack_new_pins(card, "Headset",
+                                        SND_JACK_HEADSET | SND_JACK_BTN_0,
+                                        &priv->jack, sof_es8316_jack_pins,
+                                        ARRAY_SIZE(sof_es8316_jack_pins));
        if (ret) {
                dev_err(card->dev, "jack creation failed %d\n", ret);
                return ret;
index 33de043..97dcd20 100644 (file)
@@ -97,7 +97,7 @@ static int sof_nau8825_codec_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_BTN_0 |
                                    SND_JACK_BTN_1 | SND_JACK_BTN_2 |
                                    SND_JACK_BTN_3,
-                                   &ctx->sof_headset, NULL, 0);
+                                   &ctx->sof_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
index 7126fcb..e926d06 100644 (file)
@@ -298,7 +298,7 @@ static int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_BTN_0 |
                                    SND_JACK_BTN_1 | SND_JACK_BTN_2 |
                                    SND_JACK_BTN_3,
-                                   &ctx->sof_headset, NULL, 0);
+                                   &ctx->sof_headset);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
@@ -454,8 +454,7 @@ static int sof_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                         "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                           SND_JACK_AVOUT, &sof_hdmi[i],
-                                           NULL, 0);
+                                           SND_JACK_AVOUT, &sof_hdmi[i]);
 
                if (err)
                        return err;
index ea55479..3a9be82 100644 (file)
@@ -82,13 +82,13 @@ static int rt5682_rtd_init(struct snd_soc_pcm_runtime *rtd)
                return ret;
        }
 
-       ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0 |
-                                   SND_JACK_BTN_1 | SND_JACK_BTN_2 |
-                                   SND_JACK_BTN_3,
-                                   &ctx->sdw_headset,
-                                   rt5682_jack_pins,
-                                   ARRAY_SIZE(rt5682_jack_pins));
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
+                                        SND_JACK_HEADSET | SND_JACK_BTN_0 |
+                                        SND_JACK_BTN_1 | SND_JACK_BTN_2 |
+                                        SND_JACK_BTN_3,
+                                        &ctx->sdw_headset,
+                                        rt5682_jack_pins,
+                                        ARRAY_SIZE(rt5682_jack_pins));
        if (ret) {
                dev_err(rtd->card->dev, "Headset Jack creation failed: %d\n",
                        ret);
index bb9584c..c93b1f5 100644 (file)
@@ -82,13 +82,13 @@ static int rt700_rtd_init(struct snd_soc_pcm_runtime *rtd)
                return ret;
        }
 
-       ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0 |
-                                   SND_JACK_BTN_1 | SND_JACK_BTN_2 |
-                                   SND_JACK_BTN_3,
-                                   &ctx->sdw_headset,
-                                   rt700_jack_pins,
-                                   ARRAY_SIZE(rt700_jack_pins));
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
+                                        SND_JACK_HEADSET | SND_JACK_BTN_0 |
+                                        SND_JACK_BTN_1 | SND_JACK_BTN_2 |
+                                        SND_JACK_BTN_3,
+                                        &ctx->sdw_headset,
+                                        rt700_jack_pins,
+                                        ARRAY_SIZE(rt700_jack_pins));
        if (ret) {
                dev_err(rtd->card->dev, "Headset Jack creation failed: %d\n",
                        ret);
index c38b70c..49ff087 100644 (file)
@@ -106,13 +106,13 @@ static int rt711_rtd_init(struct snd_soc_pcm_runtime *rtd)
                return ret;
        }
 
-       ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0 |
-                                   SND_JACK_BTN_1 | SND_JACK_BTN_2 |
-                                   SND_JACK_BTN_3,
-                                   &ctx->sdw_headset,
-                                   rt711_jack_pins,
-                                   ARRAY_SIZE(rt711_jack_pins));
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
+                                        SND_JACK_HEADSET | SND_JACK_BTN_0 |
+                                        SND_JACK_BTN_1 | SND_JACK_BTN_2 |
+                                        SND_JACK_BTN_3,
+                                        &ctx->sdw_headset,
+                                        rt711_jack_pins,
+                                        ARRAY_SIZE(rt711_jack_pins));
        if (ret) {
                dev_err(rtd->card->dev, "Headset Jack creation failed: %d\n",
                        ret);
index 4215ddc..b3fc32b 100644 (file)
@@ -107,13 +107,13 @@ static int rt711_sdca_rtd_init(struct snd_soc_pcm_runtime *rtd)
                return ret;
        }
 
-       ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0 |
-                                   SND_JACK_BTN_1 | SND_JACK_BTN_2 |
-                                   SND_JACK_BTN_3,
-                                   &ctx->sdw_headset,
-                                   rt711_sdca_jack_pins,
-                                   ARRAY_SIZE(rt711_sdca_jack_pins));
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
+                                        SND_JACK_HEADSET | SND_JACK_BTN_0 |
+                                        SND_JACK_BTN_1 | SND_JACK_BTN_2 |
+                                        SND_JACK_BTN_3,
+                                        &ctx->sdw_headset,
+                                        rt711_sdca_jack_pins,
+                                        ARRAY_SIZE(rt711_sdca_jack_pins));
        if (ret) {
                dev_err(rtd->card->dev, "Headset Jack creation failed: %d\n",
                        ret);
index 88530e9..02a27aa 100644 (file)
@@ -118,8 +118,7 @@ static int sof_card_late_probe(struct snd_soc_card *card)
                snprintf(jack_name, sizeof(jack_name),
                         "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
-                                           SND_JACK_AVOUT, &pcm->sof_hdmi,
-                                           NULL, 0);
+                                           SND_JACK_AVOUT, &pcm->sof_hdmi);
 
                if (err)
                        return err;
index 58778cd..c2b0619 100644 (file)
@@ -70,10 +70,10 @@ static int mt8173_max98090_init(struct snd_soc_pcm_runtime *runtime)
        struct snd_soc_component *component = asoc_rtd_to_codec(runtime, 0)->component;
 
        /* enable jack detection */
-       ret = snd_soc_card_jack_new(card, "Headphone", SND_JACK_HEADPHONE,
-                                   &mt8173_max98090_jack,
-                                   mt8173_max98090_jack_pins,
-                                   ARRAY_SIZE(mt8173_max98090_jack_pins));
+       ret = snd_soc_card_jack_new_pins(card, "Headphone", SND_JACK_HEADPHONE,
+                                        &mt8173_max98090_jack,
+                                        mt8173_max98090_jack_pins,
+                                        ARRAY_SIZE(mt8173_max98090_jack_pins));
        if (ret) {
                dev_err(card->dev, "Can't create a new Jack %d\n", ret);
                return ret;
index b55122b..12f40c8 100644 (file)
@@ -86,7 +86,7 @@ static int mt8173_rt5650_rt5514_init(struct snd_soc_pcm_runtime *runtime)
                                    SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &mt8173_rt5650_rt5514_jack, NULL, 0);
+                                   &mt8173_rt5650_rt5514_jack);
        if (ret) {
                dev_err(card->dev, "Can't new Headset Jack %d\n", ret);
                return ret;
index 5716d92..70bf312 100644 (file)
@@ -99,7 +99,7 @@ static int mt8173_rt5650_rt5676_init(struct snd_soc_pcm_runtime *runtime)
                                    SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &mt8173_rt5650_rt5676_jack, NULL, 0);
+                                   &mt8173_rt5650_rt5676_jack);
        if (ret) {
                dev_err(card->dev, "Can't new Headset Jack %d\n", ret);
                return ret;
index fc164f4..d1c94ac 100644 (file)
@@ -132,7 +132,7 @@ static int mt8173_rt5650_init(struct snd_soc_pcm_runtime *runtime)
                                    SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &mt8173_rt5650_jack, NULL, 0);
+                                   &mt8173_rt5650_jack);
        if (ret) {
                dev_err(card->dev, "Can't new Headset Jack %d\n", ret);
                return ret;
@@ -149,7 +149,7 @@ static int mt8173_rt5650_hdmi_init(struct snd_soc_pcm_runtime *rtd)
        int ret;
 
        ret = snd_soc_card_jack_new(rtd->card, "HDMI Jack", SND_JACK_LINEOUT,
-                                   &mt8173_rt5650_hdmi_jack, NULL, 0);
+                                   &mt8173_rt5650_hdmi_jack);
        if (ret)
                return ret;
 
index f090dee..b33cc9a 100644 (file)
@@ -364,7 +364,7 @@ static int mt8183_da7219_max98357_hdmi_init(struct snd_soc_pcm_runtime *rtd)
        int ret;
 
        ret = snd_soc_card_jack_new(rtd->card, "HDMI Jack", SND_JACK_LINEOUT,
-                                   &priv->hdmi_jack, NULL, 0);
+                                   &priv->hdmi_jack);
        if (ret)
                return ret;
 
@@ -546,8 +546,7 @@ mt8183_da7219_max98357_headset_init(struct snd_soc_component *component)
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3 |
                                    SND_JACK_LINEOUT,
-                                   &priv->headset_jack,
-                                   NULL, 0);
+                                   &priv->headset_jack);
        if (ret)
                return ret;
 
index 889f9e4..ab157db 100644 (file)
@@ -383,7 +383,7 @@ mt8183_mt6358_ts3a227_max98357_hdmi_init(struct snd_soc_pcm_runtime *rtd)
        int ret;
 
        ret = snd_soc_card_jack_new(rtd->card, "HDMI Jack", SND_JACK_LINEOUT,
-                                   &priv->hdmi_jack, NULL, 0);
+                                   &priv->hdmi_jack);
        if (ret)
                return ret;
 
@@ -613,8 +613,7 @@ mt8183_mt6358_ts3a227_max98357_headset_init(struct snd_soc_component *component)
                                    SND_JACK_HEADSET |
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &priv->headset_jack,
-                                   NULL, 0);
+                                   &priv->headset_jack);
        if (ret)
                return ret;
 
index 2c71bd8..d0f9d66 100644 (file)
@@ -321,7 +321,7 @@ static int mt8192_rt5682_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_BTN_0 |
                                    SND_JACK_BTN_1 | SND_JACK_BTN_2 |
                                    SND_JACK_BTN_3,
-                                   jack, NULL, 0);
+                                   jack);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
@@ -343,7 +343,7 @@ static int mt8192_mt6359_hdmi_init(struct snd_soc_pcm_runtime *rtd)
        int ret;
 
        ret = snd_soc_card_jack_new(rtd->card, "HDMI Jack", SND_JACK_LINEOUT,
-                                   &priv->hdmi_jack, NULL, 0);
+                                   &priv->hdmi_jack);
        if (ret) {
                dev_err(rtd->dev, "HDMI Jack creation failed: %d\n", ret);
                return ret;
index 262a54e..3e32fe8 100644 (file)
@@ -380,7 +380,7 @@ static int mt8195_dptx_codec_init(struct snd_soc_pcm_runtime *rtd)
        int ret;
 
        ret = snd_soc_card_jack_new(rtd->card, "DP Jack", SND_JACK_LINEOUT,
-                                   &priv->dp_jack, NULL, 0);
+                                   &priv->dp_jack);
        if (ret)
                return ret;
 
@@ -395,7 +395,7 @@ static int mt8195_hdmi_codec_init(struct snd_soc_pcm_runtime *rtd)
        int ret;
 
        ret = snd_soc_card_jack_new(rtd->card, "HDMI Jack", SND_JACK_LINEOUT,
-                                   &priv->hdmi_jack, NULL, 0);
+                                   &priv->hdmi_jack);
        if (ret)
                return ret;
 
@@ -569,7 +569,7 @@ static int mt8195_rt5682_init(struct snd_soc_pcm_runtime *rtd)
                                    SND_JACK_HEADSET | SND_JACK_BTN_0 |
                                    SND_JACK_BTN_1 | SND_JACK_BTN_2 |
                                    SND_JACK_BTN_3,
-                                   jack, NULL, 0);
+                                   jack);
        if (ret) {
                dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
                return ret;
index 7334fac..9a81615 100644 (file)
@@ -122,9 +122,9 @@ static int hx4700_ak4641_init(struct snd_soc_pcm_runtime *rtd)
        int err;
 
        /* Jack detection API stuff */
-       err = snd_soc_card_jack_new(rtd->card, "Headphone Jack",
-                                   SND_JACK_HEADPHONE, &hs_jack, hs_jack_pin,
-                                   ARRAY_SIZE(hs_jack_pin));
+       err = snd_soc_card_jack_new_pins(rtd->card, "Headphone Jack",
+                                        SND_JACK_HEADPHONE, &hs_jack,
+                                        hs_jack_pin, ARRAY_SIZE(hs_jack_pin));
        if (err)
                return err;
 
index b92ea1a..65257f7 100644 (file)
@@ -71,9 +71,10 @@ static int palm27x_ac97_init(struct snd_soc_pcm_runtime *rtd)
        int err;
 
        /* Jack detection API stuff */
-       err = snd_soc_card_jack_new(rtd->card, "Headphone Jack",
-                                   SND_JACK_HEADPHONE, &hs_jack, hs_jack_pins,
-                                   ARRAY_SIZE(hs_jack_pins));
+       err = snd_soc_card_jack_new_pins(rtd->card, "Headphone Jack",
+                                        SND_JACK_HEADPHONE, &hs_jack,
+                                        hs_jack_pins,
+                                        ARRAY_SIZE(hs_jack_pins));
        if (err)
                return err;
 
index d5f2961..6cc970b 100644 (file)
@@ -64,12 +64,14 @@ static int ttc_pm860x_init(struct snd_soc_pcm_runtime *rtd)
        struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component;
 
        /* Headset jack detection */
-       snd_soc_card_jack_new(rtd->card, "Headphone Jack", SND_JACK_HEADPHONE |
-                             SND_JACK_BTN_0 | SND_JACK_BTN_1 | SND_JACK_BTN_2,
-                             &hs_jack, hs_jack_pins, ARRAY_SIZE(hs_jack_pins));
-       snd_soc_card_jack_new(rtd->card, "Microphone Jack", SND_JACK_MICROPHONE,
-                             &mic_jack, mic_jack_pins,
-                             ARRAY_SIZE(mic_jack_pins));
+       snd_soc_card_jack_new_pins(rtd->card, "Headphone Jack",
+                                  SND_JACK_HEADPHONE | SND_JACK_BTN_0 |
+                                  SND_JACK_BTN_1 | SND_JACK_BTN_2,
+                                  &hs_jack,
+                                  hs_jack_pins, ARRAY_SIZE(hs_jack_pins));
+       snd_soc_card_jack_new_pins(rtd->card, "Microphone Jack",
+                                  SND_JACK_MICROPHONE, &mic_jack,
+                                  mic_jack_pins, ARRAY_SIZE(mic_jack_pins));
 
        /* headphone, microphone detection & headset short detection */
        pm860x_hs_jack_detect(component, &hs_jack, SND_JACK_HEADPHONE,
index edf2b9e..f4a7cfe 100644 (file)
@@ -132,9 +132,10 @@ static int z2_wm8750_init(struct snd_soc_pcm_runtime *rtd)
        int ret;
 
        /* Jack detection API stuff */
-       ret = snd_soc_card_jack_new(rtd->card, "Headset Jack", SND_JACK_HEADSET,
-                                   &hs_jack, hs_jack_pins,
-                                   ARRAY_SIZE(hs_jack_pins));
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
+                                        SND_JACK_HEADSET, &hs_jack,
+                                        hs_jack_pins,
+                                        ARRAY_SIZE(hs_jack_pins));
        if (ret)
                goto err;
 
index f9d6937..b0a4f7c 100644 (file)
@@ -96,7 +96,7 @@ static int apq8016_dai_init(struct snd_soc_pcm_runtime *rtd, int mi2s)
                                             SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                             SND_JACK_BTN_2 | SND_JACK_BTN_3 |
                                             SND_JACK_BTN_4,
-                                            &pdata->jack, NULL, 0);
+                                            &pdata->jack);
 
                if (rval < 0) {
                        dev_err(card->dev, "Unable to add Headphone Jack\n");
index 37225ef..efccb5c 100644 (file)
@@ -57,7 +57,7 @@ static int sc7180_headset_init(struct snd_soc_pcm_runtime *rtd)
                        SND_JACK_HEADPHONE |
                        SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                        SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                       &pdata->hs_jack, NULL, 0);
+                       &pdata->hs_jack);
 
        if (rval < 0) {
                dev_err(card->dev, "Unable to add Headset Jack\n");
@@ -89,7 +89,7 @@ static int sc7180_hdmi_init(struct snd_soc_pcm_runtime *rtd)
        rval = snd_soc_card_jack_new(
                        card, "HDMI Jack",
                        SND_JACK_LINEOUT,
-                       &pdata->hdmi_jack, NULL, 0);
+                       &pdata->hdmi_jack);
 
        if (rval < 0) {
                dev_err(card->dev, "Unable to add HDMI Jack\n");
index 8c0bbae..4ef4034 100644 (file)
@@ -57,7 +57,7 @@ static int sc7280_headset_init(struct snd_soc_pcm_runtime *rtd)
                                             SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                             SND_JACK_BTN_2 | SND_JACK_BTN_3 |
                                             SND_JACK_BTN_4 | SND_JACK_BTN_5,
-                                            &pdata->hs_jack, NULL, 0);
+                                            &pdata->hs_jack);
 
                if (rval < 0) {
                        dev_err(card->dev, "Unable to add Headset Jack\n");
@@ -104,7 +104,7 @@ static int sc7280_hdmi_init(struct snd_soc_pcm_runtime *rtd)
        int rval;
 
        rval = snd_soc_card_jack_new(card, "HDMI Jack", SND_JACK_LINEOUT,
-                                    &pdata->hdmi_jack, NULL, 0);
+                                    &pdata->hdmi_jack);
 
        if (rval < 0) {
                dev_err(card->dev, "Unable to add HDMI Jack\n");
index 5c1d13e..61fda79 100644 (file)
@@ -247,7 +247,7 @@ static int sdm845_dai_init(struct snd_soc_pcm_runtime *rtd)
                                SND_JACK_HEADPHONE |
                                SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                               &pdata->jack, NULL, 0);
+                               &pdata->jack);
 
                if (rval < 0) {
                        dev_err(card->dev, "Unable to add Headphone Jack\n");
index 114a29e..6e1184c 100644 (file)
@@ -41,7 +41,7 @@ static int sm8250_snd_init(struct snd_soc_pcm_runtime *rtd)
                                             SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                             SND_JACK_BTN_2 | SND_JACK_BTN_3 |
                                             SND_JACK_BTN_4 | SND_JACK_BTN_5,
-                                            &data->jack, NULL, 0);
+                                            &data->jack);
 
                if (rval < 0) {
                        dev_err(card->dev, "Unable to add Headphone Jack\n");
index b052642..bcdedde 100644 (file)
@@ -124,10 +124,10 @@ static int rk_init(struct snd_soc_pcm_runtime *runtime)
 
        /* Enable Headset Jack detection */
        if (gpio_is_valid(machine->gpio_hp_det)) {
-               snd_soc_card_jack_new(runtime->card, "Headphone Jack",
-                                     SND_JACK_HEADPHONE, &headphone_jack,
-                                     headphone_jack_pins,
-                                     ARRAY_SIZE(headphone_jack_pins));
+               snd_soc_card_jack_new_pins(runtime->card, "Headphone Jack",
+                                          SND_JACK_HEADPHONE, &headphone_jack,
+                                          headphone_jack_pins,
+                                          ARRAY_SIZE(headphone_jack_pins));
                rk_hp_jack_gpio.gpio = machine->gpio_hp_det;
                snd_soc_jack_add_gpios(&headphone_jack, 1, &rk_hp_jack_gpio);
        }
index eeef3ed..2540b9b 100644 (file)
@@ -174,7 +174,7 @@ static int rockchip_sound_cdndp_init(struct snd_soc_pcm_runtime *rtd)
 
        /* Enable jack detection. */
        ret = snd_soc_card_jack_new(card, "DP Jack", SND_JACK_LINEOUT,
-                                   &cdn_dp_card_jack, NULL, 0);
+                                   &cdn_dp_card_jack);
        if (ret) {
                dev_err(card->dev, "Can't create DP Jack %d\n", ret);
                return ret;
@@ -204,13 +204,13 @@ static int rockchip_sound_da7219_init(struct snd_soc_pcm_runtime *rtd)
        }
 
        /* Enable Headset and 4 Buttons Jack detection */
-       ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
-                                   SND_JACK_HEADSET | SND_JACK_LINEOUT |
-                                   SND_JACK_BTN_0 | SND_JACK_BTN_1 |
-                                   SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &rockchip_sound_jack,
-                                   rockchip_sound_jack_pins,
-                                   ARRAY_SIZE(rockchip_sound_jack_pins));
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
+                                        SND_JACK_HEADSET | SND_JACK_LINEOUT |
+                                        SND_JACK_BTN_0 | SND_JACK_BTN_1 |
+                                        SND_JACK_BTN_2 | SND_JACK_BTN_3,
+                                        &rockchip_sound_jack,
+                                        rockchip_sound_jack_pins,
+                                        ARRAY_SIZE(rockchip_sound_jack_pins));
 
        if (ret) {
                dev_err(rtd->card->dev, "New Headset Jack failed! (%d)\n", ret);
index c8f1a28..150ac52 100644 (file)
@@ -231,7 +231,7 @@ static int rk_hdmi_init(struct snd_soc_pcm_runtime *runtime)
 
        /* enable jack detection */
        ret = snd_soc_card_jack_new(card, "HDMI Jack", SND_JACK_LINEOUT,
-                                   &rk_hdmi_jack, NULL, 0);
+                                   &rk_hdmi_jack);
        if (ret) {
                dev_err(card->dev, "Can't new HDMI Jack %d\n", ret);
                return ret;
@@ -345,13 +345,13 @@ static int rk_98090_headset_init(struct snd_soc_component *component)
        int ret;
 
        /* Enable Headset and 4 Buttons Jack detection */
-       ret = snd_soc_card_jack_new(component->card, "Headset Jack",
-                                   SND_JACK_HEADSET |
-                                   SND_JACK_BTN_0 | SND_JACK_BTN_1 |
-                                   SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &headset_jack,
-                                   headset_jack_pins,
-                                   ARRAY_SIZE(headset_jack_pins));
+       ret = snd_soc_card_jack_new_pins(component->card, "Headset Jack",
+                                        SND_JACK_HEADSET |
+                                        SND_JACK_BTN_0 | SND_JACK_BTN_1 |
+                                        SND_JACK_BTN_2 | SND_JACK_BTN_3,
+                                        &headset_jack,
+                                        headset_jack_pins,
+                                        ARRAY_SIZE(headset_jack_pins));
        if (ret)
                return ret;
 
index 16ca2ad..d07cc5c 100644 (file)
@@ -107,7 +107,7 @@ static int rk_init(struct snd_soc_pcm_runtime *runtime)
                                    SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3,
-                                   &headset_jack, NULL, 0);
+                                   &headset_jack);
        if (ret) {
                dev_err(card->dev, "New Headset Jack failed! (%d)\n", ret);
                return ret;
index 5265e54..5b5fc66 100644 (file)
@@ -343,7 +343,7 @@ static int aries_late_probe(struct snd_soc_card *card)
        struct aries_wm8994_data *priv = snd_soc_card_get_drvdata(card);
        int ret, irq;
 
-       ret = snd_soc_card_jack_new(card, "Dock", SND_JACK_LINEOUT,
+       ret = snd_soc_card_jack_new_pins(card, "Dock", SND_JACK_LINEOUT,
                        &aries_dock, dock_pins, ARRAY_SIZE(dock_pins));
        if (ret)
                return ret;
@@ -361,7 +361,7 @@ static int aries_late_probe(struct snd_soc_card *card)
        else
                snd_soc_jack_report(&aries_dock, 0, SND_JACK_LINEOUT);
 
-       ret = snd_soc_card_jack_new(card, "Headset",
+       ret = snd_soc_card_jack_new_pins(card, "Headset",
                        SND_JACK_HEADSET | SND_JACK_BTN_0,
                        &aries_headset,
                        jack_pins, ARRAY_SIZE(jack_pins));
index c994e67..907266a 100644 (file)
@@ -151,7 +151,8 @@ static const struct snd_soc_dapm_route audio_map[] = {
 
 static int h1940_uda1380_init(struct snd_soc_pcm_runtime *rtd)
 {
-       snd_soc_card_jack_new(rtd->card, "Headphone Jack", SND_JACK_HEADPHONE,
+       snd_soc_card_jack_new_pins(rtd->card, "Headphone Jack",
+               SND_JACK_HEADPHONE,
                &hp_jack, hp_jack_pins, ARRAY_SIZE(hp_jack_pins));
 
        snd_soc_jack_add_gpios(&hp_jack, ARRAY_SIZE(hp_jack_gpios),
index 26c4289..411e25c 100644 (file)
@@ -285,7 +285,7 @@ static int littlemill_late_probe(struct snd_soc_card *card)
                                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                                    SND_JACK_BTN_2 | SND_JACK_BTN_3 |
                                    SND_JACK_BTN_4 | SND_JACK_BTN_5,
-                                   &littlemill_headset, NULL, 0);
+                                   &littlemill_headset);
        if (ret)
                return ret;
 
index 8e4579f..b44f5e9 100644 (file)
@@ -51,10 +51,11 @@ static int lowland_wm5100_init(struct snd_soc_pcm_runtime *rtd)
                return ret;
        }
 
-       ret = snd_soc_card_jack_new(rtd->card, "Headset", SND_JACK_LINEOUT |
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0,
-                                   &lowland_headset, lowland_headset_pins,
-                                   ARRAY_SIZE(lowland_headset_pins));
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset",
+                                        SND_JACK_LINEOUT | SND_JACK_HEADSET |
+                                        SND_JACK_BTN_0,
+                                        &lowland_headset, lowland_headset_pins,
+                                        ARRAY_SIZE(lowland_headset_pins));
        if (ret)
                return ret;
 
index 5e9dc18..6931b9a 100644 (file)
@@ -309,7 +309,7 @@ static int midas_late_probe(struct snd_soc_card *card)
                        SND_JACK_HEADSET | SND_JACK_MECHANICAL |
                        SND_JACK_BTN_0 | SND_JACK_BTN_1 | SND_JACK_BTN_2 |
                        SND_JACK_BTN_3 | SND_JACK_BTN_4 | SND_JACK_BTN_5,
-                       &priv->headset_jack, NULL, 0);
+                       &priv->headset_jack);
        if (ret)
                return ret;
 
index 6ea1c8c..ff3acc9 100644 (file)
@@ -201,7 +201,8 @@ static int rx1950_hw_params(struct snd_pcm_substream *substream,
 
 static int rx1950_uda1380_init(struct snd_soc_pcm_runtime *rtd)
 {
-       snd_soc_card_jack_new(rtd->card, "Headphone Jack", SND_JACK_HEADPHONE,
+       snd_soc_card_jack_new_pins(rtd->card, "Headphone Jack",
+               SND_JACK_HEADPHONE,
                &hp_jack, hp_jack_pins, ARRAY_SIZE(hp_jack_pins));
 
        snd_soc_jack_add_gpios(&hp_jack, ARRAY_SIZE(hp_jack_gpios),
index cee39ad..29bf917 100644 (file)
@@ -139,10 +139,10 @@ static int smartq_wm8987_init(struct snd_soc_pcm_runtime *rtd)
        snd_soc_dapm_nc_pin(dapm, "ROUT1");
 
        /* Headphone jack detection */
-       err = snd_soc_card_jack_new(rtd->card, "Headphone Jack",
-                                   SND_JACK_HEADPHONE, &smartq_jack,
-                                   smartq_jack_pins,
-                                   ARRAY_SIZE(smartq_jack_pins));
+       err = snd_soc_card_jack_new_pins(rtd->card, "Headphone Jack",
+                                        SND_JACK_HEADPHONE, &smartq_jack,
+                                        smartq_jack_pins,
+                                        ARRAY_SIZE(smartq_jack_pins));
        if (err)
                return err;
 
index 1ae1a5a..69d7b01 100644 (file)
@@ -156,10 +156,12 @@ static int speyside_wm8996_init(struct snd_soc_pcm_runtime *rtd)
                pr_err("Failed to request HP_SEL GPIO: %d\n", ret);
        gpio_direction_output(WM8996_HPSEL_GPIO, speyside_jack_polarity);
 
-       ret = snd_soc_card_jack_new(rtd->card, "Headset", SND_JACK_LINEOUT |
-                                   SND_JACK_HEADSET | SND_JACK_BTN_0,
-                                   &speyside_headset, speyside_headset_pins,
-                                   ARRAY_SIZE(speyside_headset_pins));
+       ret = snd_soc_card_jack_new_pins(rtd->card, "Headset",
+                                        SND_JACK_LINEOUT | SND_JACK_HEADSET |
+                                        SND_JACK_BTN_0,
+                                        &speyside_headset,
+                                        speyside_headset_pins,
+                                        ARRAY_SIZE(speyside_headset_pins));
        if (ret)
                return ret;
 
index 4a56abf..9287a1d 100644 (file)
@@ -189,10 +189,10 @@ static int tobermory_late_probe(struct snd_soc_card *card)
        if (ret < 0)
                return ret;
 
-       ret = snd_soc_card_jack_new(card, "Headset", SND_JACK_HEADSET |
-                                   SND_JACK_BTN_0, &tobermory_headset,
-                                   tobermory_headset_pins,
-                                   ARRAY_SIZE(tobermory_headset_pins));
+       ret = snd_soc_card_jack_new_pins(card, "Headset", SND_JACK_HEADSET |
+                                        SND_JACK_BTN_0, &tobermory_headset,
+                                        tobermory_headset_pins,
+                                        ARRAY_SIZE(tobermory_headset_pins));
        if (ret)
                return ret;
 
index 41c586b..4158f5a 100644 (file)
@@ -42,8 +42,42 @@ struct snd_kcontrol *snd_soc_card_get_kcontrol(struct snd_soc_card *soc_card,
 }
 EXPORT_SYMBOL_GPL(snd_soc_card_get_kcontrol);
 
+static int jack_new(struct snd_soc_card *card, const char *id, int type,
+                   struct snd_soc_jack *jack, bool initial_kctl)
+{
+       mutex_init(&jack->mutex);
+       jack->card = card;
+       INIT_LIST_HEAD(&jack->pins);
+       INIT_LIST_HEAD(&jack->jack_zones);
+       BLOCKING_INIT_NOTIFIER_HEAD(&jack->notifier);
+
+       return snd_jack_new(card->snd_card, id, type, &jack->jack, initial_kctl, false);
+}
+
 /**
- * snd_soc_card_jack_new - Create a new jack
+ * snd_soc_card_jack_new - Create a new jack without pins
+ * @card:  ASoC card
+ * @id:    an identifying string for this jack
+ * @type:  a bitmask of enum snd_jack_type values that can be detected by
+ *         this jack
+ * @jack:  structure to use for the jack
+ *
+ * Creates a new jack object without pins. If adding pins later,
+ * snd_soc_card_jack_new_pins() should be used instead with 0 as num_pins
+ * argument.
+ *
+ * Returns zero if successful, or a negative error code on failure.
+ * On success jack will be initialised.
+ */
+int snd_soc_card_jack_new(struct snd_soc_card *card, const char *id, int type,
+                         struct snd_soc_jack *jack)
+{
+       return soc_card_ret(card, jack_new(card, id, type, jack, true));
+}
+EXPORT_SYMBOL_GPL(snd_soc_card_jack_new);
+
+/**
+ * snd_soc_card_jack_new_pins - Create a new jack with pins
  * @card:  ASoC card
  * @id:    an identifying string for this jack
  * @type:  a bitmask of enum snd_jack_type values that can be detected by
@@ -52,24 +86,20 @@ EXPORT_SYMBOL_GPL(snd_soc_card_get_kcontrol);
  * @pins:  Array of jack pins to be added to the jack or NULL
  * @num_pins: Number of elements in the @pins array
  *
- * Creates a new jack object.
+ * Creates a new jack object with pins. If not adding pins,
+ * snd_soc_card_jack_new() should be used instead.
  *
  * Returns zero if successful, or a negative error code on failure.
  * On success jack will be initialised.
  */
-int snd_soc_card_jack_new(struct snd_soc_card *card, const char *id, int type,
-                         struct snd_soc_jack *jack,
-                         struct snd_soc_jack_pin *pins, unsigned int num_pins)
+int snd_soc_card_jack_new_pins(struct snd_soc_card *card, const char *id,
+                              int type, struct snd_soc_jack *jack,
+                              struct snd_soc_jack_pin *pins,
+                              unsigned int num_pins)
 {
        int ret;
 
-       mutex_init(&jack->mutex);
-       jack->card = card;
-       INIT_LIST_HEAD(&jack->pins);
-       INIT_LIST_HEAD(&jack->jack_zones);
-       BLOCKING_INIT_NOTIFIER_HEAD(&jack->notifier);
-
-       ret = snd_jack_new(card->snd_card, id, type, &jack->jack, false, false);
+       ret = jack_new(card, id, type, jack, false);
        if (ret)
                goto end;
 
@@ -78,7 +108,7 @@ int snd_soc_card_jack_new(struct snd_soc_card *card, const char *id, int type,
 end:
        return soc_card_ret(card, ret);
 }
-EXPORT_SYMBOL_GPL(snd_soc_card_jack_new);
+EXPORT_SYMBOL_GPL(snd_soc_card_jack_new_pins);
 
 int snd_soc_card_suspend_pre(struct snd_soc_card *card)
 {
index d798765..fcece5c 100644 (file)
@@ -126,7 +126,7 @@ EXPORT_SYMBOL_GPL(snd_soc_jack_get_type);
 /**
  * snd_soc_jack_add_pins - Associate DAPM pins with an ASoC jack
  *
- * @jack:  ASoC jack
+ * @jack:  ASoC jack created with snd_soc_card_jack_new_pins()
  * @count: Number of pins
  * @pins:  Array of pins
  *
index a734048..78faa8b 100644 (file)
@@ -133,11 +133,11 @@ int tegra_asoc_machine_init(struct snd_soc_pcm_runtime *rtd)
                else
                        jack_name = "Headphones Jack";
 
-               err = snd_soc_card_jack_new(card, jack_name,
-                                           SND_JACK_HEADPHONE,
-                                           &tegra_machine_hp_jack,
-                                           tegra_machine_hp_jack_pins,
-                                           ARRAY_SIZE(tegra_machine_hp_jack_pins));
+               err = snd_soc_card_jack_new_pins(card, jack_name,
+                                                SND_JACK_HEADPHONE,
+                                                &tegra_machine_hp_jack,
+                                                tegra_machine_hp_jack_pins,
+                                                ARRAY_SIZE(tegra_machine_hp_jack_pins));
                if (err) {
                        dev_err(rtd->dev,
                                "Headphones Jack creation failed: %d\n", err);
@@ -153,11 +153,11 @@ int tegra_asoc_machine_init(struct snd_soc_pcm_runtime *rtd)
        }
 
        if (machine->gpiod_hp_det && machine->asoc->add_headset_jack) {
-               err = snd_soc_card_jack_new(card, "Headset Jack",
-                                           SND_JACK_HEADSET,
-                                           &tegra_machine_headset_jack,
-                                           tegra_machine_headset_jack_pins,
-                                           ARRAY_SIZE(tegra_machine_headset_jack_pins));
+               err = snd_soc_card_jack_new_pins(card, "Headset Jack",
+                                                SND_JACK_HEADSET,
+                                                &tegra_machine_headset_jack,
+                                                tegra_machine_headset_jack_pins,
+                                                ARRAY_SIZE(tegra_machine_headset_jack_pins));
                if (err) {
                        dev_err(rtd->dev,
                                "Headset Jack creation failed: %d\n", err);
@@ -173,11 +173,11 @@ int tegra_asoc_machine_init(struct snd_soc_pcm_runtime *rtd)
        }
 
        if (machine->gpiod_mic_det && machine->asoc->add_mic_jack) {
-               err = snd_soc_card_jack_new(rtd->card, "Mic Jack",
-                                           SND_JACK_MICROPHONE,
-                                           &tegra_machine_mic_jack,
-                                           tegra_machine_mic_jack_pins,
-                                           ARRAY_SIZE(tegra_machine_mic_jack_pins));
+               err = snd_soc_card_jack_new_pins(rtd->card, "Mic Jack",
+                                                SND_JACK_MICROPHONE,
+                                                &tegra_machine_mic_jack,
+                                                tegra_machine_mic_jack_pins,
+                                                ARRAY_SIZE(tegra_machine_mic_jack_pins));
                if (err) {
                        dev_err(rtd->dev, "Mic Jack creation failed: %d\n", err);
                        return err;
index 5751fb3..b3cd0a3 100644 (file)
@@ -79,11 +79,11 @@ static int tegra_wm8903_init(struct snd_soc_pcm_runtime *rtd)
                struct snd_soc_component *component = codec_dai->component;
                int shrt = 0;
 
-               err = snd_soc_card_jack_new(rtd->card, "Mic Jack",
-                                           SND_JACK_MICROPHONE,
-                                           machine->mic_jack,
-                                           tegra_wm8903_mic_jack_pins,
-                                           ARRAY_SIZE(tegra_wm8903_mic_jack_pins));
+               err = snd_soc_card_jack_new_pins(rtd->card, "Mic Jack",
+                                                SND_JACK_MICROPHONE,
+                                                machine->mic_jack,
+                                                tegra_wm8903_mic_jack_pins,
+                                                ARRAY_SIZE(tegra_wm8903_mic_jack_pins));
                if (err) {
                        dev_err(rtd->dev, "Mic Jack creation failed: %d\n", err);
                        return err;
index b1a3254..438e2fa 100644 (file)
@@ -471,8 +471,8 @@ static int ams_delta_cx20442_init(struct snd_soc_pcm_runtime *rtd)
 
        /* Add hook switch - can be used to control the codec from userspace
         * even if line discipline fails */
-       ret = snd_soc_card_jack_new(card, "hook_switch", SND_JACK_HEADSET,
-                                   &ams_delta_hook_switch, NULL, 0);
+       ret = snd_soc_card_jack_new_pins(card, "hook_switch", SND_JACK_HEADSET,
+                                        &ams_delta_hook_switch, NULL, 0);
        if (ret)
                dev_warn(card->dev,
                                "Failed to allocate resources for hook switch, "
index da809c7..805ffbf 100644 (file)
@@ -182,10 +182,10 @@ static int omap_abe_twl6040_init(struct snd_soc_pcm_runtime *rtd)
 
        /* Headset jack detection only if it is supported */
        if (priv->jack_detection) {
-               ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
-                                           SND_JACK_HEADSET, &hs_jack,
-                                           hs_jack_pins,
-                                           ARRAY_SIZE(hs_jack_pins));
+               ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
+                                                SND_JACK_HEADSET, &hs_jack,
+                                                hs_jack_pins,
+                                                ARRAY_SIZE(hs_jack_pins));
                if (ret)
                        return ret;
 
index 1da05a6..950eec4 100644 (file)
@@ -155,10 +155,10 @@ static int omap_twl4030_init(struct snd_soc_pcm_runtime *rtd)
        if (priv->jack_detect > 0) {
                hs_jack_gpios[0].gpio = priv->jack_detect;
 
-               ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
-                                           SND_JACK_HEADSET, &priv->hs_jack,
-                                           hs_jack_pins,
-                                           ARRAY_SIZE(hs_jack_pins));
+               ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
+                                                SND_JACK_HEADSET,
+                                                &priv->hs_jack, hs_jack_pins,
+                                                ARRAY_SIZE(hs_jack_pins));
                if (ret)
                        return ret;
 
index a2629cc..322c398 100644 (file)
@@ -277,7 +277,7 @@ static int rx51_aic34_init(struct snd_soc_pcm_runtime *rtd)
        /* AV jack detection */
        err = snd_soc_card_jack_new(rtd->card, "AV Jack",
                                    SND_JACK_HEADSET | SND_JACK_VIDEOOUT,
-                                   &rx51_av_jack, NULL, 0);
+                                   &rx51_av_jack);
        if (err) {
                dev_err(card->dev, "Failed to add AV Jack\n");
                return err;