Merge b42ca34e33 on remote branch

Change-Id: I0f30a40640df3861f3043a2b78bc32318f703d3b
This commit is contained in:
Linux Build Service Account 2025-06-11 08:03:40 -07:00
commit 4e565131e6
4 changed files with 24 additions and 9 deletions

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023-2025 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
*/
@ -1184,6 +1184,7 @@ error_ctrl:
static int dp_display_panel_ready(struct dp_display_private *dp)
{
int rc = 0;
bool skip_op = is_skip_required(&dp->dp_display);
if (dp->dp_display.is_edp) {
rc = dp->power->edp_panel_set_gpio(dp->power, DP_GPIO_EDP_VCC_EN, true);
@ -1201,9 +1202,9 @@ static int dp_display_panel_ready(struct dp_display_private *dp)
}
return -ETIMEDOUT;
}
dp->panel->init(dp->panel, skip_op);
}
if (!dp->dp_display.cont_splash_enabled)
dp->panel->init(dp->panel);
return 0;
}
@ -1247,6 +1248,8 @@ static int dp_display_host_ready(struct dp_display_private *dp)
dp->ctrl->abort(dp->ctrl, false);
dp->aux->init(dp->aux, dp->parser->aux_cfg, skip_op);
dp->panel->init(dp->panel, skip_op);
dp_display_state_add(DP_STATE_READY);
/* log this as it results from user action of cable connection */
DP_INFO("[OK]\n");

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023, 2025 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2012-2021, The Linux Foundation. All rights reserved.
*/
@ -2381,7 +2381,7 @@ error:
return rc;
}
static int dp_panel_init_panel_info(struct dp_panel *dp_panel)
static int dp_panel_init_panel_info(struct dp_panel *dp_panel, bool skip_op)
{
int rc = 0;
struct dp_panel_private *panel;
@ -2393,6 +2393,9 @@ static int dp_panel_init_panel_info(struct dp_panel *dp_panel)
goto end;
}
if (skip_op)
goto end;
panel = container_of(dp_panel, struct dp_panel_private, dp_panel);
pinfo = &dp_panel->pinfo;

View file

@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023, 2025 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
*/
@ -162,7 +162,7 @@ struct dp_panel {
s64 fec_overhead_fp;
int (*init)(struct dp_panel *dp_panel);
int (*init)(struct dp_panel *dp_panel, bool skip_op);
int (*deinit)(struct dp_panel *dp_panel, u32 flags);
int (*hw_cfg)(struct dp_panel *dp_panel, bool enable);
int (*read_sink_caps)(struct dp_panel *dp_panel,

View file

@ -3489,11 +3489,20 @@ static int sde_kms_cont_splash_config(struct msm_kms *kms,
mutex_unlock(&dev->mode_config.mutex);
return -EINVAL;
}
mutex_unlock(&dev->mode_config.mutex);
crtc->state->encoder_mask = (1 << drm_encoder_index(encoder));
/* get supported modes in case of external bridge panels*/
if (!dsi_display->panel->num_timing_nodes) {
connector->funcs->fill_modes(connector,
dev->mode_config.max_width,
dev->mode_config.max_height);
drm_mode = list_first_entry(&connector->modes,
struct drm_display_mode, head);
}
else
drm_mode = _sde_kms_get_splash_mode(sde_kms, connector, state);
drm_mode = _sde_kms_get_splash_mode(sde_kms, connector, state);
mutex_unlock(&dev->mode_config.mutex);
if (!drm_mode) {
SDE_ERROR("drm_mode not found; handoff_type:%d\n",
sde_kms->splash_data.type);