]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
imx-drm: ipuv3-plane: move stride setting out of base setup
authorPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 8 Oct 2014 15:19:13 +0000 (17:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Nov 2014 00:19:58 +0000 (16:19 -0800)
Setting the stride can only be done on inactive channels, while
the buffer base address can also be updated for running channels
using the hardware double buffering feature.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/imx-drm/ipuv3-plane.c

index 48cbeef73934d7c1c55f067c5f23b0f01b9b0f9b..85f49e6fdee9f74a5e2b3104741ba1f53c3d3343 100644 (file)
@@ -74,8 +74,6 @@ int ipu_plane_set_base(struct ipu_plane *ipu_plane, struct drm_framebuffer *fb,
        dev_dbg(ipu_plane->base.dev->dev, "phys = %pad, x = %d, y = %d",
                &cma_obj->paddr, x, y);
 
-       ipu_cpmem_set_stride(ipu_plane->ipu_ch, fb->pitches[0]);
-
        eba = cma_obj->paddr + fb->offsets[0] +
              fb->pitches[0] * y + (fb->bits_per_pixel >> 3) * x;
        ipu_cpmem_set_buffer(ipu_plane->ipu_ch, 0, eba);
@@ -189,6 +187,7 @@ int ipu_plane_mode_set(struct ipu_plane *ipu_plane, struct drm_crtc *crtc,
                return ret;
        }
        ipu_cpmem_set_high_priority(ipu_plane->ipu_ch);
+       ipu_cpmem_set_stride(ipu_plane->ipu_ch, fb->pitches[0]);
 
        ret = ipu_plane_set_base(ipu_plane, fb, src_x, src_y);
        if (ret < 0)