diff options
author | Alex Dubov | 2006-12-11 01:55:31 +1100 |
---|---|---|
committer | Pierre Ossman | 2007-02-04 20:54:08 +0100 |
commit | 217334d14d28e6a671e6dd2c7a35c9070b0721ea (patch) | |
tree | d6366708a8c80e4beb698b81c61db25bd50a30dd /drivers/misc/tifm_7xx1.c | |
parent | 50743f4cb1d655c7fbe25af58a9d0db6bf76d687 (diff) |
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.c | 11 |
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; |