Hi Greg, Here are the updates that I have for v5.2. The main item on the list is the support for software trace sinks that I call "buffer drivers". The purpose is to create a software path for the trace data coming out of the TH that would allow exporting it via a USB gadget or ethernet or some such. Most of the patches are reworks in the MSU code to enable this, including interrupt handling and resource passing between glue layers and the driver core. An example sink driver is included. Also, there's a bugfix that's backportable all the way to stable 4.4.
These are all, as usual, tested with aiaiai for bisectability, cppcheck, sparse, smatch, coccinelle and checkpatch errors. Signed tag is at the repo below. Individual patches follow. Please consider pulling or applying. Apologies for late request. The following changes since commit 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b: Linux 5.1-rc1 (2019-03-17 14:22:26 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/ash/stm.git tags/intel_th-for-greg-20190503 for you to fetch changes up to c0e8a65abd2e4ad47e5257de6bde1822e9c458b6: intel_th: msu: Preserve pre-existing buffer configuration (2019-05-03 11:35:46 +0300) ---------------------------------------------------------------- intel_th: Updates for v5.2 These are: * Support for software trace sinks * Interrupt handling, MSI support * Reworks in resource passing between glue layers and driver core * Reworks in buffer management code * Various small reworks in the MSU code * Support for window switching in MSU "multi" mode * A fix for the MSU "single" mode, backportable all the way to v4.4 * A new "rtit" subdevice ---------------------------------------------------------------- Alexander Shishkin (22): intel_th: msu: Fix single mode with IOMMU intel_th: SPDX-ify the documentation intel_th: Rework resource passing between glue layers and core intel_th: Skip subdevices if their MMIO is missing intel_th: Add "rtit" source device intel_th: Communicate IRQ via resource intel_th: pci: Use MSI interrupt signalling intel_th: msu: Start handling IRQs intel_th: Only report useful IRQs to subdevices intel_th: msu: Replace open-coded list_{first,last,next}_entry variants intel_th: msu: Switch over to scatterlist intel_th: msu: Support multipage blocks intel_th: msu: Factor out pipeline draining intel_th: gth: Factor out trace start/stop intel_th: Add switch triggering support intel_th: msu: Correct the block wrap detection intel_th: msu: Add a sysfs attribute to trigger window switch intel_th: msu: Add current window tracking intel_th: msu: Introduce buffer driver interface intel_th: msu: Add a sysfs attribute showing possible modes intel_th: msu-sink: An example msu buffer driver intel_th: msu: Preserve pre-existing buffer configuration .../ABI/testing/sysfs-bus-intel_th-devices-msc | 19 +- Documentation/trace/intel_th.rst | 2 + MAINTAINERS | 1 + drivers/hwtracing/intel_th/Makefile | 3 + drivers/hwtracing/intel_th/acpi.c | 10 +- drivers/hwtracing/intel_th/core.c | 139 +++- drivers/hwtracing/intel_th/gth.c | 125 ++- drivers/hwtracing/intel_th/gth.h | 19 + drivers/hwtracing/intel_th/intel_th.h | 30 +- drivers/hwtracing/intel_th/msu-sink.c | 137 ++++ drivers/hwtracing/intel_th/msu.c | 864 +++++++++++++++++---- drivers/hwtracing/intel_th/msu.h | 31 +- drivers/hwtracing/intel_th/pci.c | 32 +- include/linux/intel_th.h | 67 ++ 14 files changed, 1270 insertions(+), 209 deletions(-) create mode 100644 drivers/hwtracing/intel_th/msu-sink.c create mode 100644 include/linux/intel_th.h -- 2.20.1