disp: msm: sde: enable FAL1 only option for microidle

Add support for the option to enable microidle FAL1 only setting.
Previously microidle enabled would automatically have both
FAL1 and FAL10. Now in cases of higher FPS or DFPS we can
choose to enable FAL1. This change also adds qos recommended
waipio target specific fps limits for fal1 and fal10.

Change-Id: I7aa7d003afc3ac77c671b2467b0e6dedaae772aa
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
This commit is contained in:
Samantha Tran
2020-11-05 13:12:35 -08:00
committed by Prabhanjan Kandula
parent 1d39b8a5a9
commit 6de4718ee9
5 changed files with 63 additions and 20 deletions

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
*
*/
@@ -161,10 +161,17 @@ void sde_hw_uidle_setup_ctl(struct sde_hw_uidle *uidle,
struct sde_uidle_ctl_cfg *cfg)
{
struct sde_hw_blk_reg_map *c = &uidle->hw;
bool enable = false;
u32 reg_val;
reg_val = SDE_REG_READ(c, UIDLE_CTL);
reg_val = (reg_val & ~BIT(31)) | (cfg->uidle_enable ? BIT(31) : 0);
enable = (cfg->uidle_state > UIDLE_STATE_DISABLE &&
cfg->uidle_state < UIDLE_STATE_ENABLE_MAX);
reg_val = (reg_val & ~BIT(31)) | (enable ? BIT(31) : 0);
reg_val = (reg_val & ~BIT(30)) | (cfg->uidle_state
== UIDLE_STATE_FAL1_ONLY ? BIT(30) : 0);
reg_val = (reg_val & ~FAL10_DANGER_MSK) |
((cfg->fal10_danger << FAL10_DANGER_SHFT) &
FAL10_DANGER_MSK);