Hi
Am 29.07.21 um 21:18 schrieb Thomas Zimmermann:
Hi
Am 28.07.21 um 22:11 schrieb Sam Ravnborg:
Hi Dan,
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.
It does! With the irq_enabled line added everything is looking good.
Are you sure, you're testing with the latest drm-misc-next or drm-tip? Because using irq_enabled is deprecated and the flag was recently replaced by commit 1e4cd78ed493 ("drm: Don't test for IRQ support in VBLANK ioctls").
For reference, the cover letter lists
base-commit: 2bda1ca4d4acb4892556fec3a7ea1f02afcd40bb
which is a recent drm-tip created on July 25.
Best regards Thomas
Best regards Thomas
Great, thanks for testing.
Thomas - I assume you will do a re-spin and there is likely some fixes for the applied IRQ conversions too.
Note - irq_enabled must be cleared if request_irq fails. I did not include this in the testing here.
Sam