linux/drivers/hwtracing/coresight
Andrew Murray f188b5e76a coresight: etm4x: Save/restore state across CPU low power states
Some hardware will ignore bit TRCPDCR.PU which is used to signal
to hardware that power should not be removed from the trace unit.
Let's mitigate against this by conditionally saving and restoring
the trace unit state when the CPU enters low power states.

This patchset introduces a firmware property named
'arm,coresight-loses-context-with-cpu' - when this is present the
hardware state will be conditionally saved and restored.

A module parameter 'pm_save_enable' is also introduced which can
be configured to override the firmware property. This can be set
to never allow save/restore or to conditionally allow it (only for
self-hosted). The default value is determined by firmware.

We avoid saving the hardware state when self-hosted coresight isn't
in use to reduce PM latency - we can't determine this by reading the
claim tags (TRCCLAIMCLR) as these are 'trace' registers which need
power and clocking, something we can't easily provide in the PM
context. Therefore we rely on the existing drvdata->mode internal
state that is set when self-hosted coresight is used (and powered).

Signed-off-by: Andrew Murray <andrew.murray@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20191104181251.26732-2-mathieu.poirier@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-11-04 21:57:51 +01:00
..
coresight-catu.c coresight: Use platform agnostic names 2019-06-20 07:56:13 +02:00
coresight-catu.h coresight: catu: Cleanup device specific data 2019-06-19 20:29:14 +02:00
coresight-cpu-debug.c coresight: cpu-debug: Add support for Qualcomm Kryo 2019-09-03 22:01:15 +02:00
coresight-etb10.c coresight: etb10: Do not call smp_processor_id from preemptible 2019-07-03 21:15:33 +02:00
coresight-etm3x-sysfs.c coresight: etm: Clean up device specific data 2019-06-19 20:29:14 +02:00
coresight-etm3x.c coresight: Do not default to CPU0 for missing CPU phandle 2019-07-04 12:23:26 +02:00
coresight-etm4x-sysfs.c coresight: etm4x: Two function calls less 2019-09-03 22:01:15 +02:00
coresight-etm4x.c coresight: etm4x: Save/restore state across CPU low power states 2019-11-04 21:57:51 +01:00
coresight-etm4x.h coresight: etm4x: Save/restore state across CPU low power states 2019-11-04 21:57:51 +01:00
coresight-etm-cp14.c coresight: Moving framework and drivers to SPDX identifier 2018-05-14 16:19:59 +02:00
coresight-etm-perf.c coresight: Fix DEBUG_LOCKS_WARN_ON for uninitialized attribute 2019-08-01 20:51:34 +02:00
coresight-etm-perf.h coresight: perf: Add "sinks" group to PMU directory 2019-02-08 12:27:36 +01:00
coresight-etm.h coresight: etm: Clean up device specific data 2019-06-19 20:29:14 +02:00
coresight-funnel.c coresight: acpi: Static funnel support 2019-09-03 22:01:16 +02:00
coresight-platform.c drivers: Introduce device lookup variants by fwnode 2019-07-30 13:07:42 +02:00
coresight-priv.h Char/Misc driver patches for 5.4-rc1 2019-09-18 11:14:31 -07:00
coresight-replicator.c coresight: Convert pr_warn to dev_warn for obsolete bindings 2019-09-03 22:01:16 +02:00
coresight-stm.c coresight: stm: ACPI support for parsing stimulus base 2019-06-20 07:56:14 +02:00
coresight-tmc-etf.c coresight: tmc: Make memory width mask computation into a function 2019-09-03 22:01:18 +02:00
coresight-tmc-etr.c coresight: tmc-etr: Add barrier packets when moving offset forward 2019-09-03 22:01:18 +02:00
coresight-tmc.c coresight: tmc: Make memory width mask computation into a function 2019-09-03 22:01:18 +02:00
coresight-tmc.h coresight: tmc: Make memory width mask computation into a function 2019-09-03 22:01:18 +02:00
coresight-tpiu.c coresight: Use platform agnostic names 2019-06-20 07:56:13 +02:00
coresight.c coresight: etm4x: Save/restore state across CPU low power states 2019-11-04 21:57:51 +01:00
Kconfig docs: fix a couple of new broken references 2019-07-31 14:12:26 -06:00
Makefile coresight: Rename of_coresight to coresight-platform 2019-06-20 07:56:10 +02:00