|
@@ -3478,9 +3478,20 @@ int dsi_panel_get_mode_count(struct dsi_panel *panel)
|
|
num_bit_clks = !panel->dyn_clk_caps.dyn_clk_support ? 1 :
|
|
num_bit_clks = !panel->dyn_clk_caps.dyn_clk_support ? 1 :
|
|
panel->dyn_clk_caps.bit_clk_list_len;
|
|
panel->dyn_clk_caps.bit_clk_list_len;
|
|
|
|
|
|
- /* Inflate num_of_modes by fps and bit clks in dfps */
|
|
|
|
- panel->num_display_modes = (num_cmd_modes * num_bit_clks) +
|
|
|
|
- (num_video_modes * num_bit_clks * num_dfps_rates);
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Inflate num_of_modes by fps and bit clks in dfps.
|
|
|
|
+ * Single command mode for video mode panels supporting
|
|
|
|
+ * panel operating mode switch.
|
|
|
|
+ */
|
|
|
|
+ num_video_modes = num_video_modes * num_bit_clks * num_dfps_rates;
|
|
|
|
+
|
|
|
|
+ if ((panel->panel_mode == DSI_OP_VIDEO_MODE) &&
|
|
|
|
+ (panel->panel_mode_switch_enabled))
|
|
|
|
+ num_cmd_modes = 1;
|
|
|
|
+ else
|
|
|
|
+ num_cmd_modes = num_cmd_modes * num_bit_clks;
|
|
|
|
+
|
|
|
|
+ panel->num_display_modes = num_video_modes + num_cmd_modes;
|
|
|
|
|
|
error:
|
|
error:
|
|
return rc;
|
|
return rc;
|