X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=drivers%2Fpcmcia%2Fm8xx_pcmcia.c;h=9721ed7bf5023e704726af89073a51e9e54a85b7;hb=7a13e932281e7042a592f4f14db0b348199e7aac;hp=e070a2896769ff2d2f27b640239b3a27fbd015fa;hpb=513b046c96cc2fbce730a3474f6f7ff0c4fdd05c;p=powerpc.git diff --git a/drivers/pcmcia/m8xx_pcmcia.c b/drivers/pcmcia/m8xx_pcmcia.c index e070a28967..9721ed7bf5 100644 --- a/drivers/pcmcia/m8xx_pcmcia.c +++ b/drivers/pcmcia/m8xx_pcmcia.c @@ -46,7 +46,6 @@ #include #include -#include #include #include #include @@ -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 @@ -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++)