[PATCH v2 3/3] coresight-tpda: Optimize the function of reading element size

Suzuki K Poulose suzuki.poulose at arm.com
Thu Jul 11 06:25:26 PDT 2024


On 11/07/2024 09:17, Tao Zhang wrote:
> Since the new funnel device supports multi-port output scenarios,
> there may be more than one TPDM connected to one TPDA. In this
> way, when reading the element size of the TPDM, TPDA driver needs
> to find the expected TPDM corresponding to the filter source.
> When TPDA finds a TPDM or a filter source from a input connection,
> it will read the Devicetree to get the expected TPDM's element
> size.
> 
> Signed-off-by: Tao Zhang <quic_taozha at quicinc.com>
> ---
>   drivers/hwtracing/coresight/coresight-tpda.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hwtracing/coresight/coresight-tpda.c b/drivers/hwtracing/coresight/coresight-tpda.c
> index bfca103f9f84..4936ba4a7625 100644
> --- a/drivers/hwtracing/coresight/coresight-tpda.c
> +++ b/drivers/hwtracing/coresight/coresight-tpda.c
> @@ -110,6 +110,8 @@ static int tpda_get_element_size(struct tpda_drvdata *drvdata,
>   		    csdev->pdata->in_conns[i]->dest_port != inport)
>   			continue;
>   
> +		if (csdev->pdata->in_conns[i]->filter_src_dev)
> +			in = csdev->pdata->in_conns[i]->filter_src_dev;

Actually, this may not be complete, if the device was removed. Also add
a comment here.

		/*
		 * If this port has a hardcoded filter, use the source
		 * device directly.
		 */
		if (csdev->pdata->in_conns[i]->filter_src_fwnode) {
			in = csdev->pdata->in_conns[i]->filter_src_dev;
			if (!in)
				continue;
		}


Suzuki

>   		if (coresight_device_is_tpdm(in)) {
>   			if (drvdata->dsb_esize || drvdata->cmb_esize)
>   				return -EEXIST;
> @@ -124,7 +126,6 @@ static int tpda_get_element_size(struct tpda_drvdata *drvdata,
>   		}
>   	}
>   
> -

>   	return rc;
>   }
>   




More information about the linux-arm-kernel mailing list