diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c index 5ea8db74418a..4fa62404585b 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -798,7 +798,8 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) * 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); + if (vc4->hvs) + vc4_hvs_unmask_underrun(dev, vc4_crtc->channel); } spin_unlock_irqrestore(&dev->event_lock, flags); } diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c index 3360a8343e5e..c52ae7fdcc36 100644 --- a/drivers/gpu/drm/vc4/vc4_kms.c +++ b/drivers/gpu/drm/vc4/vc4_kms.c @@ -153,7 +153,7 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) struct vc4_crtc *vc4_crtc; int i; - for (i = 0; i < dev->mode_config.num_crtc; i++) { + for (i = 0; vc4->hvs && i < dev->mode_config.num_crtc; i++) { if (!state->crtcs[i].ptr || !state->crtcs[i].commit) continue;