1
0

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

Register and unregister te irq only during a ping
pong timeout to check the health of panel.

Change-Id: I38d7f178b55d252840aad6fae08b5f34296d75ab
Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
Este cometimento está contido em:
Shashank Babu Chinta Venkata
2021-03-29 20:05:01 -07:00
ascendente de7a10fd68
cometimento b8223cc869

Ver ficheiro

@@ -869,6 +869,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)
{
@@ -878,6 +887,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++) {
@@ -891,6 +903,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;
}
@@ -5558,8 +5571,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);