android_kernel_oneplus_msm8998/include/soc/qcom/perf_event_kryo.h
Neil Leeder 303b5bd525 qcom: add support for kryo CPU PMU
The performance Monitor Unit on the kryo processor
has additional performance events over the architected
events in ARM processors. This adds support for these
additional events.

Change-Id: I90356b7d2cfebd9d985ec6f92c6d000be9911a7c
Signed-off-by: Neil Leeder <nleeder@codeaurora.org>
[satyap: trivial merge conflict resolution and remove check_event &
         map_event functionality to align with kernel 4.4]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2016-03-23 20:48:23 -07:00

58 lines
1.9 KiB
C

/*
* Copyright (c) 2015 The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __PERF_EVENT_KRYO_H
#define __PERF_EVENT_KRYO_H
#define pmactlr_el0 "S3_5_c11_c0_2"
#define pmresr0l_el0 "S3_5_c11_c3_0"
#define pmresr0h_el0 "S3_5_c11_c3_1"
#define pmresr1l_el0 "S3_5_c11_c3_2"
#define pmresr1h_el0 "S3_5_c11_c3_3"
#define pmresr2l_el0 "S3_5_c11_c3_4"
#define pmresr2h_el0 "S3_5_c11_c3_5"
#define pmxevcntcr_el0 "S3_5_c11_c0_3"
#define RESR_L 0
#define RESR_H 1
#define RESR_ENABLE 0x80000000
#define ARMV8_PMCR_P 0x00000002 /* Reset counters */
#define ARMV8_PMCR_C 0x00000004 /* Reset cycle counter */
#define PMACTLR_UEN 0x00000001
#define PMUSERENR_UEN 0x00000001
/*
event encoding: NRCCG
n = prefix (1 for Kryo CPU)
r = register
cc = code
g = group
*/
#define KRYO_EVT_PREFIX 1
#define KRYO_EVT_MASK 0x000FFFFF
#define KRYO_EVT_PREFIX_MASK 0x000F0000
#define KRYO_EVT_REG_MASK 0x0000F000
#define KRYO_EVT_CODE_MASK 0x00000FF0
#define KRYO_EVT_GROUP_MASK 0x0000000F
#define KRYO_EVT_PREFIX_SHIFT 16
#define KRYO_EVT_REG_SHIFT 12
#define KRYO_EVT_CODE_SHIFT 4
#define KRYO_EVT_GROUP_SHIFT 0
#define KRYO_MODE_EXCL_MASK 0xC0000000
#define KRYO_MAX_L1_REG 2
#define KRYO_MAX_GROUP 7
#endif