[PATCH v7 01/20] coresight: Populate CPU ID into coresight_device

Suzuki K Poulose suzuki.poulose at arm.com
Mon Mar 23 02:35:18 PDT 2026


On 20/03/2026 17:42, Leo Yan wrote:
> Add a new flag CORESIGHT_DESC_CPU_BOUND to indicate components that
> are CPU bound.  Populate CPU ID into the coresight_device structure;
> otherwise, set CPU ID to -1 for non CPU bound devices.
> 
> Use the {0} initializer to clear coresight_desc structures to avoid
> uninitialized values.
> 
> Signed-off-by: Leo Yan <leo.yan at arm.com>

...

t-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c
> index 1511f8eb95afb5b4610b8fbdacc8b174b6b08530..14e35b9660d76e47619cc6026b94929b3bb3e02b 100644
> --- a/drivers/hwtracing/coresight/coresight-trbe.c
> +++ b/drivers/hwtracing/coresight/coresight-trbe.c
> @@ -1289,6 +1289,8 @@ static void arm_trbe_register_coresight_cpu(struct trbe_drvdata *drvdata, int cp
>   	desc.ops = &arm_trbe_cs_ops;
>   	desc.groups = arm_trbe_groups;
>   	desc.dev = dev;
> +	desc.cpu = cpu;
> +	desc.flags = CORESIGHT_DESC_CPU_BOUND;
>   	trbe_csdev = coresight_register(&desc);
>   	if (IS_ERR(trbe_csdev))
>   		goto cpu_clear;
> diff --git a/include/linux/coresight.h b/include/linux/coresight.h
> index 2131febebee93d609df1aea8534a10898b600be2..9d85e15337bc7e339695df18bcd5dac291d44916 100644
> --- a/include/linux/coresight.h
> +++ b/include/linux/coresight.h
> @@ -141,6 +141,8 @@ struct csdev_access {
>   		.base		= (_addr),	\
>   	})
>   
> +#define CORESIGHT_DESC_CPU_BOUND	BIT(0)
> +
>   /**
>    * struct coresight_desc - description of a component required from drivers
>    * @type:	as defined by @coresight_dev_type.
> @@ -153,6 +155,8 @@ struct csdev_access {
>    *		in the component's sysfs sub-directory.
>    * @name:	name for the coresight device, also shown under sysfs.
>    * @access:	Describe access to the device
> + * @flags:	The descritpion flags.
> + * @cpu:	The CPU this component is affined to.
>    */
>   struct coresight_desc {
>   	enum coresight_dev_type type;
> @@ -163,6 +167,8 @@ struct coresight_desc {
>   	const struct attribute_group **groups;
>   	const char *name;
>   	struct csdev_access access;
> +	u32 flags;
> +	int cpu;
>   };
>   
>   /**
> @@ -261,6 +267,7 @@ struct coresight_trace_id_map {
>    *		CS_MODE_SYSFS. Otherwise it must be accessed from inside the
>    *		spinlock.
>    * @orphan:	true if the component has connections that haven't been linked.
> + * @cpu:	The CPU this component is affined to (-1 for not CPU bound).
>    * @sysfs_sink_activated: 'true' when a sink has been selected for use via sysfs
>    *		by writing a 1 to the 'enable_sink' file.  A sink can be
>    *		activated but not yet enabled.  Enabling for a _sink_ happens
> @@ -287,6 +294,7 @@ struct coresight_device {
>   	atomic_t mode;
>   	int refcnt;
>   	bool orphan;
> +	int cpu;

super minor nit: Could we keep the bools closer to better pack the 
structure ? Not that it really matters.


Otherwise looks good to me

Suzuki




More information about the linux-arm-kernel mailing list