瀏覽代碼

Merge "disp: msm: dsi: fix gpio warning message"

qctecmdr 4 年之前
父節點
當前提交
9685e229a2
共有 2 個文件被更改,包括 13 次插入7 次删除
  1. 9 7
      msm/dsi/dsi_display.c
  2. 4 0
      msm/dsi/dsi_panel.c

+ 9 - 7
msm/dsi/dsi_display.c

@@ -4069,10 +4069,8 @@ static bool dsi_display_validate_panel_resources(struct dsi_display *display)
 			DSI_ERR("invalid reset gpio for the panel\n");
 			return false;
 		}
-	} else {
-		display->panel->power_info.count = 0;
-		DSI_DEBUG("no dir set and no request for gpios in sim panel\n");
 	}
+
 	return true;
 }
 
@@ -4117,8 +4115,10 @@ static int dsi_display_res_init(struct dsi_display *display)
 
 	display->panel->te_using_watchdog_timer |= display->sw_te_using_wd;
 
-	if (!dsi_display_validate_panel_resources(display))
-		goto error_ctrl_put;
+	if (!dsi_display_validate_panel_resources(display)) {
+		rc = -EINVAL;
+		goto error_panel_put;
+	}
 
 	display_for_each_ctrl(i, display) {
 		struct msm_dsi_phy *phy = display->ctrl[i].phy;
@@ -4145,13 +4145,13 @@ static int dsi_display_res_init(struct dsi_display *display)
 	rc = dsi_display_parse_lane_map(display);
 	if (rc) {
 		DSI_ERR("Lane map not found, rc=%d\n", rc);
-		goto error_ctrl_put;
+		goto error_panel_put;
 	}
 
 	rc = dsi_display_clocks_init(display);
 	if (rc) {
 		DSI_ERR("Failed to parse clock data, rc=%d\n", rc);
-		goto error_ctrl_put;
+		goto error_panel_put;
 	}
 
 	/**
@@ -4167,6 +4167,8 @@ static int dsi_display_res_init(struct dsi_display *display)
 	}
 
 	return 0;
+error_panel_put:
+	dsi_panel_put(display->panel);
 error_ctrl_put:
 	for (i = i - 1; i >= 0; i--) {
 		ctrl = &display->ctrl[i];

+ 4 - 0
msm/dsi/dsi_panel.c

@@ -258,6 +258,9 @@ static int dsi_panel_reset(struct dsi_panel *panel)
 	struct dsi_panel_reset_config *r_config = &panel->reset_config;
 	int i;
 
+	if (!gpio_is_valid(r_config->reset_gpio))
+		goto skip_reset_gpio;
+
 	if (gpio_is_valid(panel->reset_config.disp_en_gpio)) {
 		rc = gpio_direction_output(panel->reset_config.disp_en_gpio, 1);
 		if (rc) {
@@ -285,6 +288,7 @@ static int dsi_panel_reset(struct dsi_panel *panel)
 				(r_config->sequence[i].sleep_ms * 1000) + 100);
 	}
 
+skip_reset_gpio:
 	if (gpio_is_valid(panel->bl_config.en_gpio)) {
 		rc = gpio_direction_output(panel->bl_config.en_gpio, 1);
 		if (rc)