Commit 5fa96c83 authored by Leo Yan's avatar Leo Yan Committed by Suzuki K Poulose
Browse files

coresight: Introduce pause and resume APIs for source



Introduce APIs for pausing and resuming trace source and export as GPL
symbols.

Signed-off-by: default avatarLeo Yan <leo.yan@arm.com>
Reviewed-by: default avatarMike Leach <mike.leach@linaro.org>
Reviewed-by: default avatarJames Clark <james.clark@linaro.org>
Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20250401180708.385396-3-leo.yan@arm.com
parent 40f682ae
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -392,6 +392,28 @@ void coresight_disable_source(struct coresight_device *csdev, void *data)
}
EXPORT_SYMBOL_GPL(coresight_disable_source);

void coresight_pause_source(struct coresight_device *csdev)
{
	if (!coresight_is_percpu_source(csdev))
		return;

	if (source_ops(csdev)->pause_perf)
		source_ops(csdev)->pause_perf(csdev);
}
EXPORT_SYMBOL_GPL(coresight_pause_source);

int coresight_resume_source(struct coresight_device *csdev)
{
	if (!coresight_is_percpu_source(csdev))
		return -EOPNOTSUPP;

	if (!source_ops(csdev)->resume_perf)
		return -EOPNOTSUPP;

	return source_ops(csdev)->resume_perf(csdev);
}
EXPORT_SYMBOL_GPL(coresight_resume_source);

/*
 * coresight_disable_path_from : Disable components in the given path beyond
 * @nd in the list. If @nd is NULL, all the components, except the SOURCE are
+2 −0
Original line number Diff line number Diff line
@@ -251,5 +251,7 @@ void coresight_add_helper(struct coresight_device *csdev,
void coresight_set_percpu_sink(int cpu, struct coresight_device *csdev);
struct coresight_device *coresight_get_percpu_sink(int cpu);
void coresight_disable_source(struct coresight_device *csdev, void *data);
void coresight_pause_source(struct coresight_device *csdev);
int coresight_resume_source(struct coresight_device *csdev);

#endif
+4 −0
Original line number Diff line number Diff line
@@ -398,6 +398,8 @@ struct coresight_ops_link {
 *		is associated to.
 * @enable:	enables tracing for a source.
 * @disable:	disables tracing for a source.
 * @resume_perf: resumes tracing for a source in perf session.
 * @pause_perf:	pauses tracing for a source in perf session.
 */
struct coresight_ops_source {
	int (*cpu_id)(struct coresight_device *csdev);
@@ -405,6 +407,8 @@ struct coresight_ops_source {
		      enum cs_mode mode, struct coresight_path *path);
	void (*disable)(struct coresight_device *csdev,
			struct perf_event *event);
	int (*resume_perf)(struct coresight_device *csdev);
	void (*pause_perf)(struct coresight_device *csdev);
};

/**