drm/omap: fix race with error_irq
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 26 Feb 2015 13:20:24 +0000 (15:20 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 24 Mar 2015 11:50:57 +0000 (13:50 +0200)
commita36af73f5e825c4c5ae5b11580c24fa7841bd5e2
tree2d111dd92f3d22bfbe944fc763d505c9160ed26b
parent3b143fc80c077be54f8f7859d00f2db79250c884
drm/omap: fix race with error_irq

omapdrm tries to avoid error floods by unregistering the error irq when
an error happens, and then registering the error irq again later.
However, the code is racy, as it sometimes tries to unregister the error
irq when it's already unregistered, leading to WARN().

Also, the code only registers the error irq again when something is done
on that particular output, i.e. if only TV is used to flip the buffers,
and LCD is showing a same buffer, an error on LCD will cause the LCD
error irq to be unregistered and never registered again.

To fix this, let's keep the error irqs always enabled and trust the
DRM_ERROR_RATELIMITED to limit the flood.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/omap_crtc.c