lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 24 Mar 2023 13:40:25 +0000
From:   Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
To:     Luca Weiss <luca.weiss@...rphone.com>, broonie@...nel.org
Cc:     lgirdwood@...il.com, perex@...ex.cz, tiwai@...e.com,
        alsa-devel@...a-project.org, linux-kernel@...r.kernel.org,
        steev@...i.org, johan+linaro@...nel.org, quic_bjorande@...cinc.com
Subject: Re: [PATCH 5/8] ASoC: codecs: lpass: register mclk after runtime pm

Hi Luca,

On 24/03/2023 11:22, Luca Weiss wrote:
> Hi Srinivas,
> 
> On Thu Feb 9, 2023 at 1:28 PM CET, Srinivas Kandagatla wrote:
>> move mclk out registration after runtime pm is enabled so that the
>> clk framework can resume the codec if it requires to enable the mclk out.
>>
>> Fixes: c96baa2949b2 ("ASoC: codecs: wsa-macro: add runtime pm support")
>> Fixes: 72ad25eabda0 ("ASoC: codecs: va-macro: add runtime pm support")
>> Fixes: 366ff79ed539 ("ASoC: codecs: rx-macro: add runtime pm support")
>> Fixes: 1fb83bc5cf64 ("ASoC: codecs: tx-macro: add runtime pm support")
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
> 
> I see the following remoteproc crash with this patch in on
> sm6350/sm7225-fairphone-fp4.
> 
> To be clear, all the audio parts for that SoC are not upstream (yet) and
> there's still many issues to solve so not sure if it's actually my fault.
> 

please try this patch Amit did report this issue before

https://lore.kernel.org/lkml/20230323110125.23790-1-srinivas.kandagatla@linaro.org/


thanks,
srini
> Anyways, getting this crash after starting adsp.
> 
> [   97.212943] qcom_q6v5_pas 3000000.remoteproc: fatal error received: ABT_dal.c:287:ABTimeout: AHB Bus hang is detected, Number of bus hang detected := 1 , addr0 = 0x3370000 , addr1 = 0x0!!!
> [   97.212995] remoteproc remoteproc0: crash detected in 3000000.remoteproc: type fatal error
> [   97.213015] remoteproc remoteproc0: handling crash #1 in 3000000.remoteproc
> [   97.213022] remoteproc remoteproc0: recovering 3000000.remoteproc
> 
> This happens just after some clocks on the adsp get disabled, this is
> from my own debug prints:
> [   97.189097] q6afe_set_lpass_clock: clk_id=780, attri=1, clk_root=0, freq=0
> [   97.189426] q6afe_set_lpass_clock: clk_id=781, attri=1, clk_root=0, freq=0
> 
> And then a couple of seconds later the whole phone just crashes into the
> 900e mode.
> 
> Regards
> Luca
> 
> 
>> ---
>>   sound/soc/codecs/lpass-rx-macro.c  |  8 ++++----
>>   sound/soc/codecs/lpass-tx-macro.c  |  8 ++++----
>>   sound/soc/codecs/lpass-va-macro.c  | 20 ++++++++++----------
>>   sound/soc/codecs/lpass-wsa-macro.c |  9 ++++-----
>>   4 files changed, 22 insertions(+), 23 deletions(-)
>>
>> diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
>> index a9ef9d5ffcc5..dd6970d5eb8d 100644
>> --- a/sound/soc/codecs/lpass-rx-macro.c
>> +++ b/sound/soc/codecs/lpass-rx-macro.c
>> @@ -3601,10 +3601,6 @@ static int rx_macro_probe(struct platform_device *pdev)
>>   	if (ret)
>>   		goto err_fsgen;
>>   
>> -	ret = rx_macro_register_mclk_output(rx);
>> -	if (ret)
>> -		goto err_clkout;
>> -
>>   	ret = devm_snd_soc_register_component(dev, &rx_macro_component_drv,
>>   					      rx_macro_dai,
>>   					      ARRAY_SIZE(rx_macro_dai));
>> @@ -3618,6 +3614,10 @@ static int rx_macro_probe(struct platform_device *pdev)
>>   	pm_runtime_set_active(dev);
>>   	pm_runtime_enable(dev);
>>   
>> +	ret = rx_macro_register_mclk_output(rx);
>> +	if (ret)
>> +		goto err_clkout;
>> +
>>   	return 0;
>>   
>>   err_clkout:
>> diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
>> index 2ef62d6edc30..b9475ba55e20 100644
>> --- a/sound/soc/codecs/lpass-tx-macro.c
>> +++ b/sound/soc/codecs/lpass-tx-macro.c
>> @@ -2036,10 +2036,6 @@ static int tx_macro_probe(struct platform_device *pdev)
>>   	if (ret)
>>   		goto err_fsgen;
>>   
>> -	ret = tx_macro_register_mclk_output(tx);
>> -	if (ret)
>> -		goto err_clkout;
>> -
>>   	ret = devm_snd_soc_register_component(dev, &tx_macro_component_drv,
>>   					      tx_macro_dai,
>>   					      ARRAY_SIZE(tx_macro_dai));
>> @@ -2052,6 +2048,10 @@ static int tx_macro_probe(struct platform_device *pdev)
>>   	pm_runtime_set_active(dev);
>>   	pm_runtime_enable(dev);
>>   
>> +	ret = tx_macro_register_mclk_output(tx);
>> +	if (ret)
>> +		goto err_clkout;
>> +
>>   	return 0;
>>   
>>   err_clkout:
>> diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c
>> index b0b6cf29cba3..1623ba78ddb3 100644
>> --- a/sound/soc/codecs/lpass-va-macro.c
>> +++ b/sound/soc/codecs/lpass-va-macro.c
>> @@ -1524,16 +1524,6 @@ static int va_macro_probe(struct platform_device *pdev)
>>   	if (ret)
>>   		goto err_mclk;
>>   
>> -	ret = va_macro_register_fsgen_output(va);
>> -	if (ret)
>> -		goto err_clkout;
>> -
>> -	va->fsgen = clk_hw_get_clk(&va->hw, "fsgen");
>> -	if (IS_ERR(va->fsgen)) {
>> -		ret = PTR_ERR(va->fsgen);
>> -		goto err_clkout;
>> -	}
>> -
>>   	if (va->has_swr_master) {
>>   		/* Set default CLK div to 1 */
>>   		regmap_update_bits(va->regmap, CDC_VA_TOP_CSR_SWR_MIC_CTL0,
>> @@ -1560,6 +1550,16 @@ static int va_macro_probe(struct platform_device *pdev)
>>   	pm_runtime_set_active(dev);
>>   	pm_runtime_enable(dev);
>>   
>> +	ret = va_macro_register_fsgen_output(va);
>> +	if (ret)
>> +		goto err_clkout;
>> +
>> +	va->fsgen = clk_hw_get_clk(&va->hw, "fsgen");
>> +	if (IS_ERR(va->fsgen)) {
>> +		ret = PTR_ERR(va->fsgen);
>> +		goto err_clkout;
>> +	}
>> +
>>   	return 0;
>>   
>>   err_clkout:
>> diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
>> index 5cfe96f6e430..c0b86d69c72e 100644
>> --- a/sound/soc/codecs/lpass-wsa-macro.c
>> +++ b/sound/soc/codecs/lpass-wsa-macro.c
>> @@ -2451,11 +2451,6 @@ static int wsa_macro_probe(struct platform_device *pdev)
>>   	if (ret)
>>   		goto err_fsgen;
>>   
>> -	ret = wsa_macro_register_mclk_output(wsa);
>> -	if (ret)
>> -		goto err_clkout;
>> -
>> -
>>   	ret = devm_snd_soc_register_component(dev, &wsa_macro_component_drv,
>>   					      wsa_macro_dai,
>>   					      ARRAY_SIZE(wsa_macro_dai));
>> @@ -2468,6 +2463,10 @@ static int wsa_macro_probe(struct platform_device *pdev)
>>   	pm_runtime_set_active(dev);
>>   	pm_runtime_enable(dev);
>>   
>> +	ret = wsa_macro_register_mclk_output(wsa);
>> +	if (ret)
>> +		goto err_clkout;
>> +
>>   	return 0;
>>   
>>   err_clkout:
>> -- 
>> 2.21.0
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ