summaryrefslogtreecommitdiff
path: root/drivers/misc/tifm_7xx1.c
diff options
context:
space:
mode:
authorAlex Dubov <oakad@yahoo.com>2006-12-10 17:55:31 +0300
committerPierre Ossman <drzeus@drzeus.cx>2007-02-04 22:54:08 +0300
commit217334d14d28e6a671e6dd2c7a35c9070b0721ea (patch)
treed6366708a8c80e4beb698b81c61db25bd50a30dd /drivers/misc/tifm_7xx1.c
parent50743f4cb1d655c7fbe25af58a9d0db6bf76d687 (diff)
downloadlinux-217334d14d28e6a671e6dd2c7a35c9070b0721ea.tar.xz
Add dummy_signal_irq function to save check in ISR
Signed-off-by: Alex Dubov <oakad@yahoo.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/misc/tifm_7xx1.c')
-rw-r--r--drivers/misc/tifm_7xx1.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/misc/tifm_7xx1.c b/drivers/misc/tifm_7xx1.c
index 375b56742f2b..7fbf5d58bfc5 100644
--- a/drivers/misc/tifm_7xx1.c
+++ b/drivers/misc/tifm_7xx1.c
@@ -71,6 +71,7 @@ static void tifm_7xx1_remove_media(struct work_struct *work)
static irqreturn_t tifm_7xx1_isr(int irq, void *dev_id)
{
struct tifm_adapter *fm = dev_id;
+ struct tifm_dev *sock;
unsigned int irq_status;
unsigned int sock_irq_status, cnt;
@@ -85,15 +86,13 @@ static irqreturn_t tifm_7xx1_isr(int irq, void *dev_id)
writel(TIFM_IRQ_ENABLE, fm->addr + FM_CLEAR_INTERRUPT_ENABLE);
for (cnt = 0; cnt < fm->max_sockets; cnt++) {
+ sock = fm->sockets[cnt];
sock_irq_status = (irq_status >> cnt) &
(TIFM_IRQ_FIFOMASK | TIFM_IRQ_CARDMASK);
- if (fm->sockets[cnt]) {
- if (sock_irq_status &&
- fm->sockets[cnt]->signal_irq)
- fm->sockets[cnt]->
- signal_irq(fm->sockets[cnt],
- sock_irq_status);
+ if (sock) {
+ if (sock_irq_status)
+ sock->signal_irq(sock, sock_irq_status);
if (irq_status & (1 << cnt))
fm->remove_mask |= 1 << cnt;