diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2009-11-08 11:24:46 -0500 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2009-11-28 12:03:14 -0500 |
commit | 5fa9167a1bf5f5a4b7282f5e7ac56a4a5a1fa044 (patch) | |
tree | 2bf23e13308ef683302ff5a92af0ae8bc37c1b60 /drivers/scsi/pcmcia | |
parent | dd2e5a156525f11754d9b1e0583f6bb49c253d62 (diff) |
pcmcia: rework the irq_req_t typedef
Most of the irq_req_t typedef'd struct can be re-worked quite
easily:
(1) IRQInfo2 was unused in any case, so drop it.
(2) IRQInfo1 was used write-only, so drop it.
(3) Instance (private data to be passed to the IRQ handler):
Most PCMCIA drivers using pcmcia_request_irq() to actually
register an IRQ handler set the "dev_id" to the same pointer
as the "priv" pointer in struct pcmcia_device. Modify the two
exceptions (ipwireless, ibmtr_cs) to also work this waym and
set the IRQ handler's "dev_id" to p_dev->priv unconditionally.
(4) Handler is to be of type irq_handler_t.
(5) Handler != NULL already tells whether an IRQ handler is present.
Therefore, we do not need the IRQ_HANDLER_PRESENT flag in
irq_req_t.Attributes.
CC: netdev@vger.kernel.org
CC: linux-bluetooth@vger.kernel.org
CC: linux-ide@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-scsi@vger.kernel.org
CC: alsa-devel@alsa-project.org
CC: Jaroslav Kysela <perex@perex.cz>
CC: Jiri Kosina <jkosina@suse.cz>
CC: Karsten Keil <isdn@linux-pingi.de>
for the Bluetooth parts: Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/scsi/pcmcia')
-rw-r--r-- | drivers/scsi/pcmcia/aha152x_stub.c | 1 | ||||
-rw-r--r-- | drivers/scsi/pcmcia/fdomain_stub.c | 1 | ||||
-rw-r--r-- | drivers/scsi/pcmcia/nsp_cs.c | 4 | ||||
-rw-r--r-- | drivers/scsi/pcmcia/qlogic_stub.c | 1 | ||||
-rw-r--r-- | drivers/scsi/pcmcia/sym53c500_cs.c | 1 |
5 files changed, 1 insertions, 7 deletions
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c index 4329e4e5043d..528733b4a392 100644 --- a/drivers/scsi/pcmcia/aha152x_stub.c +++ b/drivers/scsi/pcmcia/aha152x_stub.c | |||
@@ -106,7 +106,6 @@ static int aha152x_probe(struct pcmcia_device *link) | |||
106 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; | 106 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; |
107 | link->io.IOAddrLines = 10; | 107 | link->io.IOAddrLines = 10; |
108 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; | 108 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; |
109 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
110 | link->conf.Attributes = CONF_ENABLE_IRQ; | 109 | link->conf.Attributes = CONF_ENABLE_IRQ; |
111 | link->conf.IntType = INT_MEMORY_AND_IO; | 110 | link->conf.IntType = INT_MEMORY_AND_IO; |
112 | link->conf.Present = PRESENT_OPTION; | 111 | link->conf.Present = PRESENT_OPTION; |
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c index 5792b55c9d3c..914040684079 100644 --- a/drivers/scsi/pcmcia/fdomain_stub.c +++ b/drivers/scsi/pcmcia/fdomain_stub.c | |||
@@ -89,7 +89,6 @@ static int fdomain_probe(struct pcmcia_device *link) | |||
89 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; | 89 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; |
90 | link->io.IOAddrLines = 10; | 90 | link->io.IOAddrLines = 10; |
91 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; | 91 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; |
92 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
93 | link->conf.Attributes = CONF_ENABLE_IRQ; | 92 | link->conf.Attributes = CONF_ENABLE_IRQ; |
94 | link->conf.IntType = INT_MEMORY_AND_IO; | 93 | link->conf.IntType = INT_MEMORY_AND_IO; |
95 | link->conf.Present = PRESENT_OPTION; | 94 | link->conf.Present = PRESENT_OPTION; |
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c index 9dfd6f510b65..c2341af587a3 100644 --- a/drivers/scsi/pcmcia/nsp_cs.c +++ b/drivers/scsi/pcmcia/nsp_cs.c | |||
@@ -1564,12 +1564,10 @@ static int nsp_cs_probe(struct pcmcia_device *link) | |||
1564 | link->io.IOAddrLines = 10; /* not used */ | 1564 | link->io.IOAddrLines = 10; /* not used */ |
1565 | 1565 | ||
1566 | /* Interrupt setup */ | 1566 | /* Interrupt setup */ |
1567 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; | 1567 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; |
1568 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
1569 | 1568 | ||
1570 | /* Interrupt handler */ | 1569 | /* Interrupt handler */ |
1571 | link->irq.Handler = &nspintr; | 1570 | link->irq.Handler = &nspintr; |
1572 | link->irq.Instance = info; | ||
1573 | link->irq.Attributes |= IRQF_SHARED; | 1571 | link->irq.Attributes |= IRQF_SHARED; |
1574 | 1572 | ||
1575 | /* General socket configuration */ | 1573 | /* General socket configuration */ |
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c index 65d7ad58433f..f85f094870b4 100644 --- a/drivers/scsi/pcmcia/qlogic_stub.c +++ b/drivers/scsi/pcmcia/qlogic_stub.c | |||
@@ -162,7 +162,6 @@ static int qlogic_probe(struct pcmcia_device *link) | |||
162 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; | 162 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; |
163 | link->io.IOAddrLines = 10; | 163 | link->io.IOAddrLines = 10; |
164 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; | 164 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; |
165 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
166 | link->conf.Attributes = CONF_ENABLE_IRQ; | 165 | link->conf.Attributes = CONF_ENABLE_IRQ; |
167 | link->conf.IntType = INT_MEMORY_AND_IO; | 166 | link->conf.IntType = INT_MEMORY_AND_IO; |
168 | link->conf.Present = PRESENT_OPTION; | 167 | link->conf.Present = PRESENT_OPTION; |
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c index 851a41ce4f06..e7564d8f0cbf 100644 --- a/drivers/scsi/pcmcia/sym53c500_cs.c +++ b/drivers/scsi/pcmcia/sym53c500_cs.c | |||
@@ -867,7 +867,6 @@ SYM53C500_probe(struct pcmcia_device *link) | |||
867 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; | 867 | link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; |
868 | link->io.IOAddrLines = 10; | 868 | link->io.IOAddrLines = 10; |
869 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; | 869 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; |
870 | link->irq.IRQInfo1 = IRQ_LEVEL_ID; | ||
871 | link->conf.Attributes = CONF_ENABLE_IRQ; | 870 | link->conf.Attributes = CONF_ENABLE_IRQ; |
872 | link->conf.IntType = INT_MEMORY_AND_IO; | 871 | link->conf.IntType = INT_MEMORY_AND_IO; |
873 | 872 | ||