diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2017-11-01 03:56:20 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2017-11-02 13:32:33 +1000 |
commit | 814a23243bd2aaa9aafe03d85d0502a73be42b58 (patch) | |
tree | caa392b7b8ba01670b897f893127b2e1f1757a18 /drivers/gpu/drm/nouveau/nouveau_drv.h | |
parent | 7f50762423b4825674ee7fe10fa37abdafdcf754 (diff) | |
download | lwn-814a23243bd2aaa9aafe03d85d0502a73be42b58.tar.gz lwn-814a23243bd2aaa9aafe03d85d0502a73be42b58.zip |
drm/nouveau: implement per-client delayed workqueue with fence support
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_drv.h')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_drv.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index df9d9a71dde5..68088b361e5e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -104,9 +104,23 @@ struct nouveau_cli { struct list_head notifys; char name[32]; + struct work_struct work; + struct list_head worker; struct mutex lock; }; +struct nouveau_cli_work { + void (*func)(struct nouveau_cli_work *); + struct nouveau_cli *cli; + struct list_head head; + + struct dma_fence *fence; + struct dma_fence_cb cb; +}; + +void nouveau_cli_work_queue(struct nouveau_cli *, struct dma_fence *, + struct nouveau_cli_work *); + static inline struct nouveau_cli * nouveau_cli(struct drm_file *fpriv) { |