]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/media/dvb/b2c2/flexcop-pci.c
[ARM] Merge most of the PXA work for initial merge
[linux-2.6-omap-h63xx.git] / drivers / media / dvb / b2c2 / flexcop-pci.c
index 6e166801505d23636014d2a120d479538933a2d7..5b30dfc7846b2fbbe870efb38901e311c3bc2375 100644 (file)
@@ -32,7 +32,7 @@ MODULE_PARM_DESC(irq_chk_intv, "set the interval for IRQ watchdog (currently jus
 #define deb_irq(args...)   dprintk(0x08,args)
 #define deb_chk(args...)   dprintk(0x10,args)
 
-static int debug = 0;
+static int debug;
 module_param(debug, int, 0644);
 MODULE_PARM_DESC(debug, "set debug level (1=info,2=regs,4=TS,8=irqdma (|-able))." DEBSTATUS);
 
@@ -127,10 +127,11 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
 {
        struct flexcop_pci *fc_pci = dev_id;
        struct flexcop_device *fc = fc_pci->fc_dev;
+       unsigned long flags;
        flexcop_ibi_value v;
        irqreturn_t ret = IRQ_HANDLED;
 
-       spin_lock_irq(&fc_pci->irq_lock);
+       spin_lock_irqsave(&fc_pci->irq_lock,flags);
 
        v = fc->read_ibi_reg(fc,irq_20c);
 
@@ -194,7 +195,7 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
                ret = IRQ_NONE;
        }
 
-       spin_unlock_irq(&fc_pci->irq_lock);
+       spin_unlock_irqrestore(&fc_pci->irq_lock,flags);
 
        return ret;
 }
@@ -293,12 +294,12 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci)
        }
 
        pci_set_drvdata(fc_pci->pdev, fc_pci);
-
+       spin_lock_init(&fc_pci->irq_lock);
        if ((ret = request_irq(fc_pci->pdev->irq, flexcop_pci_isr,
                                        IRQF_SHARED, DRIVER_NAME, fc_pci)) != 0)
                goto err_pci_iounmap;
 
-       spin_lock_init(&fc_pci->irq_lock);
+
 
        fc_pci->init_state |= FC_PCI_INIT;
        return ret;