aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/pcmcia/smc91c92_cs.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2010-03-07 06:21:16 -0500
committerDominik Brodowski <linux@dominikbrodowski.net>2010-05-10 04:23:13 -0400
commiteb14120f743d29744d9475bffec56ff4ad43a749 (patch)
tree56857094d2b0cfc0ecbd1685f18d6edbe78e140f /drivers/net/pcmcia/smc91c92_cs.c
parenta7debe789dfcaee9c4d81e5738b0be8c5d93930b (diff)
pcmcia: re-work pcmcia_request_irq()
Instead of the old pcmcia_request_irq() interface, drivers may now choose between: - calling request_irq/free_irq directly. Use the IRQ from *p_dev->irq. - use pcmcia_request_irq(p_dev, handler_t); the PCMCIA core will clean up automatically on calls to pcmcia_disable_device() or device ejection. - drivers still not capable of IRQF_SHARED (or not telling us so) may use the deprecated pcmcia_request_exclusive_irq() for the time being; they might receive a shared IRQ nonetheless. CC: linux-bluetooth@vger.kernel.org CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-serial@vger.kernel.org CC: alsa-devel@alsa-project.org CC: linux-usb@vger.kernel.org CC: linux-ide@vger.kernel.org Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/net/pcmcia/smc91c92_cs.c')
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index ccc553782a0..ad061c7106b 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -329,8 +329,6 @@ static int smc91c92_probe(struct pcmcia_device *link)
329 link->io.NumPorts1 = 16; 329 link->io.NumPorts1 = 16;
330 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; 330 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
331 link->io.IOAddrLines = 4; 331 link->io.IOAddrLines = 4;
332 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
333 link->irq.Handler = &smc_interrupt;
334 link->conf.Attributes = CONF_ENABLE_IRQ; 332 link->conf.Attributes = CONF_ENABLE_IRQ;
335 link->conf.IntType = INT_MEMORY_AND_IO; 333 link->conf.IntType = INT_MEMORY_AND_IO;
336 334
@@ -453,7 +451,6 @@ static int mhz_mfc_config(struct pcmcia_device *link)
453 451
454 link->conf.Attributes |= CONF_ENABLE_SPKR; 452 link->conf.Attributes |= CONF_ENABLE_SPKR;
455 link->conf.Status = CCSR_AUDIO_ENA; 453 link->conf.Status = CCSR_AUDIO_ENA;
456 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
457 link->io.IOAddrLines = 16; 454 link->io.IOAddrLines = 16;
458 link->io.Attributes2 = IO_DATA_PATH_WIDTH_8; 455 link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
459 link->io.NumPorts2 = 8; 456 link->io.NumPorts2 = 8;
@@ -652,7 +649,6 @@ static int osi_config(struct pcmcia_device *link)
652 649
653 link->conf.Attributes |= CONF_ENABLE_SPKR; 650 link->conf.Attributes |= CONF_ENABLE_SPKR;
654 link->conf.Status = CCSR_AUDIO_ENA; 651 link->conf.Status = CCSR_AUDIO_ENA;
655 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
656 link->io.NumPorts1 = 64; 652 link->io.NumPorts1 = 64;
657 link->io.Attributes2 = IO_DATA_PATH_WIDTH_8; 653 link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
658 link->io.NumPorts2 = 8; 654 link->io.NumPorts2 = 8;
@@ -877,7 +873,7 @@ static int smc91c92_config(struct pcmcia_device *link)
877 if (i) 873 if (i)
878 goto config_failed; 874 goto config_failed;
879 875
880 i = pcmcia_request_irq(link, &link->irq); 876 i = pcmcia_request_irq(link, smc_interrupt);
881 if (i) 877 if (i)
882 goto config_failed; 878 goto config_failed;
883 i = pcmcia_request_configuration(link, &link->conf); 879 i = pcmcia_request_configuration(link, &link->conf);
@@ -887,7 +883,7 @@ static int smc91c92_config(struct pcmcia_device *link)
887 if (smc->manfid == MANFID_MOTOROLA) 883 if (smc->manfid == MANFID_MOTOROLA)
888 mot_config(link); 884 mot_config(link);
889 885
890 dev->irq = link->irq.AssignedIRQ; 886 dev->irq = link->irq;
891 887
892 if ((if_port >= 0) && (if_port <= 2)) 888 if ((if_port >= 0) && (if_port <= 2))
893 dev->if_port = if_port; 889 dev->if_port = if_port;