[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