[Nouveau] [PATCH] secboot/gm200: fix suspend/resume
Alexandre Courbot
acourbot at nvidia.com
Wed Mar 9 09:37:08 UTC 2016
The state of the falcons was not properly updated after running the
unload ACR, which caused it to be run again (and thus fail) when
nvkm_secboot_fini() was called during resume.
Signed-off-by: Alexandre Courbot <acourbot at nvidia.com>
---
Ben, please feel free to squash this into the gm200 secboot implementation
patch - this fixes a bug that should not have been here to begin with.
drm/nouveau/nvkm/subdev/secboot/gm200.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drm/nouveau/nvkm/subdev/secboot/gm200.c b/drm/nouveau/nvkm/subdev/secboot/gm200.c
index 137c821213bb..cc100dc940ea 100644
--- a/drm/nouveau/nvkm/subdev/secboot/gm200.c
+++ b/drm/nouveau/nvkm/subdev/secboot/gm200.c
@@ -1335,6 +1335,7 @@ gm200_secboot_fini(struct nvkm_secboot *sb, bool suspend)
{
struct gm200_secboot *gsb = gm200_secboot(sb);
int ret = 0;
+ int i;
/* Run the unload blob to unprotect the WPR region */
if (gsb->acr_unload_blob &&
@@ -1342,6 +1343,9 @@ gm200_secboot_fini(struct nvkm_secboot *sb, bool suspend)
ret = gm200_secboot_run_hs_blob(gsb, gsb->acr_unload_blob,
&gsb->acr_unload_bl_desc);
+ for (i = 0; i < NVKM_SECBOOT_FALCON_END; i++)
+ gsb->falcon_state[i] = NON_SECURE;
+
return ret;
}
--
2.7.2
More information about the Nouveau
mailing list