Преглед на файлове

disp: msm: dsi: add parsing for RSC solver disable property

For higher refresh, to provide higher transfer time we need to disable
RSC solver in MDP. This can be configured through the panel timing node
devicetree property. This change adds the parsing of the devicetree
property.

Change-Id: I9e708325da35086d2f955cbcc80bb164ccb116cd
Signed-off-by: Satya Rama Aditya Pinapala <[email protected]>
Satya Rama Aditya Pinapala преди 4 години
родител
ревизия
134e62f655
променени са 4 файла, в които са добавени 7 реда и са изтрити 0 реда
  1. 2 0
      msm/dsi/dsi_defs.h
  2. 1 0
      msm/dsi/dsi_drm.c
  3. 2 0
      msm/dsi/dsi_panel.c
  4. 2 0
      msm/msm_drv.h

+ 2 - 0
msm/dsi/dsi_defs.h

@@ -626,6 +626,7 @@ struct dyn_clk_list {
  * @roi_caps:		  Panel ROI capabilities
  * @widebus_support       48 bit wide data bus is supported by hw
  * @allowed_mode_switch: BIT mask to mark allowed mode switches
+ * @disable_rsc_solver: Dynamically disable RSC solver for the timing mode.
  */
 struct dsi_display_mode_priv_info {
 	struct dsi_panel_cmd_set cmd_sets[DSI_CMD_SET_MAX];
@@ -651,6 +652,7 @@ struct dsi_display_mode_priv_info {
 	struct msm_roi_caps roi_caps;
 	bool widebus_support;
 	u32 allowed_mode_switch;
+	bool disable_rsc_solver;
 };
 
 /**

+ 1 - 0
msm/dsi/dsi_drm.c

@@ -574,6 +574,7 @@ int dsi_conn_get_mode_info(struct drm_connector *connector,
 	mode_info->panel_mode_caps = dsi_mode->panel_mode_caps;
 	mode_info->mdp_transfer_time_us =
 		dsi_mode->priv_info->mdp_transfer_time_us;
+	mode_info->disable_rsc_solver = dsi_mode->priv_info->disable_rsc_solver;
 
 	memcpy(&mode_info->topology, &dsi_mode->priv_info->topology,
 			sizeof(struct msm_display_topology));

+ 2 - 0
msm/dsi/dsi_panel.c

@@ -798,6 +798,8 @@ static int dsi_panel_parse_timing(struct dsi_mode_info *mode,
 	else
 		display_mode->priv_info->mdp_transfer_time_us = 0;
 
+	priv_info->disable_rsc_solver = utils->read_bool(utils->data, "qcom,disable-rsc-solver");
+
 	rc = utils->read_u32(utils->data,
 				"qcom,mdss-dsi-panel-framerate",
 				&mode->refresh_rate);

+ 2 - 0
msm/msm_drv.h

@@ -709,6 +709,7 @@ struct msm_display_topology {
  * @allowed_mode_switches: bit mask to indicate supported mode switch.
  * @bit_clk_rates: list of supported bit clock rates
  * @bit_clk_count: number of supported bit clock rates
+ * @disable_rsc_solver: Dynamically disable RSC solver for the timing mode due to lower bitclk rate.
  */
 struct msm_mode_info {
 	uint32_t frame_rate;
@@ -727,6 +728,7 @@ struct msm_mode_info {
 	u32 allowed_mode_switches;
 	u32 *bit_clk_rates;
 	u32 bit_clk_count;
+	bool disable_rsc_solver;
 };
 
 /**