[PATCH] coresight: etm4x: Skip setting LPOVERRIDE bit for qcom,skip-power-up

Suzuki Poulose suzuki.poulose at arm.com
Fri Oct 16 07:21:15 EDT 2020


Hi Sai,

On 10/16/20 11:10 AM, Sai Prakash Ranjan wrote:
> There is a bug on the systems supporting to skip power up
> (qcom,skip-power-up) where setting LPOVERRIDE bit(low-power
> state override behaviour) will result in CPU hangs/lockups
> even on the implementations which supports it. So skip
> setting the LPOVERRIDE bit for such platforms.
> 
> Fixes: 02510a5aa78d ("coresight: etm4x: Add support to skip trace unit power up")
> Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan at codeaurora.org>

The fix is fine by me. Btw, is there a hardware Erratum assigned for
this ? It would be good to have the Erratum documented somewhere,
preferrably ( Documentation/arm64/silicon-errata.rst )

> ---
>   drivers/hwtracing/coresight/coresight-etm4x-core.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
> index abd706b216ac..6096d7abf80d 100644
> --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
> +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
> @@ -779,7 +779,7 @@ static void etm4_init_arch_data(void *info)
>   	 * LPOVERRIDE, bit[23] implementation supports
>   	 * low-power state override
>   	 */
> -	if (BMVAL(etmidr5, 23, 23))
> +	if (BMVAL(etmidr5, 23, 23) && (!drvdata->skip_power_up))
>   		drvdata->lpoverride = true;
>   	else
>   		drvdata->lpoverride = false;
> 
> base-commit: 3477326277451000bc667dfcc4fd0774c039184c
> 




More information about the linux-arm-kernel mailing list