drm/komeda: Don't flush inactive pipes
diff mbox series

Message ID 20191010102950.56253-1-mihail.atanassov@arm.com
State New
Headers show
Series
  • drm/komeda: Don't flush inactive pipes
Related show

Commit Message

Mihail Atanassov Oct. 10, 2019, 10:30 a.m. UTC
HW doesn't allow flushing inactive pipes and raises an MERR interrupt
if you try to do so. Stop triggering the MERR interrupt in the
middle of a commit by calling drm_atomic_helper_commit_planes
with the ACTIVE_ONLY flag.

Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
---
 drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

james qian wang (Arm Technology China) Oct. 16, 2019, 8:21 a.m. UTC | #1
On Thu, Oct 10, 2019 at 10:30:07AM +0000, Mihail Atanassov wrote:
> HW doesn't allow flushing inactive pipes and raises an MERR interrupt
> if you try to do so. Stop triggering the MERR interrupt in the
> middle of a commit by calling drm_atomic_helper_commit_planes
> with the ACTIVE_ONLY flag.
> 
> Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
> ---
>  drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> index 8820ce15ce37..ae274902ff92 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> @@ -82,7 +82,8 @@ static void komeda_kms_commit_tail(struct drm_atomic_state *old_state)
>  
>  	drm_atomic_helper_commit_modeset_disables(dev, old_state);
>  
> -	drm_atomic_helper_commit_planes(dev, old_state, 0);
> +	drm_atomic_helper_commit_planes(dev, old_state,
> +					DRM_PLANE_COMMIT_ACTIVE_ONLY);
>

Looks good to me.
Reviewed-by: James Qian Wang (Arm Technology China) <james.qian.wang@arm.com>

>  	drm_atomic_helper_commit_modeset_enables(dev, old_state);
>
Mihail Atanassov Oct. 21, 2019, 2:03 p.m. UTC | #2
On Wednesday, 16 October 2019 09:21:24 BST james qian wang (Arm Technology China) wrote:
> On Thu, Oct 10, 2019 at 10:30:07AM +0000, Mihail Atanassov wrote:
> > HW doesn't allow flushing inactive pipes and raises an MERR interrupt
> > if you try to do so. Stop triggering the MERR interrupt in the
> > middle of a commit by calling drm_atomic_helper_commit_planes
> > with the ACTIVE_ONLY flag.
> > 
> > Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
> > ---
> >  drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> > index 8820ce15ce37..ae274902ff92 100644
> > --- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> > +++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> > @@ -82,7 +82,8 @@ static void komeda_kms_commit_tail(struct drm_atomic_state *old_state)
> >  
> >  	drm_atomic_helper_commit_modeset_disables(dev, old_state);
> >  
> > -	drm_atomic_helper_commit_planes(dev, old_state, 0);
> > +	drm_atomic_helper_commit_planes(dev, old_state,
> > +					DRM_PLANE_COMMIT_ACTIVE_ONLY);
> >
> 
> Looks good to me.
> Reviewed-by: James Qian Wang (Arm Technology China) <james.qian.wang@arm.com>

Thanks for the review, applied to drm-misc-fixes -
b88639b8e3808c948169af390bd7e84e909bde8d.

> 
> >  	drm_atomic_helper_commit_modeset_enables(dev, old_state);
> >  
>

Patch
diff mbox series

diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
index 8820ce15ce37..ae274902ff92 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
@@ -82,7 +82,8 @@  static void komeda_kms_commit_tail(struct drm_atomic_state *old_state)
 
 	drm_atomic_helper_commit_modeset_disables(dev, old_state);
 
-	drm_atomic_helper_commit_planes(dev, old_state, 0);
+	drm_atomic_helper_commit_planes(dev, old_state,
+					DRM_PLANE_COMMIT_ACTIVE_ONLY);
 
 	drm_atomic_helper_commit_modeset_enables(dev, old_state);