[PATCH 03/14] drm/atmel-hlcdc: Convert to Linux IRQ interfaces

Sam Ravnborg sam at ravnborg.org
Wed Jul 28 12:08:32 PDT 2021


Hi Dan,

> >>
> >> Just to be sure...
> >> Can you confirm that vbltest is working OK *before* this patch?
> > 
> > Yes, can you please verify that it regressed. If so, this would mean 
> > that the driver misses vblank interrupts with the patch applied.
> 
> Yes, unfortunately the vbltest works before this patch, but fails after 
> this patch is applied.

I think I got it - we need to set irq_enabled to true.
The documentation says so:
"
	 * @irq_enabled:
	 *
	 * Indicates that interrupt handling is enabled, specifically vblank
	 * handling. Drivers which don't use drm_irq_install() need to set this
	 * to true manually.
"

Can you try to add the following line:


+static int atmel_hlcdc_dc_irq_install(struct drm_device *dev, unsigned int irq)
+{
+       int ret;
+
+       if (irq == IRQ_NOTCONNECTED)
+               return -ENOTCONN;
+

	dev->irq_enabled = true;		<= THIS LINE


+       atmel_hlcdc_dc_irq_disable(dev);
+
+       ret = request_irq(irq, atmel_hlcdc_dc_irq_handler, 0, dev->driver->name, dev);
+       if (ret)
+               return ret;

I hope this fixes it.

	Sam



More information about the linux-arm-kernel mailing list