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