From 6f22c2c6367a9b3448f95f1327ad3a88430366cb Mon Sep 17 00:00:00 2001 From: Yahui Wang Date: Fri, 25 Mar 2022 16:24:26 +0800 Subject: [PATCH] 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 --- msm/dsi/dsi_display.c | 3 ++- msm/dsi/dsi_panel.c | 3 +++ msm/dsi/dsi_panel.h | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index f1cc08b537..8f6603f368 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -66,7 +66,8 @@ static bool is_sim_panel(struct dsi_display *display) if (!display || !display->panel) 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, diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index 39eb8ee5d3..5f2f267e37 100644 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -1786,6 +1786,9 @@ static int dsi_panel_parse_panel_mode(struct dsi_panel *panel) "qcom,poms-align-panel-vsync"); panel->panel_mode = panel_mode; panel->panel_mode_switch_enabled = panel_mode_switch_enabled; + + panel->panel_ack_disabled = utils->read_bool(utils->data, + "qcom,panel-ack-disabled"); error: return rc; } diff --git a/msm/dsi/dsi_panel.h b/msm/dsi/dsi_panel.h index e3000cb972..92645302b5 100644 --- a/msm/dsi/dsi_panel.h +++ b/msm/dsi/dsi_panel.h @@ -1,5 +1,6 @@ /* 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. */ @@ -215,6 +216,7 @@ struct dsi_panel { const char *type; struct device_node *panel_of_node; struct mipi_dsi_device mipi_device; + bool panel_ack_disabled; struct mutex panel_lock; struct drm_panel drm_panel;