On Wed, Oct 01, 2025 at 11:36:07AM +0100, Mike Leach wrote:
[...]
+static bool coresight_need_save_restore_source(struct coresight_device *csdev) +{
if (!csdev)
return false;
if (source_ops(csdev)->need_context_save_restore)
check the actual save and restore ops here too?
Will do.
return source_ops(csdev)->need_context_save_restore(csdev);
if (coresight_get_mode(csdev))
return true;
Not needed - should decide only on the previous need_context_save_restore() test. Components such as STM, ETR, ETB all use the mode status, but may not support / need save and restore.
Checking mode here is for ETMv3, which no need_context_save_restore() callback.
Note, STM is a system wise component (unlike ETM is CPU-wise component), thus it is irrelevant to CPU power management.
[...]
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,
.pause_perf = etm4_pause_perf,
.save = etm4_cpu_save,
.restore = etm4_cpu_restore,
.cpu_id = etm4_cpu_id,
.enable = etm4_enable,
.disable = etm4_disable,
.resume_perf = etm4_resume_perf,
.pause_perf = etm4_pause_perf,
.save = etm4_cpu_save,
.restore = etm4_cpu_restore,
Above are just white space change noise as far as I can see.
Will drop in next spin.
Thanks, Leo