One needs to set "(struct drm_device *)->irq_enabled = true" to signal drm core to enable vblank interrupts after the hardware has been initialized. Correspondingly, one needs to disable vblank interrupts by setting "(struct drm_device *)->irq_enabled = false" at the beginning of the de-initializing routine. Signed-off-by: Ayan Kumar halder <ayan.halder@xxxxxxx> --- drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c index 7b5cde14e3ba..b4fd8ee0d05f 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c +++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c @@ -204,6 +204,8 @@ struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev) if (err) goto uninstall_irq; + drm->irq_enabled = true; + err = drm_dev_register(drm, 0); if (err) goto uninstall_irq; @@ -211,6 +213,7 @@ struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev) return kms; uninstall_irq: + drm->irq_enabled = false; drm_irq_uninstall(drm); cleanup_mode_config: drm_mode_config_cleanup(drm); @@ -225,6 +228,7 @@ void komeda_kms_detach(struct komeda_kms_dev *kms) struct drm_device *drm = &kms->base; struct komeda_dev *mdev = drm->dev_private; + drm->irq_enabled = false; mdev->funcs->disable_irq(mdev); drm_dev_unregister(drm); drm_irq_uninstall(drm); -- 2.21.0 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel