diff mbox

[18/23] drm: omapdrm: panel-dsi-cm: use threaded irq handler

Message ID 1457455195-1938-19-git-send-email-sre@kernel.org (mailing list archive)
State New, archived
Headers show

Commit Message

Sebastian Reichel March 8, 2016, 4:39 p.m. UTC
Use threaded irq handler for the tearing effect gpio,
since it updates the display content, which requires
too much time for a fastpath irq.

Signed-off-by: Sebastian Reichel <sre@kernel.org>
---
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Tomi Valkeinen May 10, 2016, 12:19 p.m. UTC | #1
On 08/03/16 18:39, Sebastian Reichel wrote:
> Use threaded irq handler for the tearing effect gpio,
> since it updates the display content, which requires
> too much time for a fastpath irq.
> 
> Signed-off-by: Sebastian Reichel <sre@kernel.org>
> ---
>  drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> index 768e92d1ec8b..8316b6c2d8aa 100644
> --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> @@ -1317,9 +1317,9 @@ static int dsicm_probe(struct platform_device *pdev)
>  			return r;
>  		}
>  
> -		r = devm_request_irq(dev, gpio_to_irq(ddata->ext_te_gpio),
> -				dsicm_te_isr,
> -				IRQF_TRIGGER_RISING,
> +		r = devm_request_threaded_irq(dev, gpio_to_irq(ddata->ext_te_gpio),
> +				NULL, dsicm_te_isr,
> +				IRQF_TRIGGER_RISING | IRQF_ONESHOT,
>  				"taal vsync", ddata);
>  
>  		if (r) {
> 

I don't have a problem with moving to threaded irq, but it does make me
wonder, what's happening there that's taking so much time? I think it
should be just writing the configs to the registers and starting the
transfer.

 Tomi
diff mbox

Patch

diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
index 768e92d1ec8b..8316b6c2d8aa 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
@@ -1317,9 +1317,9 @@  static int dsicm_probe(struct platform_device *pdev)
 			return r;
 		}
 
-		r = devm_request_irq(dev, gpio_to_irq(ddata->ext_te_gpio),
-				dsicm_te_isr,
-				IRQF_TRIGGER_RISING,
+		r = devm_request_threaded_irq(dev, gpio_to_irq(ddata->ext_te_gpio),
+				NULL, dsicm_te_isr,
+				IRQF_TRIGGER_RISING | IRQF_ONESHOT,
 				"taal vsync", ddata);
 
 		if (r) {