Touching the overlay register memory while the overlay is fetching (or
primed to) the data. Do an ovl_wait() to make sure no updates are
pending.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
mfld_overlay_set_plane_opts(struct drm_plane *plane, uint32_t flags, struct drm_plane_opts *opts)
{
struct mfld_overlay *ovl = to_mfld_overlay(plane);
+ int r;
if (flags & DRM_MODE_PLANE_ZORDER) {
if (opts->zorder < 0)
return -EINVAL;
}
+ r = ovl_wait(ovl);
+ if (r)
+ return r;
+
/* Constant alpha bits live in color key registers */
if (flags & DRM_MODE_PLANE_CONST_ALPHA)
flags |= DRM_MODE_PLANE_SRC_KEY | DRM_MODE_PLANE_DST_KEY;