[PATCH] [v1] coresight: funnel: inport schedule by priority can not take work

Leo Yan leo.yan at arm.com
Tue Oct 27 01:41:33 PDT 2026


Hi,

On Sun, Oct 25, 2026 at 09:13:07PM +0800, Chao Xu wrote:
> Before enable funnel, priority must be set. Changing the port
> priorities in real time is not supported.

> If the priority control register is written when one or more of ports
> are enable, then the write is silently rejected.

Could you cite the relevant documentation in commit log?

  The CoreSight SoC-600 TRM, section 9.11.2, PRIORITYCONTROL, a funnel
  rejects priority register writes whenever any port is enabled. The
  current sequence therefore prevent the configured priorities from
  taking effect.

  Write the priority register before enabling the first port.

> Signed-off-by: Chao Xu <xuchao066 at 163.com>
> ---
>  drivers/hwtracing/coresight/coresight-funnel.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/hwtracing/coresight/coresight-funnel.c b/drivers/hwtracing/coresight/coresight-funnel.c
> index af40814ce560..17f985798d7f 100644
> --- a/drivers/hwtracing/coresight/coresight-funnel.c
> +++ b/drivers/hwtracing/coresight/coresight-funnel.c
> @@ -66,8 +66,8 @@ static int dynamic_funnel_enable_hw(struct funnel_drvdata *drvdata, int port)
>  	functl &= ~FUNNEL_HOLDTIME_MASK;
>  	functl |= FUNNEL_HOLDTIME;
>  	functl |= (1 << port);
> -	writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL);
>  	writel_relaxed(drvdata->priority, drvdata->base + FUNNEL_PRICTL);
> +	writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL);

Please move the priority write into the first port branch:

  /* Claim the device only when we enable the first slave */
  if (!(functl & FUNNEL_ENSx_MASK)) {
          rc = coresight_claim_device_unlocked(csdev);
          if (rc)
                  goto done;

          /* Update priorities while all ports are disabled */
          writel_relaxed(drvdata->priority,
                         drvdata->base + FUNNEL_PRICTL);
  }

Thanks,
Leo



More information about the linux-arm-kernel mailing list