Revert "Revert "MALI: midgard: RK: not to power off all the pm cores""

This reverts commit d94880b547.

Change-Id: Iac64d84ff5a7ee3e5666ed2829c17de413fc9bcd
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
This commit is contained in:
chenzhen
2016-12-30 19:56:52 +08:00
committed by Huang, Tao
parent 2d1c49463b
commit a90cb0ed3e

View File

@@ -21,6 +21,9 @@
* Base kernel Power Management hardware control
*/
// #define ENABLE_DEBUG_LOG
#include "../../platform/rk/custom_log.h"
#include <mali_kbase.h>
#include <mali_kbase_config_defaults.h>
#include <mali_midg_regmap.h>
@@ -71,6 +74,26 @@ enum kbasep_pm_action {
ACTION_PWRACTIVE = (SHADER_PWRACTIVE_LO - SHADER_PRESENT_LO)
};
/*---------------------------------------------------------------------------*/
static bool is_action_of_powering_off_l2(enum kbase_pm_core_type core_type,
enum kbasep_pm_action active)
{
return (KBASE_PM_CORE_L2 == core_type) && (ACTION_PWROFF == active);
}
static bool is_action_of_powering_off_shader(enum kbase_pm_core_type core_type,
enum kbasep_pm_action active)
{
return (KBASE_PM_CORE_SHADER == core_type) && (ACTION_PWROFF == active);
}
static bool is_action_of_powering_off_tiler(enum kbase_pm_core_type core_type,
enum kbasep_pm_action active)
{
return (KBASE_PM_CORE_TILER == core_type) && (ACTION_PWROFF == active);
}
static u64 kbase_pm_get_state(
struct kbase_device *kbdev,
enum kbase_pm_core_type core_type,
@@ -153,6 +176,25 @@ static void kbase_pm_invoke(struct kbase_device *kbdev,
lockdep_assert_held(&kbdev->pm.power_change_lock);
/*-------------------------------------------------------*/
if ( is_action_of_powering_off_l2(core_type, action) ) {
D("not to power off l2 actually.");
return;
}
if ( is_action_of_powering_off_shader(core_type, action) ) {
D("not to power off shader actually. cores_lo : 0x%x, hi : 0x%x.",
lo,
hi);
return;
}
if ( is_action_of_powering_off_tiler(core_type, action) ) {
D("not to power off tiler actually.");
return;
}
/*-------------------------------------------------------*/
reg = core_type_to_reg(core_type, action);
KBASE_DEBUG_ASSERT(reg);