diff options
Diffstat (limited to 'sound/isa/sb/es968.c')
-rw-r--r-- | sound/isa/sb/es968.c | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/sound/isa/sb/es968.c b/sound/isa/sb/es968.c index d4b218726ce7..c8c8e214c843 100644 --- a/sound/isa/sb/es968.c +++ b/sound/isa/sb/es968.c | |||
@@ -20,7 +20,6 @@ | |||
20 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 20 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <sound/driver.h> | ||
24 | #include <linux/init.h> | 23 | #include <linux/init.h> |
25 | #include <linux/time.h> | 24 | #include <linux/time.h> |
26 | #include <linux/pnp.h> | 25 | #include <linux/pnp.h> |
@@ -49,12 +48,6 @@ module_param_array(id, charp, NULL, 0444); | |||
49 | MODULE_PARM_DESC(id, "ID string for es968 based soundcard."); | 48 | MODULE_PARM_DESC(id, "ID string for es968 based soundcard."); |
50 | module_param_array(enable, bool, NULL, 0444); | 49 | module_param_array(enable, bool, NULL, 0444); |
51 | MODULE_PARM_DESC(enable, "Enable es968 based soundcard."); | 50 | MODULE_PARM_DESC(enable, "Enable es968 based soundcard."); |
52 | module_param_array(port, long, NULL, 0444); | ||
53 | MODULE_PARM_DESC(port, "Port # for es968 driver."); | ||
54 | module_param_array(irq, int, NULL, 0444); | ||
55 | MODULE_PARM_DESC(irq, "IRQ # for es968 driver."); | ||
56 | module_param_array(dma8, int, NULL, 0444); | ||
57 | MODULE_PARM_DESC(dma8, "8-bit DMA # for es968 driver."); | ||
58 | 51 | ||
59 | struct snd_card_es968 { | 52 | struct snd_card_es968 { |
60 | struct pnp_dev *dev; | 53 | struct pnp_dev *dev; |
@@ -86,40 +79,23 @@ static int __devinit snd_card_es968_pnp(int dev, struct snd_card_es968 *acard, | |||
86 | const struct pnp_card_device_id *id) | 79 | const struct pnp_card_device_id *id) |
87 | { | 80 | { |
88 | struct pnp_dev *pdev; | 81 | struct pnp_dev *pdev; |
89 | struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL); | ||
90 | int err; | 82 | int err; |
91 | if (!cfg) | 83 | |
92 | return -ENOMEM; | ||
93 | acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); | 84 | acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); |
94 | if (acard->dev == NULL) { | 85 | if (acard->dev == NULL) |
95 | kfree(cfg); | ||
96 | return -ENODEV; | 86 | return -ENODEV; |
97 | } | ||
98 | 87 | ||
99 | pdev = acard->dev; | 88 | pdev = acard->dev; |
100 | 89 | ||
101 | pnp_init_resource_table(cfg); | ||
102 | |||
103 | /* override resources */ | ||
104 | if (port[dev] != SNDRV_AUTO_PORT) | ||
105 | pnp_resource_change(&cfg->port_resource[0], port[dev], 16); | ||
106 | if (dma8[dev] != SNDRV_AUTO_DMA) | ||
107 | pnp_resource_change(&cfg->dma_resource[0], dma8[dev], 1); | ||
108 | if (irq[dev] != SNDRV_AUTO_IRQ) | ||
109 | pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1); | ||
110 | if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0) | ||
111 | snd_printk(KERN_ERR PFX "AUDIO the requested resources are invalid, using auto config\n"); | ||
112 | err = pnp_activate_dev(pdev); | 90 | err = pnp_activate_dev(pdev); |
113 | if (err < 0) { | 91 | if (err < 0) { |
114 | snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n"); | 92 | snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n"); |
115 | kfree(cfg); | ||
116 | return err; | 93 | return err; |
117 | } | 94 | } |
118 | port[dev] = pnp_port_start(pdev, 0); | 95 | port[dev] = pnp_port_start(pdev, 0); |
119 | dma8[dev] = pnp_dma(pdev, 1); | 96 | dma8[dev] = pnp_dma(pdev, 1); |
120 | irq[dev] = pnp_irq(pdev, 0); | 97 | irq[dev] = pnp_irq(pdev, 0); |
121 | 98 | ||
122 | kfree(cfg); | ||
123 | return 0; | 99 | return 0; |
124 | } | 100 | } |
125 | 101 | ||