]> git.baikalelectronics.ru Git - kernel.git/commit
drm/irq: Don't disable vblank interrupts when already disabled
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 28 Jan 2015 23:09:24 +0000 (01:09 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 29 Jan 2015 11:50:03 +0000 (12:50 +0100)
commitacab615ed0e89712e1079751aa280c8cdeceefc3
treeda1a79716c856c224be5813b07f6dbe5138e4d36
parent7708c4d9cb4c248c50fa6c796205407bbd890c79
drm/irq: Don't disable vblank interrupts when already disabled

The .enable_vblank() operation is only called when vblank interrupts are
disabled, but no similar check exists when disabling vblank interrupts.
This leads to .disable_vblank() being called with vblank interrupts
already disabled and the device possibly runtime suspended. As the
operation is called with a spinlock held drivers can't runtime resume
the device there and thus must avoid touching device registers in that
case, requiring vblank refcounting.

As the DRM core tracks whether vblank interrupts are enabled just skip
the .disable_vblank() call when the interrupts are already disabled.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_irq.c