potter: back to N power HAL

Change-Id: Ibaf21913ba08750d69479b07a5b31bb31fdb7418
This commit is contained in:
Vachounet
2017-09-16 13:43:15 +02:00
parent a70996813e
commit be87305271
27 changed files with 3665 additions and 626 deletions

122
power/performance.h Normal file → Executable file
View File

@@ -35,17 +35,14 @@ extern "C" {
#define SUCCESS 0
#define INDEFINITE_DURATION 0
/* Hints sent to perf HAL from power HAL
* These have to be kept in sync with Perf HAL side definitions
*/
#define VENDOR_HINT_DISPLAY_OFF 0x00001086
#define VENDOR_HINT_DISPLAY_ON 0x00001087
enum SCREEN_DISPLAY_TYPE {
DISPLAY_OFF = 0x00FF,
};
enum PWR_CLSP_TYPE {
#ifdef MPCTLV3
ALL_CPUS_PWR_CLPS_DIS_V3 = 0x40400000, /* v3 resource */
#endif
ALL_CPUS_PWR_CLPS_DIS = 0x101,
};
@@ -103,6 +100,10 @@ enum CPU3_MAX_FREQ_LVL {
};
enum MIN_CPUS_ONLINE_LVL {
#ifdef MPCTLV3
CPUS_ONLINE_MIN_BIG = 0x41000000, /* v3 resource */
CPUS_ONLINE_MIN_LITTLE = 0x41000100, /* v3 resource */
#endif
CPUS_ONLINE_MIN_2 = 0x702,
CPUS_ONLINE_MIN_3 = 0x703,
CPUS_ONLINE_MIN_4 = 0x704,
@@ -111,6 +112,10 @@ enum MIN_CPUS_ONLINE_LVL {
};
enum MAX_CPUS_ONLINE_LVL {
#ifdef MPCTLV3
CPUS_ONLINE_MAX_LIMIT_BIG = 0x41004000, /* v3 resource */
CPUS_ONLINE_MAX_LIMIT_LITTLE = 0x41004100, /* v3 resource */
#endif
CPUS_ONLINE_MAX_LIMIT_1 = 0x8FE,
CPUS_ONLINE_MAX_LIMIT_2 = 0x8FD,
CPUS_ONLINE_MAX_LIMIT_3 = 0x8FC,
@@ -134,6 +139,7 @@ enum ONDEMAND_SAMPLING_DOWN_FACTOR_LVL {
SAMPLING_DOWN_FACTOR_4 = 0xD04,
};
enum INTERACTIVE_TIMER_RATE_LVL {
TR_MS_500 = 0xECD,
TR_MS_100 = 0xEF5,
@@ -162,28 +168,9 @@ enum INTERACTIVE_TIMER_RATE_LVL_CPU4_8939 {
TR_MS_CPU4_20 = 0x3BFD,
};
/* This timer rate applicable to big.little arch */
enum INTERACTIVE_TIMER_RATE_LVL_BIG_LITTLE {
BIG_LITTLE_TR_MS_100 = 0x64,
BIG_LITTLE_TR_MS_50 = 0x32,
BIG_LITTLE_TR_MS_40 = 0x28,
BIG_LITTLE_TR_MS_30 = 0x1E,
BIG_LITTLE_TR_MS_20 = 0x14,
};
/* INTERACTIVE opcodes */
enum INTERACTIVE_OPCODES {
INT_OP_CLUSTER0_TIMER_RATE = 0x41424000,
INT_OP_CLUSTER1_TIMER_RATE = 0x41424100,
INT_OP_CLUSTER0_USE_SCHED_LOAD = 0x41430000,
INT_OP_CLUSTER1_USE_SCHED_LOAD = 0x41430100,
INT_OP_CLUSTER0_USE_MIGRATION_NOTIF = 0x41434000,
INT_OP_CLUSTER1_USE_MIGRATION_NOTIF = 0x41434100,
INT_OP_NOTIFY_ON_MIGRATE = 0x4241C000
};
enum INTERACTIVE_HISPEED_FREQ_LVL {
HS_FREQ_1026 = 0xF0A,
HS_FREQ_800 = 0xF08,
};
enum INTERACTIVE_HISPEED_LOAD_LVL {
@@ -213,6 +200,9 @@ enum SCREEN_PWR_CLPS_LVL {
enum THREAD_MIGRATION_LVL {
THREAD_MIGRATION_SYNC_OFF = 0x1400,
#ifdef MPCTLV3
THREAD_MIGRATION_SYNC_ON_V3 = 0x4241C000
#endif
};
enum INTERACTIVE_IO_BUSY_LVL {
@@ -221,6 +211,9 @@ enum INTERACTIVE_IO_BUSY_LVL {
};
enum SCHED_BOOST_LVL {
#ifdef MPCTLV3
SCHED_BOOST_ON_V3 = 0x40C00000, /* v3 resource */
#endif
SCHED_BOOST_ON = 0x1E01,
};
@@ -260,6 +253,83 @@ enum CPU7_MAX_FREQ_LVL {
CPU7_MAX_FREQ_NONTURBO_MAX = 0x260A,
};
enum SCHED_PREFER_IDLE {
#ifdef MPCTLV3
SCHED_PREFER_IDLE_DIS_V3 = 0x40C04000,
#endif
SCHED_PREFER_IDLE_DIS = 0x3E01,
};
enum SCHED_MIGRATE_COST_CHNG {
SCHED_MIGRATE_COST_SET = 0x3F01,
};
#ifdef MPCTLV3
/**
* MPCTL v3 opcodes
*/
enum MAX_FREQ_CLUSTER_BIG {
MAX_FREQ_BIG_CORE_0 = 0x40804000,
};
enum MAX_FREQ_CLUSTER_LITTLE {
MAX_FREQ_LITTLE_CORE_0 = 0x40804100,
};
enum MIN_FREQ_CLUSTER_BIG {
MIN_FREQ_BIG_CORE_0 = 0x40800000,
};
enum MIN_FREQ_CLUSTER_LITTLE {
MIN_FREQ_LITTLE_CORE_0 = 0x40800100,
};
enum INTERACTIVE_CLUSTER_BIG {
ABOVE_HISPEED_DELAY_BIG = 0x41400000,
GO_HISPEED_LOAD_BIG = 0x41410000,
HISPEED_FREQ_BIG = 0x41414000,
TARGET_LOADS_BIG = 0x41420000,
TIMER_RATE_BIG = 0x41424000,
USE_SCHED_LOAD_BIG = 0x41430000,
USE_MIGRATION_NOTIF_BIG = 0x41434000,
IGNORE_HISPEED_NOTIF_BIG = 0x41438000,
};
enum INTERACTIVE_CLUSTER_LITTLE {
ABOVE_HISPEED_DELAY_LITTLE = 0x41400100,
GO_HISPEED_LOAD_LITTLE = 0x41410100,
HISPEED_FREQ_LITTLE = 0x41414100,
TARGET_LOADS_LITTLE = 0x41420100,
TIMER_RATE_LITTLE = 0x41424100,
USE_SCHED_LOAD_LITTLE = 0x41430100,
USE_MIGRATION_NOTIF_LITTLE = 0x41434100,
IGNORE_HISPEED_NOTIF_LITTLE = 0x41438100,
};
enum CPUBW_HWMON {
CPUBW_HWMON_MIN_FREQ = 0x41800000,
CPUBW_HWMON_V1 = 0x4180C000,
LOW_POWER_CEIL_MBPS = 0x41810000,
LOW_POWER_IO_PERCENT = 0x41814000,
CPUBW_HWMON_SAMPLE_MS = 0x41820000,
};
enum SCHEDULER {
SCHED_SMALL_TASK_DIS = 0x40C0C000,
SCHED_IDLE_LOAD_DIS = 0x40C10000,
SCHED_IDLE_NR_RUN_DIS = 0x40C14000,
SCHED_GROUP_ON = 0x40C28000,
};
enum STORAGE {
STOR_CLK_SCALE_DIS = 0x42C10000,
};
enum GPU {
GPU_MIN_PWRLVL_BOOST = 0x42804000,
};
#endif
#ifdef __cplusplus
}
#endif