Browse Source

Merge "disp: msm: sde: do on demand registering for te irq"

qctecmdr 4 năm trước cách đây
mục cha
commit
de293ac6a9
1 tập tin đã thay đổi với 13 bổ sung2 xóa
  1. 13 2
      msm/dsi/dsi_display.c

+ 13 - 2
msm/dsi/dsi_display.c

@@ -895,6 +895,15 @@ static int dsi_display_status_bta_request(struct dsi_display *display)
 	return rc;
 }
 
+static void dsi_display_release_te_irq(struct dsi_display *display)
+{
+	int te_irq = 0;
+
+	te_irq = gpio_to_irq(display->disp_te_gpio);
+	if (te_irq)
+		free_irq(te_irq, display);
+}
+
 static int dsi_display_status_check_te(struct dsi_display *display,
 		int rechecks)
 {
@@ -904,6 +913,9 @@ static int dsi_display_status_check_te(struct dsi_display *display,
 	if (!rechecks)
 		return rc;
 
+	/* register te irq handler */
+	dsi_display_register_te_irq(display);
+
 	dsi_display_change_te_irq_status(display, true);
 
 	for (i = 0; i < rechecks; i++) {
@@ -917,6 +929,7 @@ static int dsi_display_status_check_te(struct dsi_display *display,
 	}
 
 	dsi_display_change_te_irq_status(display, false);
+	dsi_display_release_te_irq(display);
 
 	return rc;
 }
@@ -5648,8 +5661,6 @@ static int dsi_display_bind(struct device *dev,
 		}
 	}
 
-	/* register te irq handler */
-	dsi_display_register_te_irq(display);
 
 	msm_register_vm_event(master, dev, &vm_event_ops, (void *)display);