aboutsummaryrefslogtreecommitdiff
path: root/drivers/pcmcia
diff options
context:
space:
mode:
authorYoichi Yuasa <yuasa@linux-mips.org>2010-03-10 15:57:56 +0900
committerDominik Brodowski <linux@dominikbrodowski.net>2010-03-15 14:50:12 +0100
commit7a410e8d4d97457c8c381e2de9cdc7bd3306badc (patch)
treeeaf71bdf1e8ca804301d409e6cfd70c0e27a8d68 /drivers/pcmcia
parenta3d3203e4bb40f253b1541e310dc0f9305be7c84 (diff)
pcmcia/vrc4171: use local spinlock for device local lock.
struct pcmcia_socket lock had been used before. Signed-off-by: Yoichi Yuasa <yuasa@linux-mips.org> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r--drivers/pcmcia/vrc4171_card.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/pcmcia/vrc4171_card.c b/drivers/pcmcia/vrc4171_card.c
index c9fcbdc164e..aaccdb9f4ba 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];
@@ -327,7 +328,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 +371,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;
}