Message ID | 20250507-fp5-dp-sound-v4-3-4098e918a29e@fairphone.com |
---|---|
State | New |
Headers | show |
Series | Add DisplayPort sound support for Fairphone 5 smartphone | expand |
On 5/7/25 09:01, Luca Weiss wrote: > 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> > --- > sound/soc/qcom/sm8250.c | 17 ++++++++++------- > 1 file changed, 10 insertions(+), 7 deletions(-) > > diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c > index f0d83a843765d8dcdd51569e7cbc95eb72292497..2317fe285ee7d41689d7fac453164fbe706744ff 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; > }; > > @@ -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) >
diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c index f0d83a843765d8dcdd51569e7cbc95eb72292497..2317fe285ee7d41689d7fac453164fbe706744ff 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; }; @@ -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)