[PATCH 06/23] drm: omapdrm: wait for pending operations before updating plane

2016-03-26 Thread Sebastian Reichel
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 
> > ---
> >  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
> 
-- next part --
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: 



[PATCH 06/23] drm: omapdrm: wait for pending operations before updating plane

2016-03-26 Thread Laurent Pinchart
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 
> ---
>  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



[PATCH 06/23] drm: omapdrm: wait for pending operations before updating plane

2016-03-08 Thread Sebastian Reichel
Updating the plane may interrupt ongoing display
updates, so wait for any pending operations.

Signed-off-By: Sebastian Reichel 
---
 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);
-- 
2.7.0