diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-07-27 04:06:46 +0200 |
---|---|---|
committer | Stefan Agner <stefan@agner.ch> | 2020-07-28 17:21:24 +0200 |
commit | b9f5937680a8f1c14aea481358af3504c8b94c3f (patch) | |
tree | 9cae5c4b6be145cc1a03ce11479d66d3fd1f9f75 /drivers/gpu/drm/mxsfb/mxsfb_kms.c | |
parent | drm: mxsfb: Don't touch AXI clock in IRQ context (diff) | |
download | linux-b9f5937680a8f1c14aea481358af3504c8b94c3f.tar.xz linux-b9f5937680a8f1c14aea481358af3504c8b94c3f.zip |
drm: mxsfb: Enable vblank handling
Enable vblank handling when the CRTC is turned on and disable it when it
is turned off. This requires moving vblank init after the KMS pipeline
initialisation, otherwise drm_vblank_init() gets called with 0 CRTCs.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Stefan Agner <stefan@agner.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20200727020654.8231-15-laurent.pinchart@ideasonboard.com
Diffstat (limited to 'drivers/gpu/drm/mxsfb/mxsfb_kms.c')
-rw-r--r-- | drivers/gpu/drm/mxsfb/mxsfb_kms.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c index 3e118848a083..70fd372952e1 100644 --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c @@ -322,8 +322,10 @@ static void mxsfb_crtc_atomic_enable(struct drm_crtc *crtc, dma_addr_t paddr; pm_runtime_get_sync(drm->dev); - mxsfb_enable_axi_clk(mxsfb); + + drm_crtc_vblank_on(crtc); + mxsfb_crtc_mode_set_nofb(mxsfb); /* Write cur_buf as well to avoid an initial corrupt frame */ @@ -353,6 +355,8 @@ static void mxsfb_crtc_atomic_disable(struct drm_crtc *crtc, } spin_unlock_irq(&drm->event_lock); + drm_crtc_vblank_off(crtc); + mxsfb_disable_axi_clk(mxsfb); pm_runtime_put_sync(drm->dev); } |