]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: qcom: sm8250: add DisplayPort Jack support
authorLuca Weiss <luca.weiss@fairphone.com>
Wed, 7 May 2025 08:01:39 +0000 (10:01 +0200)
committerMark Brown <broonie@kernel.org>
Sun, 8 Jun 2025 22:30:18 +0000 (23:30 +0100)
Add support for DisplayPort Jack events, so that user space can
configure the audio routing correctly.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Link: https://patch.msgid.link/20250507-fp5-dp-sound-v4-3-4098e918a29e@fairphone.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/qcom/sm8250.c

index f0d83a843765d8dcdd51569e7cbc95eb72292497..2317fe285ee7d41689d7fac453164fbe706744ff 100644 (file)
@@ -25,6 +25,7 @@ struct sm8250_snd_data {
        struct snd_soc_jack jack;
        struct snd_soc_jack usb_offload_jack;
        bool usb_offload_jack_setup;
+       struct snd_soc_jack dp_jack;
        bool jack_setup;
 };
 
@@ -32,14 +33,16 @@ static int sm8250_snd_init(struct snd_soc_pcm_runtime *rtd)
 {
        struct sm8250_snd_data *data = snd_soc_card_get_drvdata(rtd->card);
        struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0);
-       int ret;
 
-       if (cpu_dai->id == USB_RX)
-               ret = qcom_snd_usb_offload_jack_setup(rtd, &data->usb_offload_jack,
-                                                     &data->usb_offload_jack_setup);
-       else
-               ret = qcom_snd_wcd_jack_setup(rtd, &data->jack, &data->jack_setup);
-       return ret;
+       switch (cpu_dai->id) {
+       case DISPLAY_PORT_RX:
+               return qcom_snd_dp_jack_setup(rtd, &data->dp_jack, 0);
+       case USB_RX:
+               return qcom_snd_usb_offload_jack_setup(rtd, &data->usb_offload_jack,
+                                                      &data->usb_offload_jack_setup);
+       default:
+               return qcom_snd_wcd_jack_setup(rtd, &data->jack, &data->jack_setup);
+       }
 }
 
 static void sm8250_snd_exit(struct snd_soc_pcm_runtime *rtd)