From 65f08affcaa912fe1c805bd26f22fe1457e4d7d7 Mon Sep 17 00:00:00 2001 From: Ken Kawasaki Date: Sat, 19 Jun 2010 15:24:27 +0000 Subject: [PATCH] --- yaml --- r: 200551 b: refs/heads/master c: 9735b7ef005aaef5e5905cddba893f8725cd8867 h: refs/heads/master i: 200549: 4c93a9d5fef7bf43b455b224ca451e72f315c5aa 200547: dac226b0c6cde3ba9350c73232f7579d9d33c844 200543: bb99a16e4069a7d51b57ee3d673b407e76eb2da8 v: v3 --- [refs] | 2 +- trunk/drivers/net/pcmcia/smc91c92_cs.c | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index a3d5f37029ab..127daad1729a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9f888160bdcccf0565dd2774956b8d9456e610be +refs/heads/master: 9735b7ef005aaef5e5905cddba893f8725cd8867 diff --git a/trunk/drivers/net/pcmcia/smc91c92_cs.c b/trunk/drivers/net/pcmcia/smc91c92_cs.c index 64e6a84bbbbe..307cd1721e91 100644 --- a/trunk/drivers/net/pcmcia/smc91c92_cs.c +++ b/trunk/drivers/net/pcmcia/smc91c92_cs.c @@ -1505,12 +1505,20 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id) writeb(cor & ~COR_IREQ_ENA, smc->base + MOT_LAN + CISREG_COR); writeb(cor, smc->base + MOT_LAN + CISREG_COR); } -#ifdef DOES_NOT_WORK - if (smc->base != NULL) { /* Megahertz MFC's */ - readb(smc->base+MEGAHERTZ_ISR); - readb(smc->base+MEGAHERTZ_ISR); + + if ((smc->base != NULL) && /* Megahertz MFC's */ + (smc->manfid == MANFID_MEGAHERTZ) && + (smc->cardid == PRODID_MEGAHERTZ_EM3288)) { + + u_char tmp; + tmp = readb(smc->base+MEGAHERTZ_ISR); + tmp = readb(smc->base+MEGAHERTZ_ISR); + + /* Retrigger interrupt if needed */ + writeb(tmp, smc->base + MEGAHERTZ_ISR); + writeb(tmp, smc->base + MEGAHERTZ_ISR); } -#endif + spin_unlock(&smc->lock); return IRQ_RETVAL(handled); }