Add support for DisplayPort Jack events, so that user space can
configure the audio routing correctly.

Signed-off-by: Luca Weiss <luca.we...@fairphone.com>
---
 sound/soc/qcom/sm8250.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c
index 
e920b413b762c803cfcc4049f35deba828275478..aa3b4bc3fcc7b8a8dccc75ef1309bb26a2a8105a
 100644
--- a/sound/soc/qcom/sm8250.c
+++ b/sound/soc/qcom/sm8250.c
@@ -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;
 };
 
@@ -34,12 +35,17 @@ static int sm8250_snd_init(struct snd_soc_pcm_runtime *rtd)
        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:
+               break;
+       }
+
+       return qcom_snd_wcd_jack_setup(rtd, &data->jack, &data->jack_setup);
 }
 
 static void sm8250_snd_exit(struct snd_soc_pcm_runtime *rtd)

-- 
2.49.0


Reply via email to