8000 Merge tag 'sunxi-drm-fixes-for-4.7-2' of https://git.kernel.org/pub/s… · bsd-unix/linux@39c8859 · GitHub
[go: up one dir, main page]

Skip to content

Commit 39c8859

Browse files
committed
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
2 parents 27c0b74 + 3b8e64f commit 39c8859

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

drivers/gpu/drm/sun4i/sun4i_crtc.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@ static void sun4i_crtc_disable(struct drm_crtc *crtc)
6565
DRM_DEBUG_DRIVER("Disabling the CRTC\n");
6666

6767
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+
}
6876
}
6977

7078
static void sun4i_crtc_enable(struct drm_crtc *crtc)

drivers/gpu/drm/sun4i/sun4i_drv.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ static struct drm_driver sun4i_drv_driver = {
9292
/* Frame Buffer Operations */
9393

9494
/* VBlank Operations */
95-
.get_vblank_counter = drm_vblank_count,
95+
.get_vblank_counter = drm_vblank_no_hw_counter,
9696
.enable_vblank = sun4i_drv_enable_vblank,
9797
.disable_vblank = sun4i_drv_disable_vblank,
9898
};
@@ -310,6 +310,7 @@ static int sun4i_drv_probe(struct platform_device *pdev)
310310

311311
count += sun4i_drv_add_endpoints(&pdev->dev, &match,
312312
pipeline);
313+
of_node_put(pipeline);
313314

314315
DRM_DEBUG_DRIVER("Queued %d outputs on pipeline %d\n",
315316
count, i);

0 commit comments

Comments
 (0)
0