Message ID | 20240422134354.89291-4-srinivas.kandagatla@linaro.org |
---|---|
State | New |
Headers | show |
Series | ASoC: qcom: display port changes | expand |
On Mon, Apr 22, 2024 at 02:43:53PM +0100, srinivas.kandagatla@linaro.org wrote: > From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > Add support to Display Port Jack events, by making use of common helper > function. > > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > --- > sound/soc/qcom/sc8280xp.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c > index 878bd50ad4a7..38f97f19add9 100644 > --- a/sound/soc/qcom/sc8280xp.c > +++ b/sound/soc/qcom/sc8280xp.c > @@ -19,6 +19,7 @@ struct sc8280xp_snd_data { > struct snd_soc_card *card; > struct sdw_stream_runtime *sruntime[AFE_PORT_MAX]; > struct snd_soc_jack jack; > + struct snd_soc_jack hdmi_jack[8]; > bool jack_setup; > }; > > @@ -27,6 +28,8 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd) > struct sc8280xp_snd_data *data = snd_soc_card_get_drvdata(rtd->card); > struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0); > struct snd_soc_card *card = rtd->card; > + struct snd_soc_jack *hdmi_jack = NULL; > + int hdmi_pcm_id = 0; Using hdmi_ prefix for DP jacks is counterintuitive at best. > > switch (cpu_dai->id) { > case WSA_CODEC_DMA_RX_0: > @@ -41,10 +44,21 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd) > snd_soc_limit_volume(card, "SpkrLeft PA Volume", 17); > snd_soc_limit_volume(card, "SpkrRight PA Volume", 17); > break; I'd suggest either using DISPLAY_PORT_RX here or adding a comment to point out that DP RX ids are not sequential. > + case DISPLAY_PORT_RX_0: > + hdmi_pcm_id = 0; > + hdmi_jack = &data->hdmi_jack[hdmi_pcm_id]; > + break; > + case DISPLAY_PORT_RX_1 ... DISPLAY_PORT_RX_7: > + hdmi_pcm_id = cpu_dai->id - DISPLAY_PORT_RX_1 + 1; > + hdmi_jack = &data->hdmi_jack[hdmi_pcm_id]; > + break; > default: > break; > } > > + if (hdmi_jack) > + return qcom_snd_dp_jack_setup(rtd, hdmi_jack, hdmi_pcm_id); > + > return qcom_snd_wcd_jack_setup(rtd, &data->jack, &data->jack_setup); > } > > -- > 2.25.1 >
diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c index 878bd50ad4a7..38f97f19add9 100644 --- a/sound/soc/qcom/sc8280xp.c +++ b/sound/soc/qcom/sc8280xp.c @@ -19,6 +19,7 @@ struct sc8280xp_snd_data { struct snd_soc_card *card; struct sdw_stream_runtime *sruntime[AFE_PORT_MAX]; struct snd_soc_jack jack; + struct snd_soc_jack hdmi_jack[8]; bool jack_setup; }; @@ -27,6 +28,8 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd) struct sc8280xp_snd_data *data = snd_soc_card_get_drvdata(rtd->card); struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0); struct snd_soc_card *card = rtd->card; + struct snd_soc_jack *hdmi_jack = NULL; + int hdmi_pcm_id = 0; switch (cpu_dai->id) { case WSA_CODEC_DMA_RX_0: @@ -41,10 +44,21 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd) snd_soc_limit_volume(card, "SpkrLeft PA Volume", 17); snd_soc_limit_volume(card, "SpkrRight PA Volume", 17); break; + case DISPLAY_PORT_RX_0: + hdmi_pcm_id = 0; + hdmi_jack = &data->hdmi_jack[hdmi_pcm_id]; + break; + case DISPLAY_PORT_RX_1 ... DISPLAY_PORT_RX_7: + hdmi_pcm_id = cpu_dai->id - DISPLAY_PORT_RX_1 + 1; + hdmi_jack = &data->hdmi_jack[hdmi_pcm_id]; + break; default: break; } + if (hdmi_jack) + return qcom_snd_dp_jack_setup(rtd, hdmi_jack, hdmi_pcm_id); + return qcom_snd_wcd_jack_setup(rtd, &data->jack, &data->jack_setup); }