2019-12-06 08:02:26

by Chuhong Yuan

[permalink] [raw]
Subject: [PATCH] drm/dp_mst: add missed nv50_outp_release in nv50_msto_disable

nv50_msto_disable() does not call nv50_outp_release() to match
nv50_outp_acquire() like other disable().
Add the missed call to fix it.

Signed-off-by: Chuhong Yuan <[email protected]>
---
drivers/gpu/drm/nouveau/dispnv50/disp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index 549486f1d937..84e1417355cc 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -862,8 +862,10 @@ nv50_msto_disable(struct drm_encoder *encoder)

mstm->outp->update(mstm->outp, msto->head->base.index, NULL, 0, 0);
mstm->modified = true;
- if (!--mstm->links)
+ if (!--mstm->links) {
mstm->disabled = true;
+ nv50_outp_release(mstm->outp);
+ }
msto->disabled = true;
}

--
2.24.0


2019-12-12 08:15:34

by Jani Nikula

[permalink] [raw]
Subject: Re: [PATCH] drm/dp_mst: add missed nv50_outp_release in nv50_msto_disable

On Fri, 06 Dec 2019, Chuhong Yuan <[email protected]> wrote:
> nv50_msto_disable() does not call nv50_outp_release() to match
> nv50_outp_acquire() like other disable().
> Add the missed call to fix it.

The subject prefix "drm/dp_mst" implies drm core change, but this is
about nouveau. Please fix.

BR,
Jani.

>
> Signed-off-by: Chuhong Yuan <[email protected]>
> ---
> drivers/gpu/drm/nouveau/dispnv50/disp.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
> index 549486f1d937..84e1417355cc 100644
> --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
> +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
> @@ -862,8 +862,10 @@ nv50_msto_disable(struct drm_encoder *encoder)
>
> mstm->outp->update(mstm->outp, msto->head->base.index, NULL, 0, 0);
> mstm->modified = true;
> - if (!--mstm->links)
> + if (!--mstm->links) {
> mstm->disabled = true;
> + nv50_outp_release(mstm->outp);
> + }
> msto->disabled = true;
> }

--
Jani Nikula, Intel Open Source Graphics Center

2019-12-12 23:44:34

by Ben Skeggs

[permalink] [raw]
Subject: Re: [PATCH] drm/dp_mst: add missed nv50_outp_release in nv50_msto_disable

On Thu, 12 Dec 2019 at 18:14, Jani Nikula <[email protected]> wrote:
>
> On Fri, 06 Dec 2019, Chuhong Yuan <[email protected]> wrote:
> > nv50_msto_disable() does not call nv50_outp_release() to match
> > nv50_outp_acquire() like other disable().
> > Add the missed call to fix it.
This is intentional, and it's called at a later time
(nv50_mstm_prepare()) to avoid confusing HW.

Ben.

>
> The subject prefix "drm/dp_mst" implies drm core change, but this is
> about nouveau. Please fix.
>
> BR,
> Jani.
>
> >
> > Signed-off-by: Chuhong Yuan <[email protected]>
> > ---
> > drivers/gpu/drm/nouveau/dispnv50/disp.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
> > index 549486f1d937..84e1417355cc 100644
> > --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
> > +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
> > @@ -862,8 +862,10 @@ nv50_msto_disable(struct drm_encoder *encoder)
> >
> > mstm->outp->update(mstm->outp, msto->head->base.index, NULL, 0, 0);
> > mstm->modified = true;
> > - if (!--mstm->links)
> > + if (!--mstm->links) {
> > mstm->disabled = true;
> > + nv50_outp_release(mstm->outp);
> > + }
> > msto->disabled = true;
> > }
>
> --
> Jani Nikula, Intel Open Source Graphics Center
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel