]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - sound/oss/btaudio.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm
[linux-2.6-omap-h63xx.git] / sound / oss / btaudio.c
index bfe3b534ef30277a1bd9faed9dbf691c11e7fc7a..f813ae9c2134e2e7b17f41c486bf23c7d167a543 100644 (file)
@@ -429,7 +429,7 @@ static int btaudio_mixer_ioctl(struct inode *inode, struct file *file,
        return 0;
 }
 
-static struct file_operations btaudio_mixer_fops = {
+static const struct file_operations btaudio_mixer_fops = {
        .owner          = THIS_MODULE,
        .llseek         = no_llseek,
        .open           = btaudio_mixer_open,
@@ -796,7 +796,7 @@ static unsigned int btaudio_dsp_poll(struct file *file, struct poll_table_struct
        return mask;
 }
 
-static struct file_operations btaudio_digital_dsp_fops = {
+static const struct file_operations btaudio_digital_dsp_fops = {
        .owner          = THIS_MODULE,
        .llseek         = no_llseek,
        .open           = btaudio_dsp_open_digital,
@@ -807,7 +807,7 @@ static struct file_operations btaudio_digital_dsp_fops = {
        .poll           = btaudio_dsp_poll,
 };
 
-static struct file_operations btaudio_analog_dsp_fops = {
+static const struct file_operations btaudio_analog_dsp_fops = {
        .owner          = THIS_MODULE,
        .llseek         = no_llseek,
        .open           = btaudio_dsp_open_analog,
@@ -824,7 +824,7 @@ static char *irq_name[] = { "", "", "", "OFLOW", "", "", "", "", "", "", "",
                            "RISCI", "FBUS", "FTRGT", "FDSR", "PPERR",
                            "RIPERR", "PABORT", "OCERR", "SCERR" };
 
-static irqreturn_t btaudio_irq(int irq, void *dev_id, struct pt_regs * regs)
+static irqreturn_t btaudio_irq(int irq, void *dev_id)
 {
        int count = 0;
        u32 stat,astat;
@@ -915,12 +915,11 @@ static int __devinit btaudio_probe(struct pci_dev *pci_dev,
                return -EBUSY;
        }
 
-       bta = kmalloc(sizeof(*bta),GFP_ATOMIC);
+       bta = kzalloc(sizeof(*bta),GFP_ATOMIC);
        if (!bta) {
                rc = -ENOMEM;
                goto fail0;
        }
-       memset(bta,0,sizeof(*bta));
 
        bta->pci  = pci_dev;
        bta->irq  = pci_dev->irq;
@@ -966,7 +965,7 @@ static int __devinit btaudio_probe(struct pci_dev *pci_dev,
         btwrite(~0U, REG_INT_STAT);
        pci_set_master(pci_dev);
 
-       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);
@@ -1020,6 +1019,7 @@ static int __devinit btaudio_probe(struct pci_dev *pci_dev,
  fail2:
         free_irq(bta->irq,bta);        
  fail1:
+       iounmap(bta->mmio);
        kfree(bta);
  fail0:
        release_mem_region(pci_resource_start(pci_dev,0),
@@ -1051,6 +1051,7 @@ static void __devexit btaudio_remove(struct pci_dev *pci_dev)
         free_irq(bta->irq,bta);
        release_mem_region(pci_resource_start(pci_dev,0),
                           pci_resource_len(pci_dev,0));
+       iounmap(bta->mmio);
 
        /* remove from linked list */
        if (bta == btaudios) {