]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/pcmcia/m8xx_pcmcia.c
Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
[linux-2.6-omap-h63xx.git] / drivers / pcmcia / m8xx_pcmcia.c
index 0e07d9535116db884fcbe1762d0971ae3192669b..9721ed7bf5023e704726af89073a51e9e54a85b7 100644 (file)
@@ -46,7 +46,6 @@
 
 #include <linux/kernel.h>
 #include <linux/errno.h>
-#include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/timer.h>
 #include <linux/ioport.h>
@@ -157,7 +156,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 +265,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 +426,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 +437,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 +456,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 +647,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;
@@ -1318,7 +1321,7 @@ static int __init m8xx_init(void)
                socket[i].socket.ops = &m8xx_services;
                socket[i].socket.resource_ops = &pccard_iodyn_ops;
                socket[i].socket.cb_dev = NULL;
-               socket[i].socket.dev.dev = &m8xx_device.dev;
+               socket[i].socket.dev.parent = &m8xx_device.dev;
        }
 
        for (i = 0; i < PCMCIA_SOCKETS_NO; i++)