mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 13:14:02 +02:00
drm/nouveau/gsp/r570: Enable S/R Display workaround in GSP
There's two flags that we've never been setting when asking GSP to suspend
the GPU, which OpenRM does set:
GPU_STATE_FLAGS_PRESERVING
GPU_STATE_FLAGS_PM_TRANSITION
These flags aren't -supposed- to do much in GSP, they're mostly used by
OpenRM itself for state tracking. The only thing they do from GSP's side is
control whether or not a single display related workaround is applied
during suspend.
But as it turns out, that single workaround is actually quite crucial for
getting runtime PM working with nouveau - and without it set we end up
seeing a lot more failures with runtime PM resume. So, let's start setting
it.
Signed-off-by: Lyude Paul <lyude@redhat.com>
Fixes: 53dac06238 ("drm/nouveau/gsp: add support for 570.144")
Cc: <stable@vger.kernel.org> # v6.16+
Reviewed-by: Dave Airlie <airlied@redhat.com>
Link: https://patch.msgid.link/20260814194542.781955-4-lyude@redhat.com
(cherry picked from commit ca57629b3eb912c77bc4357178a2130ea6c2d6df)
Signed-off-by: Lyude Paul <lyude@redhat.com>
This commit is contained in:
parent
12f6eff11c
commit
24fbd6d4bc
|
|
@ -207,7 +207,8 @@ r570_gsp_set_rmargs(struct nvkm_gsp *gsp, bool resume)
|
|||
args->srInitArguments.bInPMTransition = 0;
|
||||
} else {
|
||||
args->srInitArguments.oldLevel = NV2080_CTRL_GPU_SET_POWER_STATE_GPU_LEVEL_3;
|
||||
args->srInitArguments.flags = 0;
|
||||
args->srInitArguments.flags =
|
||||
GPU_STATE_FLAGS_PRESERVING | GPU_STATE_FLAGS_PM_TRANSITION;
|
||||
args->srInitArguments.bInPMTransition = 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -523,6 +523,14 @@ typedef struct
|
|||
|
||||
#define NV2080_CTRL_GPU_SET_POWER_STATE_GPU_LEVEL_3 (0x00000003U)
|
||||
|
||||
#define GPU_STATE_FLAGS_PRESERVING BIT(0) // GPU state is preserved
|
||||
#define GPU_STATE_FLAGS_VGA_TRANSITION BIT(1) // To be used with GPU_STATE_FLAGS_PRESERVING.
|
||||
#define GPU_STATE_FLAGS_PM_TRANSITION BIT(2) // To be used with GPU_STATE_FLAGS_PRESERVING.
|
||||
#define GPU_STATE_FLAGS_PM_SUSPEND BIT(3)
|
||||
#define GPU_STATE_FLAGS_PM_HIBERNATE BIT(4)
|
||||
#define GPU_STATE_FLAGS_GC6_TRANSITION BIT(5) // To be used with GPU_STATE_FLAGS_PRESERVING.
|
||||
#define GPU_STATE_FLAGS_FAST_UNLOAD BIT(6) // Used during windows restart, skips stateDestroy steps
|
||||
|
||||
typedef struct
|
||||
{
|
||||
// Magic for verification by secure ucode
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user