From 9cf9c8e99b29d0d8bbe0cc93ee66e8daa19c18b2 Mon Sep 17 00:00:00 2001 From: Lipsa Rout Date: Fri, 27 Mar 2020 16:22:14 +0530 Subject: [PATCH] disp: msm: dsi: Fix the total number of modes calculation This change updates the parsing of timing nodes to check the mode of operation as video or command. In command mode, for each timing node, num of supported dfps rate is always one. Accordingly, update the num_dfps_rate to 1 for command mode. Change-Id: I5098c7e0d4d2320609d6e10031eaef78c1d8b3c1 Signed-off-by: Lipsa Rout Signed-off-by: Satya Rama Aditya Pinapala --- msm/dsi/dsi_display.c | 4 ++-- msm/dsi/dsi_panel.c | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index b94d733cb6..8b8c4d6f9b 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -6130,8 +6130,6 @@ int dsi_display_get_modes(struct dsi_display *display, dyn_clk_caps = &(display->panel->dyn_clk_caps); - num_dfps_rates = !dfps_caps.dfps_support ? 1 : dfps_caps.dfps_list_len; - timing_mode_count = display->panel->num_timing_nodes; for (mode_idx = 0; mode_idx < timing_mode_count; mode_idx++) { @@ -6158,6 +6156,8 @@ int dsi_display_get_modes(struct dsi_display *display, /* Setup widebus support */ display_mode.priv_info->widebus_support = ctrl->ctrl->hw.widebus_support; + num_dfps_rates = ((!dfps_caps.dfps_support || + is_cmd_mode) ? 1 : dfps_caps.dfps_list_len); /* Calculate dsi frame transfer time */ if (is_cmd_mode) { diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index a04e4ddef5..6c2fe136f0 100644 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -3425,7 +3425,6 @@ int dsi_panel_get_mode_count(struct dsi_panel *panel) int num_dfps_rates, num_bit_clks; int num_video_modes = 0, num_cmd_modes = 0; int count, rc = 0; - void *utils_data = NULL; if (!panel) { DSI_ERR("invalid params\n"); @@ -3462,10 +3461,9 @@ int dsi_panel_get_mode_count(struct dsi_panel *panel) panel->num_timing_nodes = count; dsi_for_each_child_node(timings_np, child_np) { - utils_data = child_np; - if (utils->read_bool(utils->data, "qcom,mdss-dsi-video-mode")) + if (utils->read_bool(child_np, "qcom,mdss-dsi-video-mode")) num_video_modes++; - else if (utils->read_bool(utils->data, + else if (utils->read_bool(child_np, "qcom,mdss-dsi-cmd-mode")) num_cmd_modes++; else if (panel->panel_mode == DSI_OP_VIDEO_MODE)