static int btaudio_dsp_open(struct inode *inode, struct file *file,
struct btaudio *bta, int analog)
{
static int btaudio_dsp_open(struct inode *inode, struct file *file,
struct btaudio *bta, int analog)
{
DECLARE_WAITQUEUE(wait, current);
add_wait_queue(&bta->readq, &wait);
DECLARE_WAITQUEUE(wait, current);
add_wait_queue(&bta->readq, &wait);
remove_wait_queue(&bta->readq, &wait);
current->state = TASK_RUNNING;
return ret;
remove_wait_queue(&bta->readq, &wait);
current->state = TASK_RUNNING;
return ret;
"RISCI", "FBUS", "FTRGT", "FDSR", "PPERR",
"RIPERR", "PABORT", "OCERR", "SCERR" };
"RISCI", "FBUS", "FTRGT", "FDSR", "PPERR",
"RIPERR", "PABORT", "OCERR", "SCERR" };
- if ((rc = request_irq(bta->irq, btaudio_irq, SA_SHIRQ|SA_INTERRUPT,
+ if ((rc = request_irq(bta->irq, btaudio_irq, IRQF_SHARED|IRQF_DISABLED,
"btaudio",(void *)bta)) < 0) {
printk(KERN_WARNING
"btaudio: can't request irq (rc=%d)\n",rc);
"btaudio",(void *)bta)) < 0) {
printk(KERN_WARNING
"btaudio: can't request irq (rc=%d)\n",rc);
free_irq(bta->irq,bta);
release_mem_region(pci_resource_start(pci_dev,0),
pci_resource_len(pci_dev,0));
free_irq(bta->irq,bta);
release_mem_region(pci_resource_start(pci_dev,0),
pci_resource_len(pci_dev,0));
digital ? "digital" : "",
analog && digital ? "+" : "",
analog ? "analog" : "");
digital ? "digital" : "",
analog && digital ? "+" : "",
analog ? "analog" : "");