On Mon, Apr 15, 2019 at 10:58:47AM +0300, Stanislav Lisovskiy wrote: > There was an issue reported from end users, confirmed > also locally that when user executes xrandr --output <some DP> > --rotate left/right, the other eDP screen gets blank after rotation. > > Investigation showed that reason was that primary plane > was that screen was for some reason disabled, while cursor > plane was still enabled. > After some effort it turns out that userspace might wrongly > assign NOFB to active primary plane for some reason. > > Then this gets detected in drm_atomic_helper_check_plane_state, > called from ->plane_check and plane gets deactivated, leaving > the screen blank and cursor visible. This can be cured by reboot > or xrandr off/on sequence for that crtc. > > This patch is proposal to fix the issue by forbiding fb removal > from active primary plane. If one needs to remove fb plane must be > disabled first. > > Not sure if this is correct, however it fixes the issue at least.
It is not. Removing the fb (and crtc) is how you disable a plane. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110375 > Signed-off-by: Stanislav Lisovskiy <stanislav.lisovs...@intel.com> > --- > drivers/gpu/drm/drm_atomic_uapi.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c > b/drivers/gpu/drm/drm_atomic_uapi.c > index ea797d4c82ee..e2f078b302f3 100644 > --- a/drivers/gpu/drm/drm_atomic_uapi.c > +++ b/drivers/gpu/drm/drm_atomic_uapi.c > @@ -229,6 +229,15 @@ drm_atomic_set_fb_for_plane(struct drm_plane_state > *plane_state, > { > struct drm_plane *plane = plane_state->plane; > > + if (!fb) { > + if (plane->state->visible && plane->type == > DRM_PLANE_TYPE_PRIMARY) {a .visible is not even computed yet when this is called. > + DRM_DEBUG_ATOMIC("Not allowed to set [NOFB] for active" > + " primary [PLANE:%d:%s] - disable > first", > + plane->base.id, plane->name); > + return; > + } > + } > + > if (fb) > DRM_DEBUG_ATOMIC("Set [FB:%d] for [PLANE:%d:%s] state %p\n", > fb->base.id, plane->base.id, plane->name, > -- > 2.17.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrjälä Intel _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel