From: Alan Cox <alan@redhat.com>
To: linux-kernel@vger.kernel.org
Subject: [PATCH 02/19] pcmcia: IRQ_TYPE_EXCLUSIVE is long obsoleted
Date: Sun, 05 Oct 2008 17:35:41 +0100 [thread overview]
Message-ID: <20081005163526.3799.57100.stgit@localhost.localdomain> (raw)
In-Reply-To: <20081005163302.3799.61899.stgit@localhost.localdomain>
Switch more drivers to dynamic sharing after checking their IRQ handlers
use dev_id and are robust
Signed-off-by: Alan Cox <alan@redhat.com>
---
drivers/bluetooth/bluecard_cs.c | 2 +-
drivers/bluetooth/bt3c_cs.c | 6 ++++--
drivers/bluetooth/btuart_cs.c | 6 ++++--
drivers/bluetooth/dtl1_cs.c | 7 +++++--
drivers/char/pcmcia/synclink_cs.c | 2 +-
drivers/parport/parport_cs.c | 2 +-
6 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
index bcf5792..3b330a0 100644
--- a/drivers/bluetooth/bluecard_cs.c
+++ b/drivers/bluetooth/bluecard_cs.c
@@ -867,7 +867,7 @@ static int bluecard_probe(struct pcmcia_device *link)
link->io.Attributes1 = IO_DATA_PATH_WIDTH_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.Handler = bluecard_interrupt;
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index 2705847..eddc379 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -343,6 +343,7 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
bt3c_info_t *info = dev_inst;
unsigned int iobase;
int iir;
+ irqreturn_t r = IRQ_NONE;
BUG_ON(!info->hdev);
@@ -374,11 +375,12 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
outb(iir, iobase + CONTROL);
}
+ r = IRQ_HANDLED;
}
spin_unlock(&(info->lock));
- return IRQ_HANDLED;
+ return r;
}
@@ -657,7 +659,7 @@ static int bt3c_probe(struct pcmcia_device *link)
link->io.Attributes1 = IO_DATA_PATH_WIDTH_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.Handler = bt3c_interrupt;
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
index 68d1d25..1de13ed 100644
--- a/drivers/bluetooth/btuart_cs.c
+++ b/drivers/bluetooth/btuart_cs.c
@@ -293,6 +293,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
unsigned int iobase;
int boguscount = 0;
int iir, lsr;
+ irqreturn_t r = IRQ_NONE;
BUG_ON(!info->hdev);
@@ -302,6 +303,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
iir = inb(iobase + UART_IIR) & UART_IIR_ID;
while (iir) {
+ r = IRQ_HANDLED;
/* Clear interrupt */
lsr = inb(iobase + UART_LSR);
@@ -335,7 +337,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
spin_unlock(&(info->lock));
- return IRQ_HANDLED;
+ return r;
}
@@ -586,7 +588,7 @@ static int btuart_probe(struct pcmcia_device *link)
link->io.Attributes1 = IO_DATA_PATH_WIDTH_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.Handler = btuart_interrupt;
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
index dae45cd..9b7756b 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)
unsigned char msr;
int boguscount = 0;
int iir, lsr;
+ irqreturn_t r = IRQ_NONE;
BUG_ON(!info->hdev);
@@ -307,6 +308,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
iir = inb(iobase + UART_IIR) & UART_IIR_ID;
while (iir) {
+ r = IRQ_HANDLED;
/* Clear interrupt */
lsr = inb(iobase + UART_LSR);
@@ -343,11 +345,12 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
info->ri_latch = msr & UART_MSR_RI;
clear_bit(XMIT_WAITING, &(info->tx_state));
dtl1_write_wakeup(info);
+ r = IRQ_HANDLED;
}
spin_unlock(&(info->lock));
- return IRQ_HANDLED;
+ return r;
}
@@ -568,7 +571,7 @@ static int dtl1_probe(struct pcmcia_device *link)
link->io.Attributes1 = IO_DATA_PATH_WIDTH_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.Handler = dtl1_interrupt;
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
index c240562..e580f30 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -554,7 +554,7 @@ static int mgslpc_probe(struct pcmcia_device *link)
/* Initialize the struct pcmcia_device structure */
/* Interrupt setup */
- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
+ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
link->irq.IRQInfo1 = IRQ_LEVEL_ID;
link->irq.Handler = NULL;
diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c
index 00e1d96..f89c2b7 100644
--- a/drivers/parport/parport_cs.c
+++ b/drivers/parport/parport_cs.c
@@ -112,7 +112,7 @@ static int parport_probe(struct pcmcia_device *link)
link->io.Attributes1 = 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->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
next prev parent reply other threads:[~2008-10-05 16:37 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-05 16:34 [PATCH 00/19] Alan's Miscellaneous Tree Alan Cox
2008-10-05 16:35 ` [PATCH 01/19] pcmcia: Fix wireless drivers Alan Cox
2008-10-05 16:35 ` Alan Cox [this message]
2008-10-05 16:40 ` [PATCH 02/19] pcmcia: IRQ_TYPE_EXCLUSIVE is long obsoleted Marcel Holtmann
2008-10-17 21:17 ` Dominik Brodowski
2008-10-05 16:35 ` [PATCH 03/19] pcmcia: Whine harder about use of EXCLUSIVE Alan Cox
2008-10-17 21:17 ` Dominik Brodowski
2008-10-05 16:36 ` [PATCH 04/19] ib700wdt: Fix off by one Alan Cox
2008-10-05 16:36 ` [PATCH 05/19] aic7xxx: MHz not Mhz for SI unit pedants Alan Cox
2008-10-05 16:36 ` [PATCH 06/19] hfsplus: O_LARGEFILE checking is missing Alan Cox
2008-10-05 16:36 ` [PATCH 07/19] mtd: intel_dc21285 switch to ROM API Alan Cox
2008-10-05 16:36 ` [PATCH 08/19] qla2xxx: Switch " Alan Cox
2008-10-05 16:37 ` [PATCH 09/19] mtd: map_rom has NULL erase pointer Alan Cox
2008-10-05 16:37 ` [PATCH 10/19] ibmtr: PCMCIA IBMTR is ok on 64bit Alan Cox
2008-10-05 16:37 ` [PATCH 11/19] mptlan: Kill unused NAA workaround code Alan Cox
2008-10-05 16:37 ` [PATCH 12/19] pxa27x_udc: leak fix Alan Cox
2008-10-05 16:37 ` [PATCH 13/19] serial_8250: pci_enable_device fail is not fully handled Alan Cox
2008-10-05 16:38 ` [PATCH 14/19] parport: quickfix the proc registration bug Alan Cox
2008-10-05 18:10 ` Frans Pop
2008-10-05 18:22 ` Alan Cox
2008-10-05 16:38 ` [PATCH 15/19] email: sort out a consistent email address for contributions and stuff Alan Cox
2008-10-05 16:38 ` [PATCH 16/19] mptsas: remove unneeded check Alan Cox
2008-10-05 16:38 ` [PATCH 17/19] cdc-acm: Add another conexant modem to the quirks Alan Cox
2008-10-05 16:39 ` [PATCH 18/19] modinfo: Remove duplicate modinfo from some drivers Alan Cox
2008-10-06 8:54 ` Adrian Bunk
2008-10-05 16:39 ` [PATCH 19/19] fdomain_cs: Sort out modules with duplicate description Alan Cox
2008-10-17 21:18 ` Dominik Brodowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081005163526.3799.57100.stgit@localhost.localdomain \
--to=alan@redhat.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.