nvkm_gpuobj_del(&disp->inst);
nvkm_event_fini(&disp->uevent);
- if (disp->super.wq)
+
+ if (disp->super.wq) {
destroy_workqueue(disp->super.wq);
+ mutex_destroy(&disp->super.mutex);
+ }
nvkm_event_fini(&disp->vblank);
nvkm_event_fini(&disp->hpd);
return -ENOMEM;
INIT_WORK(&disp->super.work, func->super);
+ mutex_init(&disp->super.mutex);
}
return nvkm_event_init(func->uevent, 1, ARRAY_SIZE(disp->chan), &disp->uevent);