linux/drivers/hwtracing/coresight
Andrew Murray 1004ce4c25 coresight: etm4x: Use explicit barriers on enable/disable
Synchronization is recommended before disabling the trace registers
to prevent any start or stop points being speculative at the point
of disabling the unit (section 7.3.77 of ARM IHI 0064D).

Synchronization is also recommended after programming the trace
registers to ensure all updates are committed prior to normal code
resuming (section 4.3.7 of ARM IHI 0064D).

Let's ensure these syncronization points are present in the code
and clearly commented.

Note that we could rely on the barriers in CS_LOCK and
coresight_disclaim_device_unlocked or the context switch to user
space - however coresight may be of use in the kernel.

On armv8 the mb macro is defined as dsb(sy) - Given that the etm4x is
only used on armv8 let's directly use dsb(sy) instead of mb(). This
removes some ambiguity and makes it easier to correlate the code with
the TRM.

Signed-off-by: Andrew Murray <andrew.murray@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
[Fixed capital letter for "use" in title]
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20190829202842.580-11-mathieu.poirier@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-09-03 22:01:17 +02: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-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-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: Use explicit barriers on enable/disable 2019-09-03 22:01:17 +02:00
coresight-etm4x.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 Driver Core and debugfs changes for 5.3-rc1 2019-07-12 12:24:03 -07:00
coresight-priv.h coresight: cpu-debug: Add support for Qualcomm Kryo 2019-09-03 22:01:15 +02: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-etf: Do not call smp_processor_id from preemptible 2019-07-03 21:15:33 +02:00
coresight-tmc-etr.c coresight: tmc-etr: Handle memory errors 2019-09-03 22:01:15 +02:00
coresight-tmc.c coresight: tmc-etr: Check if non-secure access is enabled 2019-09-03 22:01:16 +02:00
coresight-tmc.h coresight: tmc-etr: Check if non-secure access is enabled 2019-09-03 22:01:16 +02:00
coresight-tpiu.c coresight: Use platform agnostic names 2019-06-20 07:56:13 +02:00
coresight.c Driver Core and debugfs changes for 5.3-rc1 2019-07-12 12:24:03 -07:00
Kconfig coresight: platform: add OF/APCI dependency 2019-06-20 08:06:56 +02:00
Makefile coresight: Rename of_coresight to coresight-platform 2019-06-20 07:56:10 +02:00