mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-06 03:45:24 -04:00
disp: msm: dp: handle panel_init when host is ready
Currently, panel_init is getting executed even when host is already ready. Handle panel_init such that it will be called only as part of host ready. Handle continuous splash case as well. Change-Id: Id022fed099e1e1a87282c58bead839e68f502098 Signed-off-by: Nilesh Laad <quic_nlaad@quicinc.com> Signed-off-by: Prahlad Valluru <quic_vvalluru@quicinc.com>
This commit is contained in:
parent
b19d4a3a8e
commit
95cae124f2
3 changed files with 13 additions and 7 deletions
|
|
@ -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.
|
||||
*/
|
||||
|
||||
|
|
@ -1185,6 +1185,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);
|
||||
|
|
@ -1202,9 +1203,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;
|
||||
}
|
||||
|
|
@ -1248,6 +1249,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");
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue