diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-06-01 19:18:48 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-06-23 15:58:25 +1000 |
commit | e8a863c10f4ca47e942886dddf70c35e3c2d5dd6 (patch) | |
tree | de8d37eb9e33f93c09600e440722a55e355db6b1 /drivers/gpu/drm/nouveau/nouveau_drv.h | |
parent | f8656f0baa316d1f08e224248e0b40ade85a4e80 (diff) | |
download | talos-obmc-linux-e8a863c10f4ca47e942886dddf70c35e3c2d5dd6.tar.gz talos-obmc-linux-e8a863c10f4ca47e942886dddf70c35e3c2d5dd6.zip |
drm/nouveau: store a per-client channel list
Removes the need to disable IRQs to lookup channel struct on every pushbuf
ioctl, among others.
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 | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index a378a9648198..633f1e6d421f 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -47,6 +47,7 @@ struct nouveau_fpriv { spinlock_t lock; + struct list_head channels; }; static inline struct nouveau_fpriv * @@ -208,6 +209,7 @@ enum nouveau_channel_mutex_class { struct nouveau_channel { struct drm_device *dev; + struct list_head list; int id; /* references to the channel data structure */ @@ -858,7 +860,7 @@ extern int nouveau_channel_alloc(struct drm_device *dev, extern struct nouveau_channel * nouveau_channel_get_unlocked(struct nouveau_channel *); extern struct nouveau_channel * -nouveau_channel_get(struct drm_device *, struct drm_file *, int id); +nouveau_channel_get(struct drm_file *, int id); extern void nouveau_channel_put_unlocked(struct nouveau_channel **); extern void nouveau_channel_put(struct nouveau_channel **); extern void nouveau_channel_ref(struct nouveau_channel *chan, |