ASoC: Intel: bytcr_rt5651: Only create jack if we have a jack-detect source
authorHans de Goede <hdegoede@redhat.com>
Sun, 4 Mar 2018 14:36:01 +0000 (15:36 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 7 Mar 2018 14:18:09 +0000 (14:18 +0000)
Only create the jack if we have a valid jack-detect source and properly
check the snd_soc_component_set_jack() return value.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/bytcr_rt5651.c

index a874bba..56f1f07 100644 (file)
@@ -404,17 +404,21 @@ static int byt_rt5651_init(struct snd_soc_pcm_runtime *runtime)
                        dev_err(card->dev, "unable to set MCLK rate\n");
        }
 
-       ret = snd_soc_card_jack_new(runtime->card, "Headset",
+       if (BYT_RT5651_JDSRC(byt_rt5651_quirk)) {
+               ret = snd_soc_card_jack_new(runtime->card, "Headset",
                                    SND_JACK_HEADSET, &priv->jack,
                                    bytcr_jack_pins, ARRAY_SIZE(bytcr_jack_pins));
-       if (ret) {
-               dev_err(runtime->dev, "Headset jack creation failed %d\n", ret);
-               return ret;
-       }
+               if (ret) {
+                       dev_err(runtime->dev, "jack creation failed %d\n", ret);
+                       return ret;
+               }
 
-       snd_soc_component_set_jack(codec, &priv->jack, NULL);
+               ret = snd_soc_component_set_jack(codec, &priv->jack, NULL);
+               if (ret)
+                       return ret;
+       }
 
-       return ret;
+       return 0;
 }
 
 static const struct snd_soc_pcm_stream byt_rt5651_dai_params = {