}
/* is it free? */
- mutex_lock(&dev->lock);
+ down(&dev->lock);
if (vv->resources & bit) {
DEB_D(("locked! vv->resources:0x%02x, we want:0x%02x\n",vv->resources,bit));
/* no, someone else uses it */
- mutex_unlock(&dev->lock);
+ up(&dev->lock);
return 0;
}
/* it's free, grab it */
fh->resources |= bit;
vv->resources |= bit;
DEB_D(("res: get 0x%02x, cur:0x%02x\n",bit,vv->resources));
- mutex_unlock(&dev->lock);
+ up(&dev->lock);
return 1;
}
struct saa7146_dev *dev = fh->dev;
struct saa7146_vv *vv = dev->vv_data;
- BUG_ON((fh->resources & bits) != bits);
+ if ((fh->resources & bits) != bits)
+ BUG();
- mutex_lock(&dev->lock);
+ down(&dev->lock);
fh->resources &= ~bits;
vv->resources &= ~bits;
DEB_D(("res: put 0x%02x, cur:0x%02x\n",bits,vv->resources));
- mutex_unlock(&dev->lock);
+ up(&dev->lock);
}
/********************************************************************************/
/* common dma functions */
-void saa7146_dma_free(struct saa7146_dev *dev,struct videobuf_queue *q,
- struct saa7146_buf *buf)
+void saa7146_dma_free(struct saa7146_dev *dev,struct saa7146_buf *buf)
{
DEB_EE(("dev:%p, buf:%p\n",dev,buf));
- BUG_ON(in_interrupt());
+ if (in_interrupt())
+ BUG();
videobuf_waiton(&buf->vb,0,0);
- videobuf_dma_unmap(q, &buf->vb.dma);
+ videobuf_dma_pci_unmap(dev->pci, &buf->vb.dma);
videobuf_dma_free(&buf->vb.dma);
buf->vb.state = STATE_NEEDS_INIT;
}
DEB_EE(("inode:%p, file:%p, minor:%d\n",inode,file,minor));
- if (mutex_lock_interruptible(&saa7146_devices_lock))
+ if (down_interruptible(&saa7146_devices_lock))
return -ERESTARTSYS;
list_for_each(list,&saa7146_devices) {
kfree(fh);
file->private_data = NULL;
}
- mutex_unlock(&saa7146_devices_lock);
+ up(&saa7146_devices_lock);
return result;
}
DEB_EE(("inode:%p, file:%p\n",inode,file));
- if (mutex_lock_interruptible(&saa7146_devices_lock))
+ if (down_interruptible(&saa7146_devices_lock))
return -ERESTARTSYS;
if( fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
file->private_data = NULL;
kfree(fh);
- mutex_unlock(&saa7146_devices_lock);
+ up(&saa7146_devices_lock);
return 0;
}