diff options
Diffstat (limited to 'sound/isa/azt2320.c')
| -rw-r--r-- | sound/isa/azt2320.c | 51 |
1 files changed, 1 insertions, 50 deletions
diff --git a/sound/isa/azt2320.c b/sound/isa/azt2320.c index b615538a928d..154e728f592d 100644 --- a/sound/isa/azt2320.c +++ b/sound/isa/azt2320.c | |||
| @@ -29,7 +29,6 @@ | |||
| 29 | activation method (full-duplex audio!). | 29 | activation method (full-duplex audio!). |
| 30 | */ | 30 | */ |
| 31 | 31 | ||
| 32 | #include <sound/driver.h> | ||
| 33 | #include <asm/io.h> | 32 | #include <asm/io.h> |
| 34 | #include <linux/delay.h> | 33 | #include <linux/delay.h> |
| 35 | #include <linux/init.h> | 34 | #include <linux/init.h> |
| @@ -72,22 +71,6 @@ module_param_array(id, charp, NULL, 0444); | |||
| 72 | MODULE_PARM_DESC(id, "ID string for azt2320 based soundcard."); | 71 | MODULE_PARM_DESC(id, "ID string for azt2320 based soundcard."); |
| 73 | module_param_array(enable, bool, NULL, 0444); | 72 | module_param_array(enable, bool, NULL, 0444); |
| 74 | MODULE_PARM_DESC(enable, "Enable azt2320 based soundcard."); | 73 | MODULE_PARM_DESC(enable, "Enable azt2320 based soundcard."); |
| 75 | module_param_array(port, long, NULL, 0444); | ||
| 76 | MODULE_PARM_DESC(port, "Port # for azt2320 driver."); | ||
| 77 | module_param_array(wss_port, long, NULL, 0444); | ||
| 78 | MODULE_PARM_DESC(wss_port, "WSS Port # for azt2320 driver."); | ||
| 79 | module_param_array(mpu_port, long, NULL, 0444); | ||
| 80 | MODULE_PARM_DESC(mpu_port, "MPU-401 port # for azt2320 driver."); | ||
| 81 | module_param_array(fm_port, long, NULL, 0444); | ||
| 82 | MODULE_PARM_DESC(fm_port, "FM port # for azt2320 driver."); | ||
| 83 | module_param_array(irq, int, NULL, 0444); | ||
| 84 | MODULE_PARM_DESC(irq, "IRQ # for azt2320 driver."); | ||
| 85 | module_param_array(mpu_irq, int, NULL, 0444); | ||
| 86 | MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for azt2320 driver."); | ||
| 87 | module_param_array(dma1, int, NULL, 0444); | ||
| 88 | MODULE_PARM_DESC(dma1, "1st DMA # for azt2320 driver."); | ||
| 89 | module_param_array(dma2, int, NULL, 0444); | ||
| 90 | MODULE_PARM_DESC(dma2, "2nd DMA # for azt2320 driver."); | ||
| 91 | 74 | ||
| 92 | struct snd_card_azt2320 { | 75 | struct snd_card_azt2320 { |
| 93 | int dev_no; | 76 | int dev_no; |
| @@ -121,43 +104,19 @@ static int __devinit snd_card_azt2320_pnp(int dev, struct snd_card_azt2320 *acar | |||
| 121 | const struct pnp_card_device_id *id) | 104 | const struct pnp_card_device_id *id) |
| 122 | { | 105 | { |
| 123 | struct pnp_dev *pdev; | 106 | struct pnp_dev *pdev; |
| 124 | struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL); | ||
| 125 | int err; | 107 | int err; |
| 126 | 108 | ||
| 127 | if (!cfg) | ||
| 128 | return -ENOMEM; | ||
| 129 | |||
| 130 | acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); | 109 | acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); |
| 131 | if (acard->dev == NULL) { | 110 | if (acard->dev == NULL) |
| 132 | kfree(cfg); | ||
| 133 | return -ENODEV; | 111 | return -ENODEV; |
| 134 | } | ||
| 135 | 112 | ||
| 136 | acard->devmpu = pnp_request_card_device(card, id->devs[1].id, NULL); | 113 | acard->devmpu = pnp_request_card_device(card, id->devs[1].id, NULL); |
| 137 | 114 | ||
| 138 | pdev = acard->dev; | 115 | pdev = acard->dev; |
| 139 | pnp_init_resource_table(cfg); | ||
| 140 | |||
| 141 | /* override resources */ | ||
| 142 | if (port[dev] != SNDRV_AUTO_PORT) | ||
| 143 | pnp_resource_change(&cfg->port_resource[0], port[dev], 16); | ||
| 144 | if (fm_port[dev] != SNDRV_AUTO_PORT) | ||
| 145 | pnp_resource_change(&cfg->port_resource[1], fm_port[dev], 4); | ||
| 146 | if (wss_port[dev] != SNDRV_AUTO_PORT) | ||
| 147 | pnp_resource_change(&cfg->port_resource[2], wss_port[dev], 4); | ||
| 148 | if (dma1[dev] != SNDRV_AUTO_DMA) | ||
| 149 | pnp_resource_change(&cfg->dma_resource[0], dma1[dev], 1); | ||
| 150 | if (dma2[dev] != SNDRV_AUTO_DMA) | ||
| 151 | pnp_resource_change(&cfg->dma_resource[1], dma2[dev], 1); | ||
| 152 | if (irq[dev] != SNDRV_AUTO_IRQ) | ||
| 153 | pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1); | ||
| 154 | if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0) | ||
| 155 | snd_printk(KERN_ERR PFX "AUDIO the requested resources are invalid, using auto config\n"); | ||
| 156 | 116 | ||
| 157 | err = pnp_activate_dev(pdev); | 117 | err = pnp_activate_dev(pdev); |
| 158 | if (err < 0) { | 118 | if (err < 0) { |
| 159 | snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n"); | 119 | snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n"); |
| 160 | kfree(cfg); | ||
| 161 | return err; | 120 | return err; |
| 162 | } | 121 | } |
| 163 | port[dev] = pnp_port_start(pdev, 0); | 122 | port[dev] = pnp_port_start(pdev, 0); |
| @@ -169,13 +128,6 @@ static int __devinit snd_card_azt2320_pnp(int dev, struct snd_card_azt2320 *acar | |||
| 169 | 128 | ||
| 170 | pdev = acard->devmpu; | 129 | pdev = acard->devmpu; |
| 171 | if (pdev != NULL) { | 130 | if (pdev != NULL) { |
| 172 | pnp_init_resource_table(cfg); | ||
| 173 | if (mpu_port[dev] != SNDRV_AUTO_PORT) | ||
| 174 | pnp_resource_change(&cfg->port_resource[0], mpu_port[dev], 2); | ||
| 175 | if (mpu_irq[dev] != SNDRV_AUTO_IRQ) | ||
| 176 | pnp_resource_change(&cfg->irq_resource[0], mpu_irq[dev], 1); | ||
| 177 | if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0) | ||
| 178 | snd_printk(KERN_ERR PFX "MPU401 the requested resources are invalid, using auto config\n"); | ||
| 179 | err = pnp_activate_dev(pdev); | 131 | err = pnp_activate_dev(pdev); |
| 180 | if (err < 0) | 132 | if (err < 0) |
| 181 | goto __mpu_error; | 133 | goto __mpu_error; |
| @@ -191,7 +143,6 @@ static int __devinit snd_card_azt2320_pnp(int dev, struct snd_card_azt2320 *acar | |||
| 191 | mpu_port[dev] = -1; | 143 | mpu_port[dev] = -1; |
| 192 | } | 144 | } |
| 193 | 145 | ||
| 194 | kfree (cfg); | ||
| 195 | return 0; | 146 | return 0; |
| 196 | } | 147 | } |
| 197 | 148 | ||
