2019-10-10 10:31:23

by Mihail Atanassov

[permalink] [raw]
Subject: [PATCH] drm/komeda: Don't flush inactive pipes

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 <[email protected]>
---
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);

drm_atomic_helper_commit_modeset_enables(dev, old_state);

--
2.23.0


2019-10-16 12:51:42

by James Qian Wang

[permalink] [raw]
Subject: Re: drm/komeda: Don't flush inactive pipes

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 <[email protected]>
> ---
> 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) <[email protected]>

> drm_atomic_helper_commit_modeset_enables(dev, old_state);
>

2019-10-21 14:07:23

by Mihail Atanassov

[permalink] [raw]
Subject: Re: drm/komeda: Don't flush inactive pipes

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 <[email protected]>
> > ---
> > 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) <[email protected]>

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

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


--
Mihail