mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 12:41:55 +00:00
staging: drm/imx: don't drop crtc offsets when doing pageflip
CRTC offsets are only set with the initial modeset, any subseqent pageflips assume them to be kept the same, so we need to remember the current state until another modeset changes it. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bc2b067aab
commit
32f7110623
@ -218,7 +218,8 @@ static irqreturn_t ipu_irq_handler(int irq, void *dev_id)
|
|||||||
|
|
||||||
if (ipu_crtc->newfb) {
|
if (ipu_crtc->newfb) {
|
||||||
ipu_crtc->newfb = NULL;
|
ipu_crtc->newfb = NULL;
|
||||||
ipu_plane_set_base(ipu_crtc->plane[0], ipu_crtc->base.fb, 0, 0);
|
ipu_plane_set_base(ipu_crtc->plane[0], ipu_crtc->base.fb,
|
||||||
|
ipu_crtc->plane[0]->x, ipu_crtc->plane[0]->y);
|
||||||
ipu_crtc_handle_pageflip(ipu_crtc);
|
ipu_crtc_handle_pageflip(ipu_crtc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,6 +83,10 @@ int ipu_plane_set_base(struct ipu_plane *ipu_plane, struct drm_framebuffer *fb,
|
|||||||
ipu_cpmem_set_buffer(cpmem, 0, eba);
|
ipu_cpmem_set_buffer(cpmem, 0, eba);
|
||||||
ipu_cpmem_set_buffer(cpmem, 1, eba);
|
ipu_cpmem_set_buffer(cpmem, 1, eba);
|
||||||
|
|
||||||
|
/* cache offsets for subsequent pageflips */
|
||||||
|
ipu_plane->x = x;
|
||||||
|
ipu_plane->y = y;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user