On 08/09/2025 03:01, Jie Gan wrote:
Add a list to store allocated etr_buf.
The byte-cntr functionality requires two etr_buf to receive trace data. The active etr_buf collects the trace data from source device, while the byte-cntr reading function accesses the deactivated etr_buf after is has been filled and synced, transferring data to the userspace.
Signed-off-by: Jie Gan jie.gan@oss.qualcomm.com
This patch alone doesn't make any sense. Please fold it with a proper user (i.e. later patches). I can't make any sense of how this will be used TBH without the following patches and on its own, it doesn't do much anyways.
Suzuki
drivers/hwtracing/coresight/coresight-tmc-core.c | 1 + drivers/hwtracing/coresight/coresight-tmc.h | 17 +++++++++++++++++ 2 files changed, 18 insertions(+)
diff --git a/drivers/hwtracing/coresight/coresight-tmc-core.c b/drivers/hwtracing/coresight/coresight-tmc-core.c index be964656be93..4d249af93097 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-core.c +++ b/drivers/hwtracing/coresight/coresight-tmc-core.c @@ -830,6 +830,7 @@ static int __tmc_probe(struct device *dev, struct resource *res) idr_init(&drvdata->idr); mutex_init(&drvdata->idr_mutex); dev_list = &etr_devs;
break; case TMC_CONFIG_TYPE_ETF: desc.groups = coresight_etf_groups;INIT_LIST_HEAD(&drvdata->etr_buf_list);diff --git a/drivers/hwtracing/coresight/coresight-tmc.h b/drivers/hwtracing/coresight/coresight-tmc.h index 6541a27a018e..292e25d82b62 100644 --- a/drivers/hwtracing/coresight/coresight-tmc.h +++ b/drivers/hwtracing/coresight/coresight-tmc.h @@ -208,6 +208,19 @@ struct tmc_resrv_buf { s64 len; }; +/**
- @sysfs_buf: Allocated sysfs_buf.
- @is_free: Indicates whether the buffer is free to choose.
- @pos: Position of the buffer.
- @node: Node in etr_buf_list.
- */
+struct etr_buf_node {
- struct etr_buf *sysfs_buf;
- bool is_free;
- loff_t pos;
- struct list_head node;
+};
- /**
- struct tmc_drvdata - specifics associated to an TMC component
- @pclk: APB clock if present, otherwise NULL
@@ -242,6 +255,8 @@ struct tmc_resrv_buf {
(after crash) by default.- @crash_mdata: Reserved memory for storing tmc crash metadata.
Used by ETR/ETF.
- @etr_buf_list: List that is used to manage allocated etr_buf.
*/ struct tmc_drvdata { struct clk *pclk;
- @reading_node: Available buffer for byte-cntr reading.
@@ -271,6 +286,8 @@ struct tmc_drvdata { struct etr_buf *perf_buf; struct tmc_resrv_buf resrv_buf; struct tmc_resrv_buf crash_mdata;
- struct list_head etr_buf_list;
- struct etr_buf_node *reading_node; };
struct etr_buf_operations {