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 b589cf6b1d0348864e72f469d643991769ce27d6..db0b600ee5d1980f155ff9d9ebb68b706078731e 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 4f2cc4fb56b7fb422acb9c8f92ce2a6cc32bc0e8..df08573bd80cdc7f7664df56b352ffadac3024df 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 3bf86c2424ae9c3601be2d982d3d9772d931d3f1..ef1b4cefc27357ae8c5855a11bfa1cc6e2c22fab 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 a79a46646d501f46de4d844a7668fd9f58f9d5bd..532aa98a2241cbfad07d003dbffa2ecf9bda33c8 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 caa202f7864e4494a13fdb5d8ff115ef125054b9..51adb8f3f83e9948ff1c5e780651a986747a1bc3 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 dad70436d063b734aaeebffc354f55da0eb5f080..0543dda75b99a7a26be0c8fc8d6aa32fc3fcfe33 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 1551546c3050a52b0d8d3cfb0c5d4f8953710869..d8b25622f911174d7052458a1bbb63d729bf4608 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 e38552a961ef66b5e751a6932ae2237f74f5c361..04548b577ad50e44c3a44f0180e16239928a86e8 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 168973035e35f9da455d8f78692fa8cd2b80a878..b80c57362fb8109486980343ca571be876efba26 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 929f69b758af4e78857405ed172b78899ecf679b..e10136afa74164773cc60a91f07d8dac52c49b8e 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 f2157944247f783cf8f4809d762201213919d9fe..04a6fb75e46a5395ab6c62ce6a9d019ab91c282c 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 bc0eab1c304a260a99994e8257c85e73d5d5881a..aae857fdcdb8b27d96de986515b20c6345cddce6 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 071557fada29c29fca1304b2b087731be666bb87..d0ecbba2febe2b8dd9b26dfe77a2f11a9f244223 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 d37c74fd1a3cf70dc7ef7d26332debd7c50f5cce..c30a9dca680113ba73176062e83b9b8c6acd5a2e 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 9bc7b88e346b28b643ecfc54fb7ff0bf5655300a..d98376da425a6699c833c861d424a1f611760fdf 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 05e8330764992ca6d6d338cc91b7c793d214a474..75995d17597d9527ccaaec6f80d96e6648747a58 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 96d3201efbbd0e88d36a2457d8e7745126a2c8bf..0eed68a11f7e1ef4b4d46596fb697981b1fa80ca 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 e18371b5a771576511c776fa7249b52621032b5d..a08507783e44ac42545a135751c294829416af56 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 d76a505052fb7650f37926415cdf51d68f4f0b6b..702a4f116656f4e80056f7e4457d30942c4f99d2 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 39348d2b242fc58407d840859548b1f5f32bbf6d..d467fcaa48eaa007cf3500b9d59b697b11b3351e 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 8d8e96e3cd2df41fa4973cea3a57dedf0989c113..00384c6fbcaa5e65c05c3ca38278a8fe21d265a1 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 183edd0fd446225747b3ed3d722fadf4d7b57737..a5160f27adea93ef90ea655c678e296a942634c7 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 da6c659de266711834becbc574745c8f3cf1a6db..4c1d83b317c72a2c1b46b059d96f87a2492e7045 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 c21561c6a464ea333b8af30ab915611d41724559..45c301ea5e0034ace44fc6dcc51b38f63558b077 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 9882aeb24d339e79e120e6a423f3fb5ce4e0428b..c80324f34b1b2b9271d79e367bfb701afae83f24 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 27615acddacdf20ea4e59b6eadbcb12dda62e4ba..a99f74a15b5fda4ad8a4d18146362d2cf1a87a57 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 e4bfb0fe5f12e79d5e3e61d0fac20789756ebd9c..170164baae7da2547af214a5d2c29fce4bbd69a1 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 a4bdf634e9b9e1afb81514c12707472666c94c9f..ceabed85e9daab9abf018855836075526dd46321 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 620a9fbcb08fafec39d99d9d12064c500b6b8de0..703ccff634b014d99bfd9db3b9d2505c94dd1e06 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 1cb56ec363e8f27c3655fcba4f67f5b34435ce44..2c7a547f63c9012caccdbba825593ad41cbc636f 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 f24e0ce5d49feb8c4312effef5718491f2902148..8d37b2676a81aa85db7b764a43941fbec2ed240a 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 6874e981c8dfdc1615fd63b653f7f05b08b5eb37..564c70a0fbc83386078ff4838eb5301d97e7ecb4 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 07bfb2e64b3b03119180f8b41e3bb803096121f8..e9cefa4ae56dd7730b75d11a5a13a4deb0a2b055 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 7297eb05613ca15356965180eb1221b942d39560..8e2d03e36079263c500326fe55317989af26db1c 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 68efde1633b3cd7a852eb30dc1ad698f80ec0d18..501f0bbfc4045fc7eebd0fed5e3a586354883392 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 eca4a78668af6121b08a8cc759ccf0d430624bd8..e9f9520dcea43a870bf3b8020a3b2ff66d87ec01 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 ce78c18798876903f8c270294397fc3b120c74d8..6a979c333bc59e65b1ed99d2c1def7f426894d32 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 b7b3b0bf994a73c326b9892f4194c5b5b1dfe669..a83f30b687cf375b6ca472263f1d32aaef4d926f 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 9d617831dd206e2a6c60e07c93734d03ae3821a5..23d03e0f77599239553c70a1d026570ddc55dc51 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 33de043b66c6edc560a653346dc46bc7355c89d4..97dcd204a24664f26d31768c02b101971b77a346 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 7126fcb63d9040f121800f00a84ae9f15d3e3664..e926d06b352929621811101832c91b159dd5ffc1 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 ea55479609a8cf089779ee921ed90b1a437f377a..3a9be8211586f34f4a92a5e8cba6a1dad1133c4c 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 bb9584c8f86680842bc8524f7221509778f4086b..c93b1f5b9440910dc41eea43d38c307e647cffe1 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 c38b70c9fac36d532040f15ad04180b83ec4fad9..49ff0871e9e776743b6f36d5a37499868d4a9b19 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 4215ddc3641935520e1582ebbf0c7b051040a08a..b3fc32bacfa8f9cee593357071de6cd1a24aa3e4 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 88530e9de5435a70e174146859ecf65abbd7f3e2..02a27aaed92fbdc282eb7304691c56b39417711e 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 58778cd2e61b194b0aba0697548034eb11b35ff3..c2b0619b615891975b9b802274b1f24918886975 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 b55122b99f0747cdeca5f4d4df904c40dc38df69..12f40c81b101e8bd0b4bcd6d151155774ffa251b 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 5716d92990668de1c8574917f905aff44843a633..70bf312e855f672e7e14b6a387fee25d06889b1c 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 fc164f4f95f852062c2abc633258d389528b6f8a..d1c94acb451691c82fe227955ba267f388362172 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 f090dee0c7a4fd269596f5b18541b74abc058e2c..b33cc9a73ed1cc284e1dce3c1d0ed16a2f6a26c5 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 889f9e4a96aa682ce6142d637241adda45048767..ab157db7833501d8a90baa6ceb634d67c1351e3a 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 2c71bd8a2db8c3af8091893ab6fe0c51dbb5593c..d0f9d66627b15e5cf9ba763c5cf5d149720d0972 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 262a54e590e805e408cb0a27da81caf5fee0435e..3e32fe801b3c13071d155c5c99b583a1ddf47f43 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 7334fac758defe778cb14fcefca7014dad269006..9a816156f012c69a96d6c3871e48eabeafa51921 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 b92ea1a0453f61e96cffb69abb14742fcd144971..65257f7fe4c4041759283b6a9a0fbaa4a7d5657d 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 d5f2961b1a3e1b00712adcc15997b23fbe66e182..6cc970bb2aac099c4579abb1de942450113f3491 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 edf2b9eec5b8b4f92baae3f3bb486690cbfa733b..f4a7cfe22115f9d959dfa4686b0c9d85be8095e3 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 f9d69375320e7f4756085e05faf0a65e7203aaab..b0a4f7ca27515284f35e4a31cd67f98ef0d3df2e 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 37225ef2563ac1eb7a0298bcb138d3f97dc60a8f..efccb5c0b3e00509b6b557dd68f178d7b0c1c542 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 8c0bbae490dd460adeb6dcc3322f437895a176c3..4ef4034ba6ee76650faf466c08c3a10cb2717918 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 5c1d13eccbee5f1952cd8a8a8418a1eb581e6f8f..61fda790f3756022e6ef8299d9368442e3c50d08 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 114a29e01c0fe50c82e98831acbb40be3e75f7bb..6e1184c8b672a68bd7bce6513ff5ab4a51023ad6 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 b052642ea620b4b7b8195a21f0ff0bc29c3adb30..bcdeddeba80c95d3d7df876acdaf3aaaaefcf12b 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 eeef3ed700372433ff1b7059e8a008566ddcbe3a..2540b9ba37c80da1a678bf25666eb6bc11872759 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 c8f1a28a92b714b981d418a3b47c92c58d9863a4..150ac524a5903ce407d694da6cf1942795f567ad 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 16ca2ad9242648436ee5a0e2ca40d67e5e47deaf..d07cc5c813f2543f0b3b8aaee65dd90c48f35d6e 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 5265e546b124c9fea7e131efa2f523922e67359b..5b5fc66885e1a8f1983d53729bcd22870831c925 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 c994e67d1eaf0de0470ff7740cec9adb8d0b7da7..907266aee839f3da5fcbe4694d78510c527a056c 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 26c42892c059a3755be4d05c05336d501c9f9218..411e25cec5913a823059fecd255b47b5043bda9c 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 8e4579fdcd7b4856bb1979933cde0fda1d255399..b44f5e92224f731ca4f02d0908ea9902f099e966 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 5e9dc18687cc3bc6e268666ccb559d0c8a74a5da..6931b9a45b3e5e5f0fc4f29dab4f010f5b42baef 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 6ea1c8cc91675532864bfe0bab0125dc9e204a02..ff3acc94a454ca6bb37a4420ba951c6669f2b3ce 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 cee39ad16667a432d0e716e6eaee98b98bc32775..29bf917242fe9f7955c345b345939db848c62afb 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 1ae1a5aae72f06a3ad7657cc9ff3dcb131ac2291..69d7b0115b38d3e1de9fc892ad7162abe10ad2b4 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 4a56abfc243ecef7d1921b46227832fa6ab34236..9287a1d0eef10bd25092539726928f70a2f082b0 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 41c586b86dc3045dc6abea8ed22dc51b7e0a88b9..4158f5aacfd373a95e9d03f6f2700d50acd635dc 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 d798765d168c4aad4fef61f99211eecedf8300d6..fcece5ca38c6969b01f24cb62188df04fc9e653e 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 a73404879aa18f58a55b0cfd95c04d75c8dc3528..78faa8bcae2742411fa799b49f060884d19af8ab 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 5751fb398c1ad98217c3d8185e9c85ab8ce094b4..b3cd0a34da6371e055bcd6d347a1973af3d22c3c 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 b1a32545babdb8881d58f64e0bdb9ad5bb72d3ca..438e2fa843a03f59e15e908cff388291caac6c52 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 da809c7f25a44e741d4ae42c8d2807f4d3052386..805ffbf89014022a0e07d5b1591c7964eb1320fd 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 1da05a6cdc9f4ae6d91af25e109f344f45f02223..950eec44503bc1627fe303ad1c44c45f29250960 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 a2629ccc1dc843abe1b442f0a36ddfe05dd56a73..322c398d209baf7c0cc3f700631405fd88700f71 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;