mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 10:41:49 +02:00
coresight: Remove .cpu_id() callback from source ops
The CPU ID can be fetched directly from the coresight_device structure, so the .cpu_id() callback is no longer needed. Remove the .cpu_id() callback from source ops and update callers accordingly. Tested-by: Jie Gan <jie.gan@oss.qualcomm.com> Reviewed-by: Yeoreum Yun <yeoreum.yun@arm.com> Reviewed-by: James Clark <james.clark@linaro.org> Tested-by: James Clark <james.clark@linaro.org> Signed-off-by: Leo Yan <leo.yan@arm.com> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Link: https://lore.kernel.org/r/20260515-arm_coresight_path_power_management_improvement-v14-5-f88c4a3ecfe9@arm.com
This commit is contained in:
parent
da2bfe3377
commit
9d5eb760e3
|
|
@ -799,7 +799,7 @@ static int _coresight_build_path(struct coresight_device *csdev,
|
|||
goto out;
|
||||
|
||||
if (coresight_is_percpu_source(csdev) && coresight_is_percpu_sink(sink) &&
|
||||
sink == per_cpu(csdev_sink, source_ops(csdev)->cpu_id(csdev))) {
|
||||
sink == per_cpu(csdev_sink, csdev->cpu)) {
|
||||
if (_coresight_build_path(sink, source, sink, path) == 0) {
|
||||
found = true;
|
||||
goto out;
|
||||
|
|
@ -1026,7 +1026,7 @@ coresight_find_default_sink(struct coresight_device *csdev)
|
|||
/* look for a default sink if we have not found for this device */
|
||||
if (!csdev->def_sink) {
|
||||
if (coresight_is_percpu_source(csdev))
|
||||
csdev->def_sink = per_cpu(csdev_sink, source_ops(csdev)->cpu_id(csdev));
|
||||
csdev->def_sink = per_cpu(csdev_sink, csdev->cpu);
|
||||
if (!csdev->def_sink)
|
||||
csdev->def_sink = coresight_find_sink(csdev, &depth);
|
||||
}
|
||||
|
|
@ -1764,10 +1764,10 @@ int coresight_etm_get_trace_id(struct coresight_device *csdev, enum cs_mode mode
|
|||
{
|
||||
int cpu, trace_id;
|
||||
|
||||
if (csdev->type != CORESIGHT_DEV_TYPE_SOURCE || !source_ops(csdev)->cpu_id)
|
||||
if (csdev->type != CORESIGHT_DEV_TYPE_SOURCE)
|
||||
return -EINVAL;
|
||||
|
||||
cpu = source_ops(csdev)->cpu_id(csdev);
|
||||
cpu = csdev->cpu;
|
||||
switch (mode) {
|
||||
case CS_MODE_SYSFS:
|
||||
trace_id = coresight_trace_id_get_cpu_id(cpu);
|
||||
|
|
|
|||
|
|
@ -825,7 +825,7 @@ static void etm_addr_filters_sync(struct perf_event *event)
|
|||
int etm_perf_symlink(struct coresight_device *csdev, bool link)
|
||||
{
|
||||
char entry[sizeof("cpu9999999")];
|
||||
int ret = 0, cpu = source_ops(csdev)->cpu_id(csdev);
|
||||
int ret = 0, cpu = csdev->cpu;
|
||||
struct device *pmu_dev = etm_pmu.dev;
|
||||
struct device *cs_dev = &csdev->dev;
|
||||
|
||||
|
|
|
|||
|
|
@ -466,13 +466,6 @@ static void etm_enable_sysfs_smp_call(void *info)
|
|||
coresight_set_mode(csdev, CS_MODE_DISABLED);
|
||||
}
|
||||
|
||||
static int etm_cpu_id(struct coresight_device *csdev)
|
||||
{
|
||||
struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
|
||||
|
||||
return drvdata->cpu;
|
||||
}
|
||||
|
||||
void etm_release_trace_id(struct etm_drvdata *drvdata)
|
||||
{
|
||||
coresight_trace_id_put_cpu_id(drvdata->cpu);
|
||||
|
|
@ -684,7 +677,6 @@ static void etm_disable(struct coresight_device *csdev,
|
|||
}
|
||||
|
||||
static const struct coresight_ops_source etm_source_ops = {
|
||||
.cpu_id = etm_cpu_id,
|
||||
.enable = etm_enable,
|
||||
.disable = etm_disable,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -231,13 +231,6 @@ static void etm4_cs_unlock(struct etmv4_drvdata *drvdata,
|
|||
CS_UNLOCK(csa->base);
|
||||
}
|
||||
|
||||
static int etm4_cpu_id(struct coresight_device *csdev)
|
||||
{
|
||||
struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
|
||||
|
||||
return drvdata->cpu;
|
||||
}
|
||||
|
||||
void etm4_release_trace_id(struct etmv4_drvdata *drvdata)
|
||||
{
|
||||
coresight_trace_id_put_cpu_id(drvdata->cpu);
|
||||
|
|
@ -1205,7 +1198,6 @@ static void etm4_pause_perf(struct coresight_device *csdev)
|
|||
}
|
||||
|
||||
static const struct coresight_ops_source etm4_source_ops = {
|
||||
.cpu_id = etm4_cpu_id,
|
||||
.enable = etm4_enable,
|
||||
.disable = etm4_disable,
|
||||
.resume_perf = etm4_resume_perf,
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ int coresight_enable_sysfs(struct coresight_device *csdev)
|
|||
* be a single session per tracer (when working from sysFS)
|
||||
* a per-cpu variable will do just fine.
|
||||
*/
|
||||
cpu = source_ops(csdev)->cpu_id(csdev);
|
||||
cpu = csdev->cpu;
|
||||
per_cpu(tracer_path, cpu) = path;
|
||||
break;
|
||||
case CORESIGHT_DEV_SUBTYPE_SOURCE_SOFTWARE:
|
||||
|
|
@ -284,7 +284,7 @@ void coresight_disable_sysfs(struct coresight_device *csdev)
|
|||
|
||||
switch (csdev->subtype.source_subtype) {
|
||||
case CORESIGHT_DEV_SUBTYPE_SOURCE_PROC:
|
||||
cpu = source_ops(csdev)->cpu_id(csdev);
|
||||
cpu = csdev->cpu;
|
||||
path = per_cpu(tracer_path, cpu);
|
||||
per_cpu(tracer_path, cpu) = NULL;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -395,15 +395,12 @@ struct coresight_ops_link {
|
|||
/**
|
||||
* struct coresight_ops_source - basic operations for a source
|
||||
* Operations available for sources.
|
||||
* @cpu_id: returns the value of the CPU number this component
|
||||
* 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);
|
||||
int (*enable)(struct coresight_device *csdev, struct perf_event *event,
|
||||
enum cs_mode mode, struct coresight_path *path);
|
||||
void (*disable)(struct coresight_device *csdev,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user