drm/vc4: Report HVS underrun errors
Add a debugfs entry and helper for reporting HVS underrun errors as well as helpers for masking and unmasking the underrun interrupts. Add an IRQ handler and initial IRQ configuration. Rework related register definitions to take the channel number. Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com> Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190220155124.25022-2-paul.kocialkowski@bootlin.com
This commit is contained in:

committed by
Maxime Ripard

parent
dbfbe717cc
commit
531a1b622d
@@ -834,6 +834,14 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc)
|
||||
drm_crtc_send_vblank_event(crtc, vc4_crtc->event);
|
||||
vc4_crtc->event = NULL;
|
||||
drm_crtc_vblank_put(crtc);
|
||||
|
||||
/* Wait for the page flip to unmask the underrun to ensure that
|
||||
* the display list was updated by the hardware. Before that
|
||||
* happens, the HVS will be using the previous display list with
|
||||
* the CRTC and encoder already reconfigured, leading to
|
||||
* underruns. This can be seen when reconfiguring the CRTC.
|
||||
*/
|
||||
vc4_hvs_unmask_underrun(dev, vc4_crtc->channel);
|
||||
}
|
||||
spin_unlock_irqrestore(&dev->event_lock, flags);
|
||||
}
|
||||
|
Reference in New Issue
Block a user