Pavel & all, Pavel Machek wrote:We should keep these names because they are part of the interface between host and card defined by the manufacturer. This code is obsolete (a workaround to an embedded system bug) and should be removed - sorry I didn't step on it earlier. It can removed with minimal risk of destabilizing the driver. It should look like this: static irqreturn_t ipwireless_handle_v1_interrupt(int irq, ipw_hardware_t *hw) { u_short irqn; u_short ack; irqn = inw(hw->base_port + IOIR); if (irqn == (u_short) 0xFFFF) return IRQ_NONE; else if (irqn != 0) { ack = 0; /* Transmit complete. */ if (irqn & IR_TXINTR) { hw->tx_ready++; ack |= IR_TXINTR; } /* Received data */ if (irqn & IR_RXINTR) { ack |= IR_RXINTR; hw->rx_ready++; } if (ack != 0) { outw(ack, hw->base_port + IOIR); /* Perform the I/O retrieval in a tasklet, because the ppp_generic may be called from a tasklet, but not from a hardware interrupt. */ if (!hw->tasklet_pending) { hw->tasklet_pending = 1; tasklet_schedule(&hw->tasklet); } } return IRQ_HANDLED; } else return IRQ_NONE; } The v2_v3 handler should not have it either, and should start like this: static irqreturn_t ipwireless_handle_v2_v3_interrupt(int irq, ipw_hardware_t *hw) { int tx = 0; int rx = 0; int rx_repeat = 0; int b_try_MemTX_OLD; do { u_short memtx = ioread16(hw->MemTX); u_short memtx_serial; u_short memrxdone = ioread16(&hw->memInfReg->MemRXDone); b_try_MemTX_OLD = 0; /* check whether the interrupt was generated by ipwireless card */ if (!(memtx & MEMTX_TX) && !(memrxdone & MEMRX_RX_DONE)) return IRQ_NONE; /* See if the card is physically present. Note that while it is * powering up, it appears not to be present. */ if (ioread32(&hw->memInfReg->MemCardPresent) != CARD_PRESENT_VALUE) { u_short csr = ioread16(&hw->memCCR->PCCSR); csr &= 0xfffd; iowrite16(csr, &hw->memCCR->PCCSR); return IRQ_HANDLED; } I don't think so, but I'm happy to be corrected. Steve --
| Greg Kroah-Hartman | [PATCH 011/196] sysfs: Fix a copy-n-paste typo in comment |
| Al Boldi | Re: [ck] Re: [ANNOUNCE] RSDL completely fair starvation free interactive cpu sched... |
| Andrew Morton | 2.6.25-rc8-mm2 |
| Ingo Molnar | Re: [patch] sched_clock(): cleanups |
| David Miller | [GIT]: Networking |
| John P Poet | Realtek 8111C transmit timed out |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Kenny Chang | Multicast packet loss |
git: | |
