disp: sde: override fal10 veto for milos target
This patch overrides the fal10 veto for the milos target. Change-Id: I82310b63ff89aa44c03b97e4e7b6e87ac5c4569a Signed-off-by: Akash Gajjar <quic_agajjar@quicinc.com>
This commit is contained in:
parent
841bca1984
commit
8ce353ea46
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
@ -531,8 +531,33 @@ static void _sde_core_uidle_setup_wd(struct sde_kms *kms,
|
||||
uidle->ops.setup_wd_timer(uidle, &wd);
|
||||
}
|
||||
|
||||
static bool _sde_core_uidle_fal10_override(struct sde_kms *kms,
|
||||
struct drm_crtc *crtc)
|
||||
{
|
||||
bool fal10_override, is_vid_mode = false;
|
||||
struct drm_encoder *drm_enc;
|
||||
|
||||
fal10_override = kms->catalog->uidle_cfg.fal10_override;
|
||||
if (!fal10_override)
|
||||
return false;
|
||||
|
||||
drm_for_each_encoder(drm_enc, kms->dev) {
|
||||
if (drm_enc->crtc != crtc)
|
||||
continue;
|
||||
|
||||
if (sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_VIDEO_MODE)) {
|
||||
is_vid_mode = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SDE_EVT32(fal10_override, is_vid_mode);
|
||||
|
||||
return fal10_override && is_vid_mode;
|
||||
}
|
||||
|
||||
static void _sde_core_uidle_setup_cfg(struct sde_kms *kms,
|
||||
enum sde_uidle_state state)
|
||||
struct drm_crtc *crtc, enum sde_uidle_state state)
|
||||
{
|
||||
struct sde_uidle_ctl_cfg cfg;
|
||||
struct sde_hw_uidle *uidle;
|
||||
@ -545,6 +570,7 @@ static void _sde_core_uidle_setup_cfg(struct sde_kms *kms,
|
||||
kms->catalog->uidle_cfg.fal10_exit_cnt;
|
||||
cfg.fal10_exit_danger =
|
||||
kms->catalog->uidle_cfg.fal10_exit_danger;
|
||||
cfg.fal10_override = _sde_core_uidle_fal10_override(kms, crtc);
|
||||
|
||||
SDE_DEBUG("fal10_danger:%d fal10_exit_cnt:%d fal10_exit_danger:%d\n",
|
||||
cfg.fal10_danger, cfg.fal10_exit_cnt, cfg.fal10_exit_danger);
|
||||
@ -584,7 +610,7 @@ static int _sde_core_perf_enable_uidle(struct sde_kms *kms,
|
||||
|
||||
SDE_EVT32(uidle_state);
|
||||
_sde_core_uidle_setup_wd(kms, enable);
|
||||
_sde_core_uidle_setup_cfg(kms, uidle_state);
|
||||
_sde_core_uidle_setup_cfg(kms, crtc, uidle_state);
|
||||
sde_core_perf_uidle_setup_ctl(crtc, true);
|
||||
|
||||
kms->perf.uidle_enabled = enable;
|
||||
|
@ -5579,6 +5579,7 @@ static int _sde_hardware_pre_caps(struct sde_mdss_cfg *sde_cfg, uint32_t hw_rev)
|
||||
sde_cfg->ctl_rev = SDE_CTL_CFG_VERSION_1_0_0;
|
||||
sde_cfg->true_inline_rot_rev = SDE_INLINE_ROT_VERSION_2_0_1;
|
||||
sde_cfg->uidle_cfg.uidle_rev = SDE_UIDLE_VERSION_1_0_4;
|
||||
sde_cfg->uidle_cfg.fal10_override = true;
|
||||
sde_cfg->sid_rev = SDE_SID_VERSION_2_0_0;
|
||||
sde_cfg->mdss_hw_block_size = 0x158;
|
||||
sde_cfg->demura_supported[SSPP_DMA1][0] = BIT(DEMURA_0);
|
||||
|
@ -1340,6 +1340,7 @@ struct sde_mdp_cfg {
|
||||
* @debugfs_ctrl: uidle is enabled/disabled through debugfs
|
||||
* @perf_cntr_en: performance counters are enabled/disabled
|
||||
* @dirty: dirty flag for uidle update
|
||||
* @fal10_override: flag to override fal10 veto
|
||||
*/
|
||||
struct sde_uidle_cfg {
|
||||
SDE_HW_BLK_INFO;
|
||||
@ -1360,6 +1361,7 @@ struct sde_uidle_cfg {
|
||||
bool debugfs_ctrl;
|
||||
bool perf_cntr_en;
|
||||
bool dirty;
|
||||
bool fal10_override;
|
||||
};
|
||||
|
||||
/* struct sde_mdp_cfg : MDP TOP-BLK instance info
|
||||
|
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2022, 2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
*/
|
||||
@ -185,7 +185,7 @@ void sde_hw_uidle_setup_ctl(struct sde_hw_uidle *uidle,
|
||||
FAL10_EXIT_CNT_MSK);
|
||||
|
||||
SDE_REG_WRITE(c, UIDLE_CTL, reg_val);
|
||||
if (!enable)
|
||||
if (!enable || cfg->fal10_override)
|
||||
fal10_veto_regval |= (BIT(31) | BIT(0));
|
||||
|
||||
SDE_REG_WRITE(c, UIDLE_FAL10_VETO_OVERRIDE, fal10_veto_regval);
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2022, 2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
*/
|
||||
@ -37,6 +37,7 @@ struct sde_uidle_ctl_cfg {
|
||||
u32 fal10_exit_cnt;
|
||||
u32 fal10_exit_danger;
|
||||
u32 fal10_danger;
|
||||
bool fal10_override;
|
||||
enum sde_uidle_state uidle_state;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user