diff options
Diffstat (limited to 'drm/nouveau/nvkm/engine/device/base.c')
-rw-r--r-- | drm/nouveau/nvkm/engine/device/base.c | 9 |
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; |