Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 325139
b: refs/heads/master
c: f123f28
h: refs/heads/master
i:
  325137: b0b60cb
  325135: 7564c49
v: v3
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Sep 11, 2012
1 parent 28d3ddb commit 10123c2
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 10 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: 3eb60d7309043831d8d345bd7fc32459598ade8c
refs/heads/master: f123f287e03ed19a2eb6a4fd6a15908f76c9f086
12 changes: 3 additions & 9 deletions trunk/drivers/staging/comedi/drivers/adl_pci9111.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ a multiple of chanlist_len*convert_arg.
#define PCI9111_SOFTWARE_TRIGGER_REG 0x0E
#define PCI9111_REGISTER_INTERRUPT_CONTROL 0x0C
#define PCI9111_8254_BASE_REG 0x40
#define PCI9111_REGISTER_INTERRUPT_CLEAR 0x48
#define PCI9111_INT_CLR_REG 0x48

#define PCI9111_TRIGGER_MASK 0x0F
#define PCI9111_PTRG_OFF (0 << 3)
Expand Down Expand Up @@ -146,9 +146,6 @@ a multiple of chanlist_len*convert_arg.
#define pci9111_interrupt_and_fifo_set(flags) \
outb(flags, dev->iobase + PCI9111_REGISTER_INTERRUPT_CONTROL)

#define pci9111_interrupt_clear() \
outb(0, dev->iobase + PCI9111_REGISTER_INTERRUPT_CLEAR)

#define pci9111_fifo_reset() do { \
outb(PCI9111_FFEN_SET_FIFO_ENABLE, \
dev->iobase + PCI9111_REGISTER_INTERRUPT_CONTROL); \
Expand Down Expand Up @@ -722,7 +719,7 @@ static irqreturn_t pci9111_interrupt(int irq, void *p_device)
if (!(status & PCI9111_FIFO_FULL_MASK)) {
spin_unlock_irqrestore(&dev->spinlock, irq_flags);
comedi_error(dev, PCI9111_DRIVER_NAME " fifo overflow");
pci9111_interrupt_clear();
outb(0, dev->iobase + PCI9111_INT_CLR_REG);
pci9111_ai_cancel(dev, s);
async->events |= COMEDI_CB_ERROR | COMEDI_CB_EOA;
comedi_event(dev, s);
Expand Down Expand Up @@ -808,10 +805,7 @@ static irqreturn_t pci9111_interrupt(int irq, void *p_device)
pci9111_ai_cancel(dev, s);
}

/* Very important, otherwise another interrupt request will be inserted
* and will cause driver hangs on processing interrupt event. */

pci9111_interrupt_clear();
outb(0, dev->iobase + PCI9111_INT_CLR_REG);

spin_unlock_irqrestore(&dev->spinlock, irq_flags);

Expand Down

0 comments on commit 10123c2

Please sign in to comment.