From e22225416a12c2beab7a5bcb866d214ee212cbc4 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Wed, 21 Mar 2007 17:57:47 +1100 Subject: nouveau: support multiple channels per client (breaks drm interface) --- shared-core/nouveau_fifo.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'shared-core/nouveau_fifo.c') diff --git a/shared-core/nouveau_fifo.c b/shared-core/nouveau_fifo.c index 3ffb0516..fd5e46ac 100644 --- a/shared-core/nouveau_fifo.c +++ b/shared-core/nouveau_fifo.c @@ -725,15 +725,16 @@ void nouveau_fifo_cleanup(drm_device_t* dev, DRMFILE filp) nouveau_fifo_init(dev);*/ } -int nouveau_fifo_id_get(drm_device_t* dev, DRMFILE filp) +int +nouveau_fifo_owner(drm_device_t *dev, DRMFILE filp, int channel) { - drm_nouveau_private_t *dev_priv=dev->dev_private; - int i; + drm_nouveau_private_t *dev_priv = dev->dev_private; - for(i=0;ififos[i].used && dev_priv->fifos[i].filp == filp) - return i; - return -1; + if (channel >= nouveau_fifo_number(dev)) + return 0; + if (dev_priv->fifos[channel].used == 0) + return 0; + return (dev_priv->fifos[channel].filp == filp); } /*********************************** -- cgit v1.2.3