On 31.07.2024 5:25 PM, Adam Skladowski wrote: > Introduce support for audio card on MSM8976 platform. > While MSM8976 falls into v1 category with MSM8916, digitial codec clock > is not available in GCC so we have to set it in machine driver. > For that reason for V1 clocks new boolean is added to check > if we need to enable codec clock. > > Signed-off-by: Adam Skladowski <a39.skl@xxxxxxxxx> > --- > sound/soc/qcom/apq8016_sbc.c | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/sound/soc/qcom/apq8016_sbc.c b/sound/soc/qcom/apq8016_sbc.c > index 3ed35beb671a..8219d4d55625 100644 > --- a/sound/soc/qcom/apq8016_sbc.c > +++ b/sound/soc/qcom/apq8016_sbc.c > @@ -35,6 +35,7 @@ struct apq8016_sbc_data { > struct snd_soc_jack jack; > bool jack_setup; > enum afe_clk_api q6afe_clk_ver; > + bool dig_cdc_mclk_en; > int mi2s_clk_count[MI2S_COUNT]; > }; > > @@ -242,6 +243,16 @@ static int msm8916_qdsp6_startup(struct snd_pcm_substream *substream) > > if (++data->mi2s_clk_count[mi2s] > 1) > return 0; > + /* > + * On newer legacy SoC (MSM8976) lpass codec clocks are not available in gcc region > + * so we have to request clock from machine driver using V1 API) > + */ > + if (data->q6afe_clk_ver == Q6AFE_CLK_V1 && > + data->dig_cdc_mclk_en) { > + ret = snd_soc_dai_set_sysclk(cpu_dai, LPAIF_DIG_CLK, DEFAULT_MCLK_RATE, 0); Double space here and below Konrad