Message ID | 1457455195-1938-7-git-send-email-sre@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Sabastian, Thank you for the patch. On Tuesday 08 Mar 2016 17:39:38 Sebastian Reichel wrote: > Updating the plane may interrupt ongoing display > updates, so wait for any pending operations. There's already an omap_atomic_wait_for_completion() call a couple of lines below, do we need two of them ? Why can display update be ongoing there, given that the previous omap_atomic_complete() call did wait for completion before returning ? > Signed-off-By: Sebastian Reichel <sre@kernel.org> > --- > drivers/gpu/drm/omapdrm/omap_drv.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c > b/drivers/gpu/drm/omapdrm/omap_drv.c index a3ff35f5f6cd..e142a4245766 > 100644 > --- a/drivers/gpu/drm/omapdrm/omap_drv.c > +++ b/drivers/gpu/drm/omapdrm/omap_drv.c > @@ -95,6 +95,10 @@ static void omap_atomic_complete(struct > omap_atomic_state_commit *commit) /* Apply the atomic update. */ > dispc_runtime_get(); > > + dev_dbg(dev->dev, "omap_atomic_complete"); > + > + omap_atomic_wait_for_completion(dev, old_state); > + > drm_atomic_helper_commit_modeset_disables(dev, old_state); > drm_atomic_helper_commit_planes(dev, old_state, false); > drm_atomic_helper_commit_modeset_enables(dev, old_state);
Hi Laurent, On Sat, Mar 26, 2016 at 11:20:00AM +0200, Laurent Pinchart wrote: > On Tuesday 08 Mar 2016 17:39:38 Sebastian Reichel wrote: > > Updating the plane may interrupt ongoing display > > updates, so wait for any pending operations. > > There's already an omap_atomic_wait_for_completion() call a couple of lines > below, do we need two of them ? Why can display update be ongoing there, given > that the previous omap_atomic_complete() call did wait for completion before > returning? This is a preparation for the manual display update. The planes should not be touched while a manual display update is in progress. I only checked the patches for the N950's manually updated DSI panel, but none of the other supported panel types. Since I wasn't sure what is triggered by the plane update for the other panel types, I kept the second wait_for_completion. I guess I will drop the second wait in the next revision and see what happens. -- Sebastian > > Signed-off-By: Sebastian Reichel <sre@kernel.org> > > --- > > drivers/gpu/drm/omapdrm/omap_drv.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c > > b/drivers/gpu/drm/omapdrm/omap_drv.c index a3ff35f5f6cd..e142a4245766 > > 100644 > > --- a/drivers/gpu/drm/omapdrm/omap_drv.c > > +++ b/drivers/gpu/drm/omapdrm/omap_drv.c > > @@ -95,6 +95,10 @@ static void omap_atomic_complete(struct > > omap_atomic_state_commit *commit) /* Apply the atomic update. */ > > dispc_runtime_get(); > > > > + dev_dbg(dev->dev, "omap_atomic_complete"); > > + > > + omap_atomic_wait_for_completion(dev, old_state); > > + > > drm_atomic_helper_commit_modeset_disables(dev, old_state); > > drm_atomic_helper_commit_planes(dev, old_state, false); > > drm_atomic_helper_commit_modeset_enables(dev, old_state); > > -- > Regards, > > Laurent Pinchart >
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c index a3ff35f5f6cd..e142a4245766 100644 --- a/drivers/gpu/drm/omapdrm/omap_drv.c +++ b/drivers/gpu/drm/omapdrm/omap_drv.c @@ -95,6 +95,10 @@ static void omap_atomic_complete(struct omap_atomic_state_commit *commit) /* Apply the atomic update. */ dispc_runtime_get(); + dev_dbg(dev->dev, "omap_atomic_complete"); + + omap_atomic_wait_for_completion(dev, old_state); + drm_atomic_helper_commit_modeset_disables(dev, old_state); drm_atomic_helper_commit_planes(dev, old_state, false); drm_atomic_helper_commit_modeset_enables(dev, old_state);
Updating the plane may interrupt ongoing display updates, so wait for any pending operations. Signed-off-By: Sebastian Reichel <sre@kernel.org> --- drivers/gpu/drm/omapdrm/omap_drv.c | 4 ++++ 1 file changed, 4 insertions(+)