Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 317862
b: refs/heads/master
c: 80145a5
h: refs/heads/master
v: v3
  • Loading branch information
Devendra Naga authored and Greg Kroah-Hartman committed Jul 12, 2012
1 parent 32b1e7c commit ed2287e
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 30 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 69a7cd7dd54d4d7a129c209a9586f850b13721bb
refs/heads/master: 80145a579f167f090af3b2716f14a6b0a82b4e76
60 changes: 31 additions & 29 deletions trunk/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1996,41 +1996,43 @@ static irqreturn_t ft1000_interrupt(int irq, void *dev_id)
inttype = ft1000_read_reg(dev, FT1000_REG_SUP_ISR);

// Make sure we process all interrupt before leaving the ISR due to the edge trigger interrupt type
while (inttype) {
while (inttype) {
if (inttype & ISR_DOORBELL_PEND)
ft1000_parse_dpram_msg(dev);

if (inttype & ISR_RCV) {
DEBUG(1, "Data in FIFO\n");
if (inttype & ISR_RCV) {
DEBUG(1, "Data in FIFO\n");

cnt = 0;
do {
// Check if we have packets in the Downlink FIFO
if (info->AsicID == ELECTRABUZZ_ID) {
tempword =
ft1000_read_reg(dev, FT1000_REG_DFIFO_STAT);
} else {
tempword =
ft1000_read_reg(dev, FT1000_REG_MAG_DFSR);
}
if (tempword & 0x1f) {
ft1000_copy_up_pkt(dev);
} else {
break;
}
cnt++;
} while (cnt < MAX_RCV_LOOP);
cnt = 0;
do {
// Check if we have packets in the Downlink FIFO
if (info->AsicID == ELECTRABUZZ_ID) {
tempword =
ft1000_read_reg(dev,
FT1000_REG_DFIFO_STAT);
} else {
tempword =
ft1000_read_reg(dev,
FT1000_REG_MAG_DFSR);
}
if (tempword & 0x1f) {
ft1000_copy_up_pkt(dev);
} else {
break;
}
cnt++;
} while (cnt < MAX_RCV_LOOP);

}
// clear interrupts
tempword = ft1000_read_reg(dev, FT1000_REG_SUP_ISR);
DEBUG(1, "ft1000_hw: interrupt status register = 0x%x\n", tempword);
ft1000_write_reg(dev, FT1000_REG_SUP_ISR, tempword);

// Read interrupt type
inttype = ft1000_read_reg (dev, FT1000_REG_SUP_ISR);
DEBUG(1,"ft1000_hw: interrupt status register after clear = 0x%x\n",inttype);
}
// clear interrupts
tempword = ft1000_read_reg(dev, FT1000_REG_SUP_ISR);
DEBUG(1, "ft1000_hw: interrupt status register = 0x%x\n", tempword);
ft1000_write_reg(dev, FT1000_REG_SUP_ISR, tempword);

// Read interrupt type
inttype = ft1000_read_reg (dev, FT1000_REG_SUP_ISR);
DEBUG(1,"ft1000_hw: interrupt status register after clear = 0x%x\n",inttype);
}
ft1000_enable_interrupts(dev);
return IRQ_HANDLED;
}
Expand Down

0 comments on commit ed2287e

Please sign in to comment.