summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_drv.h
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-06-01 19:18:48 +1000
committerBen Skeggs <bskeggs@redhat.com>2011-06-23 15:58:25 +1000
commite8a863c10f4ca47e942886dddf70c35e3c2d5dd6 (patch)
treede8d37eb9e33f93c09600e440722a55e355db6b1 /drivers/gpu/drm/nouveau/nouveau_drv.h
parentf8656f0baa316d1f08e224248e0b40ade85a4e80 (diff)
downloadtalos-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.h4
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,
OpenPOWER on IntegriCloud