arm: perf: add macros for empty event mappings
authorMark Rutland <mark.rutland@arm.com>
Thu, 29 May 2014 16:29:51 +0000 (17:29 +0100)
committerWill Deacon <will.deacon@arm.com>
Wed, 2 Jul 2014 14:47:01 +0000 (15:47 +0100)
commit1113ff98c4a993b40e524d4422beb3b4140cbdca
tree96317f38a8c5213f99feee40e3ebc90b3118ac01
parentac8674dc0a8b97d564f293ae57cdf2d1e416b698
arm: perf: add macros for empty event mappings

We currently map from userspace-ABI standard event numbers to
hardware-specific IDs by use of two arrays, *_perf_map and
*_perf_cache_map. While we use designated initializers to initialize the
events we care about, zero is typically a valid hardware event number,
and thus we have to explicitly initialize unsupported event mappings to a
nonzero value ({HW,CACHE}_OP_UNSUPPORTED).

In the case of the *_cache_map, this requires initialising almost every
entry in a 3-dimensional array to CACHE_OP_UNSUPPORTED, requiring over a
hundred lines to add eleven supported events in the case of Cortex A9.

So as to take up less space and make the tables easier to deal with,
this patch adds two new macros to initialize every entry in these tables
to the *_UNSUPPORTED values. Supported events can be overridden
individually through the use of designated initializers.

Acked-by: Will Deacon <will.deacon@arm.com>
Tested-by: Christopher Covington <cov@codeaurora.org>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/include/asm/pmu.h