ASoC: Intel: Skylake: Add jack port initialize in nau88l25_max98357a machine
authorJeeja KP <jeeja.kp@intel.com>
Tue, 7 Feb 2017 13:39:57 +0000 (19:09 +0530)
committerMark Brown <broonie@kernel.org>
Thu, 16 Feb 2017 18:56:15 +0000 (18:56 +0000)
After the pcm jack is created, create and initialize the pin switch
widget for each port. Pin switch is to enable/disable the pin when
monitor is connected/disconnected.

Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/skl_nau88l25_max98357a.c

index 48f7c96b3f3db7f6765008634e50804c8a33c112..3b12bc1fa518e66409764b22b261d0c532af0b9b 100644 (file)
@@ -131,9 +131,6 @@ static const struct snd_soc_dapm_route skylake_map[] = {
        { "MIC", NULL, "Headset Mic" },
        { "DMic", NULL, "SoC DMIC" },
 
-       {"DP1", NULL, "hif5-0 Output"},
-       {"DP2", NULL, "hif6-0 Output"},
-
        /* CODEC BE connections */
        { "HiFi Playback", NULL, "ssp0 Tx" },
        { "ssp0 Tx", NULL, "codec0_out" },
@@ -609,10 +606,12 @@ static int skylake_card_late_probe(struct snd_soc_card *card)
 {
        struct skl_nau8825_private *ctx = snd_soc_card_get_drvdata(card);
        struct skl_hdmi_pcm *pcm;
+       struct snd_soc_codec *codec = NULL;
        int err, i = 0;
        char jack_name[NAME_SIZE];
 
        list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+               codec = pcm->codec_dai->codec;
                snprintf(jack_name, sizeof(jack_name),
                        "HDMI/DP, pcm=%d Jack", pcm->device);
                err = snd_soc_card_jack_new(card, jack_name,
@@ -631,7 +630,10 @@ static int skylake_card_late_probe(struct snd_soc_card *card)
                i++;
        }
 
-       return 0;
+       if (!codec)
+               return -EINVAL;
+
+       return hdac_hdmi_jack_port_init(codec, &card->dapm);
 }
 
 /* skylake audio machine driver for SPT + NAU88L25 */