Hi Mike,
On 05/26/2020 11:46 AM, Mike Leach wrote:
When enabling a trace source using sysfs, allow the CoreSight system to auto-select a default sink if none has been enabled by the user.
Uses the sink select algorithm that uses the default select priorities set when sinks are registered with the system. At present this will prefer ETR over ETB / ETF.
Signed-off-by: Mike Leach mike.leach@linaro.org
drivers/hwtracing/coresight/coresight.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/hwtracing/coresight/coresight.c b/drivers/hwtracing/coresight/coresight.c index 7632d060e25d..bd1a52a65d00 100644 --- a/drivers/hwtracing/coresight/coresight.c +++ b/drivers/hwtracing/coresight/coresight.c @@ -965,8 +965,15 @@ int coresight_enable(struct coresight_device *csdev) */ sink = coresight_get_enabled_sink(false); if (!sink) {
ret = -EINVAL;
goto out;
/* look for a default sink if nothing enabled */
sink = coresight_find_default_sink(csdev);
if (!sink) {
ret = -EINVAL;
goto out;
}
/* mark the default as enabled */
sink->activated = true;
}dev_info(&sink->dev, "Enabled default sink.");
To be honest, I would drop this change and mandate that the user enables the sink(s). There is no way to reliably match which ETM is tracing to the sink above in case multiple ETMs are being enabled, even with the above message. It is important for sysfs mode, as the user must collect the trace data manually, unlike the perf mode where the race data is collected and presented to the user via memory buffers.
Suzuki