Commit c732acd9 authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:
  fdomain_cs: Sort out modules with duplicate description
  pcmcia: Whine harder about use of EXCLUSIVE
  pcmcia: IRQ_TYPE_EXCLUSIVE is long obsoleted
parents 1b2d3d94 5cb02ff3
...@@ -867,7 +867,7 @@ static int bluecard_probe(struct pcmcia_device *link) ...@@ -867,7 +867,7 @@ static int bluecard_probe(struct pcmcia_device *link)
link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
link->io.NumPorts1 = 8; link->io.NumPorts1 = 8;
link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
link->irq.IRQInfo1 = IRQ_LEVEL_ID; link->irq.IRQInfo1 = IRQ_LEVEL_ID;
link->irq.Handler = bluecard_interrupt; link->irq.Handler = bluecard_interrupt;
......
...@@ -343,6 +343,7 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst) ...@@ -343,6 +343,7 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
bt3c_info_t *info = dev_inst; bt3c_info_t *info = dev_inst;
unsigned int iobase; unsigned int iobase;
int iir; int iir;
irqreturn_t r = IRQ_NONE;
BUG_ON(!info->hdev); BUG_ON(!info->hdev);
...@@ -374,11 +375,12 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst) ...@@ -374,11 +375,12 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
outb(iir, iobase + CONTROL); outb(iir, iobase + CONTROL);
} }
r = IRQ_HANDLED;
} }
spin_unlock(&(info->lock)); spin_unlock(&(info->lock));
return IRQ_HANDLED; return r;
} }
...@@ -657,7 +659,7 @@ static int bt3c_probe(struct pcmcia_device *link) ...@@ -657,7 +659,7 @@ static int bt3c_probe(struct pcmcia_device *link)
link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
link->io.NumPorts1 = 8; link->io.NumPorts1 = 8;
link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
link->irq.IRQInfo1 = IRQ_LEVEL_ID; link->irq.IRQInfo1 = IRQ_LEVEL_ID;
link->irq.Handler = bt3c_interrupt; link->irq.Handler = bt3c_interrupt;
......
...@@ -293,6 +293,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst) ...@@ -293,6 +293,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
unsigned int iobase; unsigned int iobase;
int boguscount = 0; int boguscount = 0;
int iir, lsr; int iir, lsr;
irqreturn_t r = IRQ_NONE;
BUG_ON(!info->hdev); BUG_ON(!info->hdev);
...@@ -302,6 +303,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst) ...@@ -302,6 +303,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
iir = inb(iobase + UART_IIR) & UART_IIR_ID; iir = inb(iobase + UART_IIR) & UART_IIR_ID;
while (iir) { while (iir) {
r = IRQ_HANDLED;
/* Clear interrupt */ /* Clear interrupt */
lsr = inb(iobase + UART_LSR); lsr = inb(iobase + UART_LSR);
...@@ -335,7 +337,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst) ...@@ -335,7 +337,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
spin_unlock(&(info->lock)); spin_unlock(&(info->lock));
return IRQ_HANDLED; return r;
} }
...@@ -586,7 +588,7 @@ static int btuart_probe(struct pcmcia_device *link) ...@@ -586,7 +588,7 @@ static int btuart_probe(struct pcmcia_device *link)
link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
link->io.NumPorts1 = 8; link->io.NumPorts1 = 8;
link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
link->irq.IRQInfo1 = IRQ_LEVEL_ID; link->irq.IRQInfo1 = IRQ_LEVEL_ID;
link->irq.Handler = btuart_interrupt; link->irq.Handler = btuart_interrupt;
......
...@@ -297,6 +297,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst) ...@@ -297,6 +297,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
unsigned char msr; unsigned char msr;
int boguscount = 0; int boguscount = 0;
int iir, lsr; int iir, lsr;
irqreturn_t r = IRQ_NONE;
BUG_ON(!info->hdev); BUG_ON(!info->hdev);
...@@ -307,6 +308,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst) ...@@ -307,6 +308,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
iir = inb(iobase + UART_IIR) & UART_IIR_ID; iir = inb(iobase + UART_IIR) & UART_IIR_ID;
while (iir) { while (iir) {
r = IRQ_HANDLED;
/* Clear interrupt */ /* Clear interrupt */
lsr = inb(iobase + UART_LSR); lsr = inb(iobase + UART_LSR);
...@@ -343,11 +345,12 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst) ...@@ -343,11 +345,12 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
info->ri_latch = msr & UART_MSR_RI; info->ri_latch = msr & UART_MSR_RI;
clear_bit(XMIT_WAITING, &(info->tx_state)); clear_bit(XMIT_WAITING, &(info->tx_state));
dtl1_write_wakeup(info); dtl1_write_wakeup(info);
r = IRQ_HANDLED;
} }
spin_unlock(&(info->lock)); spin_unlock(&(info->lock));
return IRQ_HANDLED; return r;
} }
...@@ -568,7 +571,7 @@ static int dtl1_probe(struct pcmcia_device *link) ...@@ -568,7 +571,7 @@ static int dtl1_probe(struct pcmcia_device *link)
link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
link->io.NumPorts1 = 8; link->io.NumPorts1 = 8;
link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
link->irq.IRQInfo1 = IRQ_LEVEL_ID; link->irq.IRQInfo1 = IRQ_LEVEL_ID;
link->irq.Handler = dtl1_interrupt; link->irq.Handler = dtl1_interrupt;
......
...@@ -554,7 +554,7 @@ static int mgslpc_probe(struct pcmcia_device *link) ...@@ -554,7 +554,7 @@ static int mgslpc_probe(struct pcmcia_device *link)
/* Initialize the struct pcmcia_device structure */ /* Initialize the struct pcmcia_device structure */
/* Interrupt setup */ /* Interrupt setup */
link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
link->irq.IRQInfo1 = IRQ_LEVEL_ID; link->irq.IRQInfo1 = IRQ_LEVEL_ID;
link->irq.Handler = NULL; link->irq.Handler = NULL;
......
...@@ -112,7 +112,7 @@ static int parport_probe(struct pcmcia_device *link) ...@@ -112,7 +112,7 @@ static int parport_probe(struct pcmcia_device *link)
link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
link->io.Attributes2 = IO_DATA_PATH_WIDTH_8; link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
link->irq.IRQInfo1 = IRQ_LEVEL_ID; link->irq.IRQInfo1 = IRQ_LEVEL_ID;
link->conf.Attributes = CONF_ENABLE_IRQ; link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO; link->conf.IntType = INT_MEMORY_AND_IO;
......
...@@ -693,8 +693,9 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req) ...@@ -693,8 +693,9 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
type = 0; type = 0;
if (s->functions > 1) /* All of this ought to be handled higher up */ if (s->functions > 1) /* All of this ought to be handled higher up */
type = IRQF_SHARED; type = IRQF_SHARED;
if (req->Attributes & IRQ_TYPE_DYNAMIC_SHARING) else if (req->Attributes & IRQ_TYPE_DYNAMIC_SHARING)
type = IRQF_SHARED; type = IRQF_SHARED;
else printk(KERN_WARNING "pcmcia: Driver needs updating to support IRQ sharing.\n");
#ifdef CONFIG_PCMCIA_PROBE #ifdef CONFIG_PCMCIA_PROBE
......
...@@ -290,9 +290,11 @@ ...@@ -290,9 +290,11 @@
#include <scsi/scsi_ioctl.h> #include <scsi/scsi_ioctl.h>
#include "fdomain.h" #include "fdomain.h"
#ifndef PCMCIA
MODULE_AUTHOR("Rickard E. Faith"); MODULE_AUTHOR("Rickard E. Faith");
MODULE_DESCRIPTION("Future domain SCSI driver"); MODULE_DESCRIPTION("Future domain SCSI driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#endif
#define VERSION "$Revision: 5.51 $" #define VERSION "$Revision: 5.51 $"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment