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").
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
-- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Felix Imendörffer
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature