Merge c84b917f06 on remote branch
Change-Id: Ib05d1607188c040afe8553bd8405098bd40dc317
This commit is contained in:
@@ -1584,8 +1584,9 @@ static void _sde_crtc_program_lm_output_roi(struct drm_crtc *crtc)
|
||||
|
||||
lm_roi = &cstate->lm_roi[lm_idx];
|
||||
hw_lm = sde_crtc->mixers[lm_idx].hw_lm;
|
||||
if (!sde_crtc->mixers_swapped)
|
||||
right_mixer = lm_idx % MAX_MIXERS_PER_LAYOUT;
|
||||
right_mixer = lm_idx % MAX_MIXERS_PER_LAYOUT;
|
||||
if (sde_crtc->mixers_swapped)
|
||||
right_mixer = !right_mixer;
|
||||
|
||||
if (lm_roi->w != hw_lm->cfg.out_width ||
|
||||
lm_roi->h != hw_lm->cfg.out_height ||
|
||||
|
||||
@@ -3385,8 +3385,8 @@ static void sde_encoder_virt_disable(struct drm_encoder *drm_enc)
|
||||
}
|
||||
|
||||
sde_enc = to_sde_encoder_virt(drm_enc);
|
||||
if (!sde_enc->cur_master) {
|
||||
SDE_ERROR("Invalid cur_master\n");
|
||||
if (!sde_enc->cur_master || !sde_enc->cur_master->connector) {
|
||||
SDE_ERROR("Invalid params\n");
|
||||
return;
|
||||
}
|
||||
sde_conn = to_sde_connector(sde_enc->cur_master->connector);
|
||||
@@ -3478,8 +3478,7 @@ static void sde_encoder_virt_disable(struct drm_encoder *drm_enc)
|
||||
sde_encoder_resource_control(drm_enc, SDE_ENC_RC_EVENT_STOP);
|
||||
|
||||
/* reset connector topology name property */
|
||||
if (sde_enc->cur_master && sde_enc->cur_master->connector &&
|
||||
sde_enc->crtc && sde_enc->crtc->state->active_changed) {
|
||||
if (sde_enc->crtc && sde_enc->crtc->state->active_changed) {
|
||||
ret = sde_rm_update_topology(&sde_kms->rm,
|
||||
sde_enc->cur_master->connector->state, NULL);
|
||||
if (ret) {
|
||||
|
||||
@@ -1949,12 +1949,14 @@ static void _sde_encoder_phys_wb_reset_state(struct sde_encoder_phys *phys_enc)
|
||||
phys_enc->hw_cdm = NULL;
|
||||
phys_enc->hw_ctl = NULL;
|
||||
phys_enc->in_clone_mode = false;
|
||||
kfree(wb_dev->modes);
|
||||
wb_dev->modes = NULL;
|
||||
wb_dev->count_modes = 0;
|
||||
atomic_set(&phys_enc->pending_kickoff_cnt, 0);
|
||||
atomic_set(&phys_enc->pending_retire_fence_cnt, 0);
|
||||
atomic_set(&phys_enc->pending_ctl_start_cnt, 0);
|
||||
mutex_lock(&wb_dev->wb_lock);
|
||||
kfree(wb_dev->modes);
|
||||
wb_dev->modes = NULL;
|
||||
wb_dev->count_modes = 0;
|
||||
mutex_unlock(&wb_dev->wb_lock);
|
||||
}
|
||||
|
||||
static int _sde_encoder_phys_wb_wait_for_idle(struct sde_encoder_phys *phys_enc, bool force_wait)
|
||||
|
||||
@@ -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-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
@@ -2252,7 +2252,7 @@ int sde_rm_cont_splash_res_init(struct msm_drm_private *priv,
|
||||
struct sde_mdss_cfg *cat)
|
||||
{
|
||||
struct sde_rm_hw_iter iter_c;
|
||||
int index = 0, ctl_top_cnt;
|
||||
int index = 0, ctl_top_cnt, splash_disp_count = 0;
|
||||
struct sde_kms *sde_kms = NULL;
|
||||
struct sde_hw_mdp *hw_mdp;
|
||||
struct sde_splash_display *splash_display;
|
||||
@@ -2280,7 +2280,7 @@ int sde_rm_cont_splash_res_init(struct msm_drm_private *priv,
|
||||
|
||||
sde_rm_init_hw_iter(&iter_c, 0, SDE_HW_BLK_CTL);
|
||||
while (_sde_rm_get_hw_locked(rm, &iter_c)
|
||||
&& (index < splash_data->num_splash_displays)) {
|
||||
&& (splash_disp_count < splash_data->num_splash_displays)) {
|
||||
struct sde_hw_ctl *ctl = to_sde_hw_ctl(iter_c.blk->hw);
|
||||
|
||||
if (!ctl->ops.get_ctl_intf) {
|
||||
@@ -2290,7 +2290,8 @@ int sde_rm_cont_splash_res_init(struct msm_drm_private *priv,
|
||||
|
||||
intf_sel = ctl->ops.get_ctl_intf(ctl);
|
||||
if (intf_sel) {
|
||||
splash_display = &splash_data->splash_display[index];
|
||||
splash_display =
|
||||
&splash_data->splash_display[index ? 1 : 0];
|
||||
SDE_DEBUG("finding resources for display=%d ctl=%d\n",
|
||||
index, iter_c.blk->id - CTL_0);
|
||||
|
||||
@@ -2299,6 +2300,7 @@ int sde_rm_cont_splash_res_init(struct msm_drm_private *priv,
|
||||
splash_display->cont_splash_enabled = true;
|
||||
splash_display->ctl_ids[splash_display->ctl_cnt++] =
|
||||
iter_c.blk->id;
|
||||
splash_disp_count++;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
@@ -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-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2009-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
@@ -2522,6 +2522,7 @@ int sde_dbg_debugfs_register(struct device *dev)
|
||||
debugfs_create_file("recovery_reg", 0400, debugfs_root, NULL, &sde_recovery_reg_fops);
|
||||
|
||||
debugfs_create_u32("enable", 0600, debugfs_root, &(sde_dbg_base.evtlog->enable));
|
||||
debugfs_create_u32("reglog_enable", 0600, debugfs_root, &(sde_dbg_base.reglog->enable));
|
||||
debugfs_create_u32("panic", 0600, debugfs_root, &sde_dbg_base.panic_on_err);
|
||||
debugfs_create_u32("dump_mode", 0600, debugfs_root, &sde_dbg_base.dump_option);
|
||||
debugfs_create_u64("reg_dump_blk_mask", 0600, debugfs_root, &sde_dbg_base.dump_blk_mask);
|
||||
|
||||
@@ -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-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
@@ -100,7 +100,7 @@ void sde_reglog_log(u8 blk_id, u32 val, u32 addr)
|
||||
struct sde_dbg_reglog *reglog = sde_dbg_base_reglog;
|
||||
int index;
|
||||
|
||||
if (!reglog)
|
||||
if (!reglog || !reglog->enable)
|
||||
return;
|
||||
|
||||
index = abs(atomic64_inc_return(®log->curr) % SDE_REGLOG_ENTRY);
|
||||
@@ -250,6 +250,11 @@ struct sde_dbg_reglog *sde_reglog_init(void)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
atomic64_set(®log->curr, 0);
|
||||
#if IS_ENABLED(CONFIG_DEBUG_FS)
|
||||
reglog->enable = true;
|
||||
#else
|
||||
reglog->enable = false;
|
||||
#endif
|
||||
|
||||
return reglog;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user