[PATCH v5 0/4] drm/nouveau: GSP runtime PM fixes

Lyude Paul posted 4 patches 1 month, 2 weeks ago
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c    | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c     | 8 ++++++--
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c    | 8 ++++----
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gsp.c     | 3 ++-
.../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/nvrm/gsp.h    | 8 ++++++++
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h           | 2 +-
6 files changed, 22 insertions(+), 9 deletions(-)
[PATCH v5 0/4] drm/nouveau: GSP runtime PM fixes
Posted by Lyude Paul 1 month, 2 weeks ago
Runtime suspend/resume has been notoriously flakey since we started
using the R570 GSP firmware, and possibly was also flakey for some time
when we introduced GSP support initially.

These fixes get runtime PM to be dramatically more stable then it was
before. Unfortunately even with this patch series, there are still some
remaining issues that need to be fixed. These likely stem from the
currently different code path that we need to take with these fixes in
order to get suspend/resume working.

While we're making progress in understanding what exactly we're doing
differently from OpenRM that makes this the case, it will likely take us
a while before we actually have things working well enough to copy what
OpenRM does. Taking precisely the same path that OpenRM takes however,
will require some additional work - and at the very least these fixes do
appear to get suspend/resume and runtime PM working the vast majority of
the time.

Thanks for nvidia for providing context into what all of these various
flags and settings do!

Previous version of this patch series:

  https://patchwork.freedesktop.org/series/169457/

Patch-wide changes:
* Add magic sleep, this seems to get things stable - but boy I wish I
  could figure out why.

Lyude Paul (4):
  Revert "nouveau/gsp: fix suspend/resume regression on r570 firmware"
  drm/nouveau/gsp/r570: Set GcOff = 0 in fbsr
  drm/nouveau/gsp/r570: Enable S/R Display workaround in GSP
  drm/nouveau/gsp: Increase delay for magic sleep in r535_gsp_fini()

 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c    | 2 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c     | 8 ++++++--
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c    | 8 ++++----
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gsp.c     | 3 ++-
 .../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/nvrm/gsp.h    | 8 ++++++++
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h           | 2 +-
 6 files changed, 22 insertions(+), 9 deletions(-)


base-commit: f29ab62f7ed55eae7b246bb535ede56d3b338674
-- 
2.55.0
Re: [PATCH v5 0/4] drm/nouveau: GSP runtime PM fixes
Posted by David Airlie 1 month, 2 weeks ago
On Sat, Aug 15, 2026 at 5:45 AM Lyude Paul <lyude@redhat.com> wrote:
>
> Runtime suspend/resume has been notoriously flakey since we started
> using the R570 GSP firmware, and possibly was also flakey for some time
> when we introduced GSP support initially.
>
> These fixes get runtime PM to be dramatically more stable then it was
> before. Unfortunately even with this patch series, there are still some
> remaining issues that need to be fixed. These likely stem from the
> currently different code path that we need to take with these fixes in
> order to get suspend/resume working.
>
> While we're making progress in understanding what exactly we're doing
> differently from OpenRM that makes this the case, it will likely take us
> a while before we actually have things working well enough to copy what
> OpenRM does. Taking precisely the same path that OpenRM takes however,
> will require some additional work - and at the very least these fixes do
> appear to get suspend/resume and runtime PM working the vast majority of
> the time.
>
> Thanks for nvidia for providing context into what all of these various
> flags and settings do!

While I did not expect the ending to be make the magic sleep magicer,
I appreciate I introduced the magic sleep and got to the same point in
trying to explain it, and failed for it to make any sense.

For the series:

Reviewed-by: Dave Airlie <airlied@redhat.com>

>
> Previous version of this patch series:
>
>   https://patchwork.freedesktop.org/series/169457/
>
> Patch-wide changes:
> * Add magic sleep, this seems to get things stable - but boy I wish I
>   could figure out why.
>
> Lyude Paul (4):
>   Revert "nouveau/gsp: fix suspend/resume regression on r570 firmware"
>   drm/nouveau/gsp/r570: Set GcOff = 0 in fbsr
>   drm/nouveau/gsp/r570: Enable S/R Display workaround in GSP
>   drm/nouveau/gsp: Increase delay for magic sleep in r535_gsp_fini()
>
>  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c    | 2 +-
>  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c     | 8 ++++++--
>  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c    | 8 ++++----
>  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gsp.c     | 3 ++-
>  .../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/nvrm/gsp.h    | 8 ++++++++
>  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h           | 2 +-
>  6 files changed, 22 insertions(+), 9 deletions(-)
>
>
> base-commit: f29ab62f7ed55eae7b246bb535ede56d3b338674
> --
> 2.55.0
>