disp: msm: dsi: parse panel ack disabled property for sim panels

Sim panels are not working well with video mode, parse panel ack
disabled property to fix sim video mode identification issue.

Change-Id: Ife3b533d5a6db97618459dacf1f7ce8d3fc896bf
Signed-off-by: Yahui Wang <quic_yahuiw@quicinc.com>
This commit is contained in:
Yahui Wang
2022-03-25 16:24:26 +08:00
parent e84f1b6640
commit 6f22c2c636
3 changed files with 7 additions and 1 deletions

View File

@@ -66,7 +66,8 @@ static bool is_sim_panel(struct dsi_display *display)
if (!display || !display->panel) if (!display || !display->panel)
return false; return false;
return display->panel->te_using_watchdog_timer; return (display->panel->te_using_watchdog_timer ||
display->panel->panel_ack_disabled);
} }
static void dsi_display_mask_ctrl_error_interrupts(struct dsi_display *display, static void dsi_display_mask_ctrl_error_interrupts(struct dsi_display *display,

View File

@@ -1786,6 +1786,9 @@ static int dsi_panel_parse_panel_mode(struct dsi_panel *panel)
"qcom,poms-align-panel-vsync"); "qcom,poms-align-panel-vsync");
panel->panel_mode = panel_mode; panel->panel_mode = panel_mode;
panel->panel_mode_switch_enabled = panel_mode_switch_enabled; panel->panel_mode_switch_enabled = panel_mode_switch_enabled;
panel->panel_ack_disabled = utils->read_bool(utils->data,
"qcom,panel-ack-disabled");
error: error:
return rc; return rc;
} }

View File

@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
/* /*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
*/ */
@@ -215,6 +216,7 @@ struct dsi_panel {
const char *type; const char *type;
struct device_node *panel_of_node; struct device_node *panel_of_node;
struct mipi_dsi_device mipi_device; struct mipi_dsi_device mipi_device;
bool panel_ack_disabled;
struct mutex panel_lock; struct mutex panel_lock;
struct drm_panel drm_panel; struct drm_panel drm_panel;