Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: qcom: common: add Display port Jack function

Add a common function to add Display port jack.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> # X13s
Link: https://msgid.link/r/20240606104922.114229-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Srinivas Kandagatla and committed by
Mark Brown
735db4ea 6d620e50

+38
+35
sound/soc/qcom/common.c
··· 8 8 #include <linux/input-event-codes.h> 9 9 #include "common.h" 10 10 11 + #define NAME_SIZE 32 12 + 11 13 static const struct snd_soc_dapm_widget qcom_jack_snd_widgets[] = { 12 14 SND_SOC_DAPM_HP("Headphone Jack", NULL), 13 15 SND_SOC_DAPM_MIC("Mic Jack", NULL), 16 + SND_SOC_DAPM_SPK("DP0 Jack", NULL), 17 + SND_SOC_DAPM_SPK("DP1 Jack", NULL), 18 + SND_SOC_DAPM_SPK("DP2 Jack", NULL), 19 + SND_SOC_DAPM_SPK("DP3 Jack", NULL), 20 + SND_SOC_DAPM_SPK("DP4 Jack", NULL), 21 + SND_SOC_DAPM_SPK("DP5 Jack", NULL), 22 + SND_SOC_DAPM_SPK("DP6 Jack", NULL), 23 + SND_SOC_DAPM_SPK("DP7 Jack", NULL), 14 24 }; 15 25 16 26 int qcom_snd_parse_of(struct snd_soc_card *card) ··· 249 239 return 0; 250 240 } 251 241 EXPORT_SYMBOL_GPL(qcom_snd_wcd_jack_setup); 242 + 243 + int qcom_snd_dp_jack_setup(struct snd_soc_pcm_runtime *rtd, 244 + struct snd_soc_jack *dp_jack, int dp_pcm_id) 245 + { 246 + struct snd_soc_dai *codec_dai = snd_soc_rtd_to_codec(rtd, 0); 247 + struct snd_soc_card *card = rtd->card; 248 + char jack_name[NAME_SIZE]; 249 + int rval, i; 250 + 251 + snprintf(jack_name, sizeof(jack_name), "DP%d Jack", dp_pcm_id); 252 + rval = snd_soc_card_jack_new(card, jack_name, SND_JACK_AVOUT, dp_jack); 253 + if (rval) 254 + return rval; 255 + 256 + for_each_rtd_codec_dais(rtd, i, codec_dai) { 257 + rval = snd_soc_component_set_jack(codec_dai->component, dp_jack, NULL); 258 + if (rval != 0 && rval != -ENOTSUPP) { 259 + dev_warn(card->dev, "Failed to set jack: %d\n", rval); 260 + return rval; 261 + } 262 + } 263 + 264 + return 0; 265 + } 266 + EXPORT_SYMBOL_GPL(qcom_snd_dp_jack_setup); 252 267 253 268 MODULE_DESCRIPTION("ASoC Qualcomm helper functions"); 254 269 MODULE_LICENSE("GPL");
+3
sound/soc/qcom/common.h
··· 9 9 int qcom_snd_parse_of(struct snd_soc_card *card); 10 10 int qcom_snd_wcd_jack_setup(struct snd_soc_pcm_runtime *rtd, 11 11 struct snd_soc_jack *jack, bool *jack_setup); 12 + int qcom_snd_dp_jack_setup(struct snd_soc_pcm_runtime *rtd, 13 + struct snd_soc_jack *dp_jack, int id); 14 + 12 15 13 16 #endif