drm/msm/dsi-staging: update frame transfer time calculations

Change updates frame transfer time calculations. Frame threshold
is provided as input to decide on the final transfer time.
Panel dsi clock node followed by mdp transfer time node
will take priority in selecting final transfer time than frame
threshold time.

Change-Id: I40c3abfc635cd9b338b705535612ac32e047ce6e
Signed-off-by: Vara Reddy <varar@codeaurora.org>
This commit is contained in:
Vara Reddy
2019-06-12 17:28:42 -07:00
rodzic 9d87e36a77
commit 98ac941a1b
5 zmienionych plików z 28 dodań i 13 usunięć

Wyświetl plik

@@ -5539,6 +5539,7 @@ int dsi_display_get_modes(struct dsi_display *display,
struct dsi_display_mode **out_modes)
{
struct dsi_dfps_capabilities dfps_caps;
struct dsi_display_ctrl *ctrl;
u32 num_dfps_rates, panel_mode_count, total_mode_count;
u32 mode_idx, array_idx = 0;
int i, rc = -EINVAL;
@@ -5549,6 +5550,7 @@ int dsi_display_get_modes(struct dsi_display *display,
}
*out_modes = NULL;
ctrl = &display->ctrl[0];
mutex_lock(&display->display_lock);
@@ -5582,6 +5584,7 @@ int dsi_display_get_modes(struct dsi_display *display,
for (mode_idx = 0; mode_idx < panel_mode_count; mode_idx++) {
struct dsi_display_mode panel_mode;
int topology_override = NO_OVERRIDE;
u32 frame_threshold_us = ctrl->ctrl->frame_threshold_time_us;
if (display->cmdline_timing == mode_idx)
topology_override = display->cmdline_topology;
@@ -5601,7 +5604,7 @@ int dsi_display_get_modes(struct dsi_display *display,
if (display->panel->panel_mode == DSI_OP_CMD_MODE) {
dsi_panel_calc_dsi_transfer_time(
&display->panel->host_config,
&panel_mode.timing);
&panel_mode, frame_threshold_us);
panel_mode.priv_info->dsi_transfer_time_us =
panel_mode.timing.dsi_transfer_time_us;
panel_mode.priv_info->min_dsi_clk_hz =