diff options
Diffstat (limited to 'drivers/pcmcia/vrc4171_card.c')
| -rw-r--r-- | drivers/pcmcia/vrc4171_card.c | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/drivers/pcmcia/vrc4171_card.c b/drivers/pcmcia/vrc4171_card.c index c9fcbdc164e..d98a0861249 100644 --- a/drivers/pcmcia/vrc4171_card.c +++ b/drivers/pcmcia/vrc4171_card.c @@ -105,6 +105,7 @@ typedef struct vrc4171_socket { char name[24]; int csc_irq; int io_irq; + spinlock_t lock; } vrc4171_socket_t; static vrc4171_socket_t vrc4171_sockets[CARD_MAX_SLOTS]; @@ -245,6 +246,7 @@ static int pccard_init(struct pcmcia_socket *sock) socket = &vrc4171_sockets[slot]; socket->csc_irq = search_nonuse_irq(); socket->io_irq = search_nonuse_irq(); + spin_lock_init(&socket->lock); return 0; } @@ -327,7 +329,7 @@ static int pccard_set_socket(struct pcmcia_socket *sock, socket_state_t *state) slot = sock->sock; socket = &vrc4171_sockets[slot]; - spin_lock_irq(&sock->lock); + spin_lock_irq(&socket->lock); voltage = set_Vcc_value(state->Vcc); exca_write_byte(slot, CARD_VOLTAGE_SELECT, voltage); @@ -370,7 +372,7 @@ static int pccard_set_socket(struct pcmcia_socket *sock, socket_state_t *state) cscint |= I365_CSC_DETECT; exca_write_byte(slot, I365_CSCINT, cscint); - spin_unlock_irq(&sock->lock); + spin_unlock_irq(&socket->lock); return 0; } @@ -563,7 +565,7 @@ static inline void reserve_using_irq(int slot) vrc4171_irq_mask &= ~(1 << irq); } -static int __devinit vrc4171_add_sockets(void) +static int vrc4171_add_sockets(void) { vrc4171_socket_t *socket; int slot, retval; @@ -630,7 +632,7 @@ static void vrc4171_remove_sockets(void) } } -static int __devinit vrc4171_card_setup(char *options) +static int vrc4171_card_setup(char *options) { if (options == NULL || *options == '\0') return 1; @@ -704,27 +706,14 @@ static int __devinit vrc4171_card_setup(char *options) __setup("vrc4171_card=", vrc4171_card_setup); -static int vrc4171_card_suspend(struct platform_device *dev, - pm_message_t state) -{ - return pcmcia_socket_dev_suspend(&dev->dev); -} - -static int vrc4171_card_resume(struct platform_device *dev) -{ - return pcmcia_socket_dev_resume(&dev->dev); -} - static struct platform_driver vrc4171_card_driver = { .driver = { .name = vrc4171_card_name, .owner = THIS_MODULE, }, - .suspend = vrc4171_card_suspend, - .resume = vrc4171_card_resume, }; -static int __devinit vrc4171_card_init(void) +static int vrc4171_card_init(void) { int retval; @@ -758,7 +747,7 @@ static int __devinit vrc4171_card_init(void) return 0; } -static void __devexit vrc4171_card_exit(void) +static void vrc4171_card_exit(void) { free_irq(vrc4171_irq, vrc4171_sockets); vrc4171_remove_sockets(); |
