History

Merge tag 'sunxi-drm-fixes-for-4.7-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into drm-fixes

Allwinner DRM driver fixes for 4.7, take 2 A new set of fixes for the sun4i driver, mostly related to vblank handling, and a minor fix to release a reference on the device tree nodes we're parsing in the probe logic. * tag 'sunxi-drm-fixes-for-4.7-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: gpu: drm: sun4i_drv: add missing of_node_put after calling of_parse_phandle drm/sun4i: Send vblank event when the CRTC is disabled drm/sun4i: Report proper vblank

Dave Airlie committed 10 years ago

Commit 39c88592 parents 27c0b74 3b8e64f2 files · +10 −1Browse files

Unified · Split

2 files
  1. drivers/gpu/drm/sun4i/sun4i_crtc.c +8 −0
  2. drivers/gpu/drm/sun4i/sun4i_drv.c +2 −1
drivers/gpu/drm/sun4i/sun4i_crtc.c+8−0
@@ -65,6 +65,14 @@ static void sun4i_crtc_disable(struct drm_crtc *crtc) · 64 unmodified lines
65 DRM_DEBUG_DRIVER("Disabling the CRTC\n");65 DRM_DEBUG_DRIVER("Disabling the CRTC\n");
66 66
67 sun4i_tcon_disable(drv->tcon);67 sun4i_tcon_disable(drv->tcon);
68
69 if (crtc->state->event && !crtc->state->active) {
70 spin_lock_irq(&crtc->dev->event_lock);
71 drm_crtc_send_vblank_event(crtc, crtc->state->event);
72 spin_unlock_irq(&crtc->dev->event_lock);
73
74 crtc->state->event = NULL;
75 }
68}76}
69 77
70static void sun4i_crtc_enable(struct drm_crtc *crtc)78static void sun4i_crtc_enable(struct drm_crtc *crtc)
drivers/gpu/drm/sun4i/sun4i_drv.c+2−1
@@ -92,7 +92,7 @@ static struct drm_driver sun4i_drv_driver = { · 91 unmodified lines
92 /* Frame Buffer Operations */92 /* Frame Buffer Operations */
93 93
94 /* VBlank Operations */94 /* VBlank Operations */
95 .get_vblank_counter = drm_vblank_count,95 .get_vblank_counter = drm_vblank_no_hw_counter,
96 .enable_vblank = sun4i_drv_enable_vblank,96 .enable_vblank = sun4i_drv_enable_vblank,
97 .disable_vblank = sun4i_drv_disable_vblank,97 .disable_vblank = sun4i_drv_disable_vblank,
98};98};
@@ -310,6 +310,7 @@ static int sun4i_drv_probe(struct platform_device *pdev) · 211 unmodified lines
310 310
311 count += sun4i_drv_add_endpoints(&pdev->dev, &match,311 count += sun4i_drv_add_endpoints(&pdev->dev, &match,
312 pipeline);312 pipeline);
313 of_node_put(pipeline);
313 314
314 DRM_DEBUG_DRIVER("Queued %d outputs on pipeline %d\n",315 DRM_DEBUG_DRIVER("Queued %d outputs on pipeline %d\n",
315 count, i);316 count, i);