mirror of https://gitee.com/openkylin/linux.git
[PATCH] yenta: optimize interrupt handler
Don't waste cpu time in yenta interrupt handler when the interrupt was for another device. Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
parent
37f7795544
commit
e4115805cf
|
@ -531,6 +531,9 @@ static irqreturn_t yenta_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
|||
|
||||
csc = exca_readb(socket, I365_CSC);
|
||||
|
||||
if (!(cb_event || csc))
|
||||
return IRQ_NONE;
|
||||
|
||||
events = (cb_event & (CB_CD1EVENT | CB_CD2EVENT)) ? SS_DETECT : 0 ;
|
||||
events |= (csc & I365_CSC_DETECT) ? SS_DETECT : 0;
|
||||
if (exca_readb(socket, I365_INTCTL) & I365_PC_IOCARD) {
|
||||
|
@ -544,10 +547,7 @@ static irqreturn_t yenta_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
|||
if (events)
|
||||
pcmcia_parse_events(&socket->socket, events);
|
||||
|
||||
if (cb_event || csc)
|
||||
return IRQ_HANDLED;
|
||||
|
||||
return IRQ_NONE;
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static void yenta_interrupt_wrapper(unsigned long data)
|
||||
|
|
Loading…
Reference in New Issue