ARM: perf: Add support for Scorpion PMUs
authorStephen Boyd <sboyd@codeaurora.org>
Sat, 28 Feb 2015 00:11:35 +0000 (16:11 -0800)
committerWill Deacon <will.deacon@arm.com>
Tue, 17 Mar 2015 18:34:01 +0000 (18:34 +0000)
commit341e42c4e3f97af9bbeada64c3e1a41f65ce086a
tree30a7aed72a5a6a896d3cc03a031f256dfbf59f6d
parent934999185edd613ca80916d238ba7393b84ae53c
ARM: perf: Add support for Scorpion PMUs

Scorpion supports a set of local performance monitor event
selection registers (LPM) sitting behind a cp15 based interface
that extend the architected PMU events to include Scorpion CPU
and Venum VFP specific events. To use these events the user is
expected to program the lpm register with the event code shifted
into the group they care about and then point the PMNx event at
that region+group combo by writing a LPMn_GROUPx event. Add
support for this hardware.

Note: the raw event number is a pure software construct that
allows us to map the multi-dimensional number space of regions,
groups, and event codes into a flat event number space suitable
for use by the perf framework.

This is based on code originally written by Sheetal Sahasrabudhe,
Ashwin Chaugule, and Neil Leeder [1].

[1] https://www.codeaurora.org/cgit/quic/la/kernel/msm/tree/arch/arm/kernel/perf_event_msm.c?h=msm-3.4

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Neil Leeder <nleeder@codeaurora.org>
Cc: Ashwin Chaugule <ashwinc@codeaurora.org>
Cc: Sheetal Sahasrabudhe <sheetals@codeaurora.org>
Cc: <devicetree@vger.kernel.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Documentation/devicetree/bindings/arm/pmu.txt
arch/arm/kernel/perf_event_cpu.c
arch/arm/kernel/perf_event_v7.c