Okay, this is what I've ended up with - I'm not sure whether it's
correct or not, but this dirty patch allows the full series to be
applied and still have working userspace.

I still need to undo all the reverts I have touching imx-drm between
patch 10 of this set and 4.8-rc1...

diff --git a/drivers/gpu/drm/imx/ipuv3-plane.c 
b/drivers/gpu/drm/imx/ipuv3-plane.c
index 3f5f9566b152..6f9a43880381 100644
--- a/drivers/gpu/drm/imx/ipuv3-plane.c
+++ b/drivers/gpu/drm/imx/ipuv3-plane.c
@@ -275,7 +275,7 @@ static int ipu_plane_atomic_check(struct drm_plane *plane,
        if (WARN_ON(!crtc_state))
                return -EINVAL;

-       /* CRTC should be enabled */
+       /* CRTC should be enabled -- why? */
        if (!crtc_state->enable)
                return -EINVAL;

@@ -319,10 +319,14 @@ static int ipu_plane_atomic_check(struct drm_plane *plane,
         * since we cannot touch active IDMAC channels, we do not support
         * resizing the enabled plane or changing its format
         */
+#if 0
        if (old_fb && (state->src_w != old_state->src_w ||
                              state->src_h != old_state->src_h ||
-                             fb->pixel_format != old_fb->pixel_format))
+                             fb->pixel_format != old_fb->pixel_format)) {
+               printk("%s:%d: fail\n", __func__, __LINE__);
                return -EINVAL;
+       }
+#endif

        eba = drm_plane_state_to_eba(state);

@@ -332,8 +336,12 @@ static int ipu_plane_atomic_check(struct drm_plane *plane,
        if (fb->pitches[0] < 1 || fb->pitches[0] > 16384)
                return -EINVAL;

-       if (old_fb && fb->pitches[0] != old_fb->pitches[0])
+#if 0
+       if (old_fb && fb->pitches[0] != old_fb->pitches[0]) {
+               printk("%s:%d: fail\n", __func__, __LINE__);
                return -EINVAL;
+       }
+#endif

        switch (fb->pixel_format) {
        case DRM_FORMAT_YUV420:
@@ -388,10 +396,14 @@ static void ipu_plane_atomic_update(struct drm_plane 
*plane,
        struct drm_plane_state *state = plane->state;
        enum ipu_color_space ics;

+#if 0
        if (old_state->fb) {
                ipu_plane_atomic_set_base(ipu_plane, old_state);
                return;
        }
+#endif
+
+       ipu_plane_disable(ipu_plane);

        switch (ipu_plane->dp_flow) {
        case IPU_DP_FLOW_SYNC_BG:

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

Reply via email to