This reverts commit 8302d0afeaec0bc57d951dd085e0cffe997d4d18.

It turns out this looked like the right fix on some systems, but it's not -
as this causes runtime PM to actually fail on many a laptop.

Signed-off-by: Lyude Paul <[email protected]>
Fixes: 8302d0afeaec ("nouveau/gsp: fix suspend/resume regression on r570 
firmware")
Cc: <[email protected]>
Cc: Lyude Paul <[email protected]>
Cc: Dave Airlie <[email protected]>
Cc: Kees Cook <[email protected]>
Cc: Danilo Krummrich <[email protected]>
Cc: Timur Tabi <[email protected]>
Cc: Ben Skeggs <[email protected]>
Cc: Andy Shevchenko <[email protected]>
Cc: Mel Henning <[email protected]>
Cc: <[email protected]> # v6.19+
---
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c | 2 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c  | 2 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c | 8 ++++----
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h        | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c 
b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c
index 700cea5def357..035b575722db7 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c
@@ -208,7 +208,7 @@ r535_fbsr_resume(struct nvkm_gsp *gsp)
 }
 
 static int
-r535_fbsr_suspend(struct nvkm_gsp *gsp, bool runtime)
+r535_fbsr_suspend(struct nvkm_gsp *gsp)
 {
        struct nvkm_subdev *subdev = &gsp->subdev;
        struct nvkm_device *device = subdev->device;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c 
b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
index f544afa12b6bb..4a3b771ded255 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
@@ -1749,7 +1749,7 @@ r535_gsp_fini(struct nvkm_gsp *gsp, enum 
nvkm_suspend_state suspend)
                sr->sysmemAddrOfSuspendResumeData = gsp->sr.radix3.lvl0.addr;
                sr->sizeOfSuspendResumeData = len;
 
-               ret = rm->api->fbsr->suspend(gsp, suspend == 
NVKM_RUNTIME_SUSPEND);
+               ret = rm->api->fbsr->suspend(gsp);
                if (ret) {
                        nvkm_gsp_mem_dtor(&gsp->sr.meta);
                        nvkm_gsp_radix3_dtor(gsp, &gsp->sr.radix3);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c 
b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c
index 8ef8b4f655883..2945d5b4e5707 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c
@@ -62,7 +62,7 @@ r570_fbsr_resume(struct nvkm_gsp *gsp)
 }
 
 static int
-r570_fbsr_init(struct nvkm_gsp *gsp, struct sg_table *sgt, u64 size, bool 
runtime)
+r570_fbsr_init(struct nvkm_gsp *gsp, struct sg_table *sgt, u64 size)
 {
        NV2080_CTRL_INTERNAL_FBSR_INIT_PARAMS *ctrl;
        struct nvkm_gsp_object memlist;
@@ -81,7 +81,7 @@ r570_fbsr_init(struct nvkm_gsp *gsp, struct sg_table *sgt, 
u64 size, bool runtim
        ctrl->hClient = gsp->internal.client.object.handle;
        ctrl->hSysMem = memlist.handle;
        ctrl->sysmemAddrOfSuspendResumeData = gsp->sr.meta.addr;
-       ctrl->bEnteringGcoffState = runtime ? 1 : 0;
+       ctrl->bEnteringGcoffState = 1;
 
        ret = nvkm_gsp_rm_ctrl_wr(&gsp->internal.device.subdevice, ctrl);
        if (ret)
@@ -92,7 +92,7 @@ r570_fbsr_init(struct nvkm_gsp *gsp, struct sg_table *sgt, 
u64 size, bool runtim
 }
 
 static int
-r570_fbsr_suspend(struct nvkm_gsp *gsp, bool runtime)
+r570_fbsr_suspend(struct nvkm_gsp *gsp)
 {
        struct nvkm_subdev *subdev = &gsp->subdev;
        struct nvkm_device *device = subdev->device;
@@ -133,7 +133,7 @@ r570_fbsr_suspend(struct nvkm_gsp *gsp, bool runtime)
                return ret;
 
        /* Initialise FBSR on RM. */
-       ret = r570_fbsr_init(gsp, &gsp->sr.fbsr, size, runtime);
+       ret = r570_fbsr_init(gsp, &gsp->sr.fbsr, size);
        if (ret) {
                nvkm_gsp_sg_free(device, &gsp->sr.fbsr);
                return ret;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h 
b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h
index a9af94adf9efc..0fb0e67406c67 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h
@@ -78,7 +78,7 @@ struct nvkm_rm_api {
        } *device;
 
        const struct nvkm_rm_api_fbsr {
-               int (*suspend)(struct nvkm_gsp *, bool runtime);
+               int (*suspend)(struct nvkm_gsp *);
                void (*resume)(struct nvkm_gsp *);
        } *fbsr;
 
-- 
2.54.0

Reply via email to