fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / pcmcia / m8xx_pcmcia.c
index 0e07d95..3b72be8 100644 (file)
@@ -157,7 +157,7 @@ MODULE_LICENSE("Dual MPL/GPL");
 
 static int pcmcia_schlvl = PCMCIA_SCHLVL;
 
-static spinlock_t events_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(events_lock);
 
 
 #define PCMCIA_SOCKET_KEY_5V 1
@@ -266,7 +266,7 @@ static const u32 m8xx_size_to_gray[M8XX_SIZES_NO] =
 
 /* ------------------------------------------------------------------------- */
 
-static irqreturn_t m8xx_interrupt(int irq, void *dev, struct pt_regs *regs);
+static irqreturn_t m8xx_interrupt(int irq, void *dev);
 
 #define PCMCIA_BMT_LIMIT (15*4)  /* Bus Monitor Timeout value */
 
@@ -427,7 +427,7 @@ static int voltage_set(int slot, int vcc, int vpp)
                        reg |= BCSR1_PCCVCC1;
                        break;
                default:
-                       return 1;
+                       goto out_unmap;
        }
 
        switch(vpp) {
@@ -438,15 +438,15 @@ static int voltage_set(int slot, int vcc, int vpp)
                        if(vcc == vpp)
                                reg |= BCSR1_PCCVPP1;
                        else
-                               return 1;
+                               goto out_unmap;
                        break;
                case 120:
                        if ((vcc == 33) || (vcc == 50))
                                reg |= BCSR1_PCCVPP0;
                        else
-                               return 1;
+                               goto out_unmap;
                default:
-                       return 1;
+                       goto out_unmap;
        }
 
        /* first, turn off all power */
@@ -457,6 +457,10 @@ static int voltage_set(int slot, int vcc, int vpp)
 
        iounmap(bcsr_io);
        return 0;
+
+out_unmap:
+       iounmap(bcsr_io);
+       return 1;
 }
 
 #define socket_get(_slot_) PCMCIA_SOCKET_KEY_5V
@@ -644,9 +648,9 @@ static struct platform_device m8xx_device = {
 };
 
 static u32 pending_events[PCMCIA_SOCKETS_NO];
-static spinlock_t pending_event_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(pending_event_lock);
 
-static irqreturn_t m8xx_interrupt(int irq, void *dev, struct pt_regs *regs)
+static irqreturn_t m8xx_interrupt(int irq, void *dev)
 {
        struct socket_info *s;
        struct event_table *e;