*     are underneath planes with higher Z position values. Two planes with the
  *     same Z position value have undefined ordering. Note that the Z position
  *     value can also be immutable, to inform userspace about the hard-coded
- *     stacking of planes, see drm_plane_create_zpos_immutable_property().
+ *     stacking of planes, see drm_plane_create_zpos_immutable_property(). If
+ *     any plane has a zpos property (either mutable or immutable), then all
+ *     planes shall have a zpos property.
  *
  * pixel blend mode:
  *     Pixel blend mode is set up with drm_plane_create_blend_mode_property().
  * should be set to 0 and max to maximal number of planes for given crtc - 1.
  *
  * If zpos of some planes cannot be changed (like fixed background or
- * cursor/topmost planes), driver should adjust min/max values and assign those
- * planes immutable zpos property with lower or higher values (for more
+ * cursor/topmost planes), drivers shall adjust the min/max values and assign
+ * those planes immutable zpos properties with lower or higher values (for more
  * information, see drm_plane_create_zpos_immutable_property() function). In such
- * case driver should also assign proper initial zpos values for all planes in
+ * case drivers shall also assign proper initial zpos values for all planes in
  * its plane_reset() callback, so the planes will be always sorted properly.
  *
  * See also drm_atomic_normalize_zpos().
 
 
 int drm_plane_register_all(struct drm_device *dev)
 {
+       unsigned int num_planes = 0;
+       unsigned int num_zpos = 0;
        struct drm_plane *plane;
        int ret = 0;
 
                        ret = plane->funcs->late_register(plane);
                if (ret)
                        return ret;
+
+               if (plane->zpos_property)
+                       num_zpos++;
+               num_planes++;
        }
 
+       drm_WARN(dev, num_zpos && num_planes != num_zpos,
+                "Mixing planes with and without zpos property is invalid\n");
+
        return 0;
 }