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

Reply via email to