summaryrefslogtreecommitdiff
path: root/drm/nouveau/nvkm/engine/device/base.c
diff options
context:
space:
mode:
Diffstat (limited to 'drm/nouveau/nvkm/engine/device/base.c')
-rw-r--r--drm/nouveau/nvkm/engine/device/base.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
index 7476ac271..3e26fc543 100644
--- a/drm/nouveau/nvkm/engine/device/base.c
+++ b/drm/nouveau/nvkm/engine/device/base.c
@@ -26,6 +26,7 @@
#include <core/notify.h>
#include <core/option.h>
+#include <core/secure_boot.h>
#include <subdev/bios.h>
@@ -2273,6 +2274,10 @@ nvkm_device_del(struct nvkm_device **pdevice)
if (device) {
mutex_lock(&nv_devices_mutex);
device->disable_mask = 0;
+
+ if (nvkm_need_secure_boot(device))
+ nvkm_secure_boot_fini(device);
+
for (i = NVKM_SUBDEV_NR - 1; i >= 0; i--) {
struct nvkm_subdev *subdev =
nvkm_device_subdev(device, i);
@@ -2567,6 +2572,10 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
}
ret = 0;
+
+ if (nvkm_need_secure_boot(device))
+ ret = nvkm_secure_boot_init(device);
+
done:
mutex_unlock(&nv_devices_mutex);
return ret;