diff options
Diffstat (limited to 'drivers/bluetooth/dtl1_cs.c')
| -rw-r--r-- | drivers/bluetooth/dtl1_cs.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c index e6e6b037695a..901bdd95655f 100644 --- a/drivers/bluetooth/dtl1_cs.c +++ b/drivers/bluetooth/dtl1_cs.c | |||
| @@ -297,6 +297,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst) | |||
| 297 | unsigned char msr; | 297 | unsigned char msr; |
| 298 | int boguscount = 0; | 298 | int boguscount = 0; |
| 299 | int iir, lsr; | 299 | int iir, lsr; |
| 300 | irqreturn_t r = IRQ_NONE; | ||
| 300 | 301 | ||
| 301 | BUG_ON(!info->hdev); | 302 | BUG_ON(!info->hdev); |
| 302 | 303 | ||
| @@ -307,6 +308,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst) | |||
| 307 | iir = inb(iobase + UART_IIR) & UART_IIR_ID; | 308 | iir = inb(iobase + UART_IIR) & UART_IIR_ID; |
| 308 | while (iir) { | 309 | while (iir) { |
| 309 | 310 | ||
| 311 | r = IRQ_HANDLED; | ||
| 310 | /* Clear interrupt */ | 312 | /* Clear interrupt */ |
| 311 | lsr = inb(iobase + UART_LSR); | 313 | lsr = inb(iobase + UART_LSR); |
| 312 | 314 | ||
| @@ -343,11 +345,12 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst) | |||
| 343 | info->ri_latch = msr & UART_MSR_RI; | 345 | info->ri_latch = msr & UART_MSR_RI; |
| 344 | clear_bit(XMIT_WAITING, &(info->tx_state)); | 346 | clear_bit(XMIT_WAITING, &(info->tx_state)); |
| 345 | dtl1_write_wakeup(info); | 347 | dtl1_write_wakeup(info); |
| 348 | r = IRQ_HANDLED; | ||
| 346 | } | 349 | } |
| 347 | 350 | ||
| 348 | spin_unlock(&(info->lock)); | 351 | spin_unlock(&(info->lock)); |
| 349 | 352 | ||
| 350 | return IRQ_HANDLED; | 353 | return r; |
| 351 | } | 354 | } |
| 352 | 355 | ||
| 353 | 356 | ||
| @@ -568,7 +571,7 @@ static int dtl1_probe(struct pcmcia_device *link) | |||
| 568 | 571 | ||
| 569 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; | 572 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; |
| 570 | link->io.NumPorts1 = 8; | 573 | link->io.NumPorts1 = 8; |
| 571 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; | 574 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT; |
| 572 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | 575 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; |
| 573 | 576 | ||
| 574 | link->irq.Handler = dtl1_interrupt; | 577 | link->irq.Handler = dtl1_interrupt; |
