Loading drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c +1 −1 Original line number Diff line number Diff line Loading @@ -459,7 +459,7 @@ gf119_disp_intr(struct nv50_disp *disp) u32 stat = nvkm_rd32(device, 0x6100ac); if (stat & 0x00000007) { disp->super = (stat & 0x00000007); schedule_work(&disp->supervisor); queue_work(disp->wq, &disp->supervisor); nvkm_wr32(device, 0x6100ac, disp->super); stat &= ~0x00000007; } Loading drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c +8 −2 Original line number Diff line number Diff line Loading @@ -111,6 +111,8 @@ nv50_disp_dtor_(struct nvkm_disp *base) { struct nv50_disp *disp = nv50_disp(base); nvkm_event_fini(&disp->uevent); if (disp->wq) destroy_workqueue(disp->wq); return disp; } Loading @@ -136,7 +138,6 @@ nv50_disp_new_(const struct nv50_disp_func *func, struct nvkm_device *device, if (!(disp = kzalloc(sizeof(*disp), GFP_KERNEL))) return -ENOMEM; INIT_WORK(&disp->supervisor, func->super); disp->func = func; *pdisp = &disp->base; Loading @@ -144,6 +145,11 @@ nv50_disp_new_(const struct nv50_disp_func *func, struct nvkm_device *device, if (ret) return ret; disp->wq = create_singlethread_workqueue("nvkm-disp"); if (!disp->wq) return -ENOMEM; INIT_WORK(&disp->supervisor, func->super); for (i = 0; func->head.new && i < heads; i++) { ret = func->head.new(&disp->base, i); if (ret) Loading Loading @@ -803,7 +809,7 @@ nv50_disp_intr(struct nv50_disp *disp) if (intr1 & 0x00000070) { disp->super = (intr1 & 0x00000070); schedule_work(&disp->supervisor); queue_work(disp->wq, &disp->supervisor); nvkm_wr32(device, 0x610024, disp->super); } } Loading drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ struct nv50_disp { const struct nv50_disp_func *func; struct nvkm_disp base; struct workqueue_struct *wq; struct work_struct supervisor; u32 super; Loading Loading
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c +1 −1 Original line number Diff line number Diff line Loading @@ -459,7 +459,7 @@ gf119_disp_intr(struct nv50_disp *disp) u32 stat = nvkm_rd32(device, 0x6100ac); if (stat & 0x00000007) { disp->super = (stat & 0x00000007); schedule_work(&disp->supervisor); queue_work(disp->wq, &disp->supervisor); nvkm_wr32(device, 0x6100ac, disp->super); stat &= ~0x00000007; } Loading
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c +8 −2 Original line number Diff line number Diff line Loading @@ -111,6 +111,8 @@ nv50_disp_dtor_(struct nvkm_disp *base) { struct nv50_disp *disp = nv50_disp(base); nvkm_event_fini(&disp->uevent); if (disp->wq) destroy_workqueue(disp->wq); return disp; } Loading @@ -136,7 +138,6 @@ nv50_disp_new_(const struct nv50_disp_func *func, struct nvkm_device *device, if (!(disp = kzalloc(sizeof(*disp), GFP_KERNEL))) return -ENOMEM; INIT_WORK(&disp->supervisor, func->super); disp->func = func; *pdisp = &disp->base; Loading @@ -144,6 +145,11 @@ nv50_disp_new_(const struct nv50_disp_func *func, struct nvkm_device *device, if (ret) return ret; disp->wq = create_singlethread_workqueue("nvkm-disp"); if (!disp->wq) return -ENOMEM; INIT_WORK(&disp->supervisor, func->super); for (i = 0; func->head.new && i < heads; i++) { ret = func->head.new(&disp->base, i); if (ret) Loading Loading @@ -803,7 +809,7 @@ nv50_disp_intr(struct nv50_disp *disp) if (intr1 & 0x00000070) { disp->super = (intr1 & 0x00000070); schedule_work(&disp->supervisor); queue_work(disp->wq, &disp->supervisor); nvkm_wr32(device, 0x610024, disp->super); } } Loading
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ struct nv50_disp { const struct nv50_disp_func *func; struct nvkm_disp base; struct workqueue_struct *wq; struct work_struct supervisor; u32 super; Loading