gpu mali : fix dvfs cannot set 600MHz
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / arm / t6xx / kbase / src / platform / rk / mali_kbase_dvfs.h
1 /* drivers/gpu/t6xx/kbase/src/platform/rk/mali_kbase_dvfs.h
2  *
3  * Rockchip SoC Mali-T764 DVFS driver
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software FoundatIon.
8  */
9
10 /**
11  * @file mali_kbase_dvfs.h
12  * DVFS
13  */
14
15 #ifndef _KBASE_DVFS_H_
16 #define _KBASE_DVFS_H_
17
18 /* Frequency that DVFS clock frequency decisions should be made */
19 #define KBASE_PM_DVFS_FREQUENCY                 100
20
21 #define MALI_DVFS_KEEP_STAY_CNT 10
22 #define MALI_DVFS_TIME_INTERVAL 2
23
24 #define MALI_DVFS_CURRENT_FREQ 0
25 #define MALI_DVFS_BL_CONFIG_FREQ 600
26 #define MALI_DVFS_START_FREQ 400
27
28 #ifdef CONFIG_MALI_T6XX_DVFS
29 #define CONFIG_MALI_T6XX_FREQ_LOCK
30 #endif
31
32 void kbase_platform_dvfs_set_clock(kbase_device *kbdev, int freq);
33 void kbase_platform_dvfs_set_level(struct kbase_device *kbdev, int level);
34 int kbase_platform_dvfs_get_level(int freq);
35
36 #ifdef CONFIG_MALI_T6XX_DVFS
37 int kbase_platform_dvfs_init(struct kbase_device *dev);
38 void kbase_platform_dvfs_term(void);
39 int kbase_platform_dvfs_event(struct kbase_device *kbdev, u32 utilisation);
40 int kbase_platform_dvfs_get_enable_status(void);
41 int kbase_platform_dvfs_enable(bool enable, int freq);
42 int kbase_platform_dvfs_get_utilisation(void);
43 #endif
44
45 int mali_get_dvfs_current_level(void);
46 int mali_get_dvfs_upper_locked_freq(void);
47 int mali_get_dvfs_under_locked_freq(void);
48 int mali_dvfs_freq_lock(int level);
49 void mali_dvfs_freq_unlock(void);
50 int mali_dvfs_freq_under_lock(int level);
51 void mali_dvfs_freq_under_unlock(void);
52
53 ssize_t show_time_in_state(struct device *dev, struct device_attribute *attr, char *buf);
54 ssize_t set_time_in_state(struct device *dev, struct device_attribute *attr, const char *buf, size_t count);
55
56 #endif                          /* _KBASE_DVFS_H_ */