aboutsummaryrefslogtreecommitdiffstats
path: root/sound/isa/als100.c
diff options
context:
space:
mode:
authorRene Herman <rene.herman@gmail.com>2007-11-30 11:59:25 -0500
committerJaroslav Kysela <perex@perex.cz>2008-01-31 11:29:30 -0500
commit109c53f840e551d6e99ecfd8b0131a968332c89f (patch)
tree212af8d6ebb3303a21dd44b032fd5949fdc37607 /sound/isa/als100.c
parentdf1deb67532ea26f1a033a5f48bf34b30bec8e1d (diff)
[ALSA] sound/isa: kill pnp_resource_change
This removes the pnp_resource_change use from the ALSA ISAPnP drivers. In 2.4 these were useful in providing an easy path to setting the resources, but in 2.6 they retain function as a layering violation only. This makes for a nice cleanup (-550 lines) of ALSA but moreover, ALSA is the only remaining user of pnp_init_resource_table(), pnp_resource_change() and pnp_manual_config_dev() (and, in fact, of 'struct pnp_resource_table') in the tree outide of drivers/pnp itself meaning it makes for more cleanup potential inside the PnP layer. Thomas Renninger acked their removal from that side, you did from the ALSA side (CC list just copied from that thread). Against current alsa-kernel HG. Many more potential cleanups in there, but this _only_ removes the pnp_resource_change code. Compile tested against current alsa-kernel HG and compile- and use-tested against 2.6.23.x (few offsets). Cc: Thomas Renninger <trenn@suse.de> Signed-off-by: Rene Herman <rene.herman@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/isa/als100.c')
-rw-r--r--sound/isa/als100.c49
1 files changed, 2 insertions, 47 deletions
diff --git a/sound/isa/als100.c b/sound/isa/als100.c
index f2bcfb2cf5f5..35e25e5878e0 100644
--- a/sound/isa/als100.c
+++ b/sound/isa/als100.c
@@ -63,20 +63,6 @@ module_param_array(id, charp, NULL, 0444);
63MODULE_PARM_DESC(id, "ID string for als100 based soundcard."); 63MODULE_PARM_DESC(id, "ID string for als100 based soundcard.");
64module_param_array(enable, bool, NULL, 0444); 64module_param_array(enable, bool, NULL, 0444);
65MODULE_PARM_DESC(enable, "Enable als100 based soundcard."); 65MODULE_PARM_DESC(enable, "Enable als100 based soundcard.");
66module_param_array(port, long, NULL, 0444);
67MODULE_PARM_DESC(port, "Port # for als100 driver.");
68module_param_array(mpu_port, long, NULL, 0444);
69MODULE_PARM_DESC(mpu_port, "MPU-401 port # for als100 driver.");
70module_param_array(fm_port, long, NULL, 0444);
71MODULE_PARM_DESC(fm_port, "FM port # for als100 driver.");
72module_param_array(irq, int, NULL, 0444);
73MODULE_PARM_DESC(irq, "IRQ # for als100 driver.");
74module_param_array(mpu_irq, int, NULL, 0444);
75MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for als100 driver.");
76module_param_array(dma8, int, NULL, 0444);
77MODULE_PARM_DESC(dma8, "8-bit DMA # for als100 driver.");
78module_param_array(dma16, int, NULL, 0444);
79MODULE_PARM_DESC(dma16, "16-bit DMA # for als100 driver.");
80 66
81struct snd_card_als100 { 67struct snd_card_als100 {
82 int dev_no; 68 int dev_no;
@@ -111,38 +97,20 @@ static int __devinit snd_card_als100_pnp(int dev, struct snd_card_als100 *acard,
111 const struct pnp_card_device_id *id) 97 const struct pnp_card_device_id *id)
112{ 98{
113 struct pnp_dev *pdev; 99 struct pnp_dev *pdev;
114 struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL);
115 int err; 100 int err;
116 101
117 if (!cfg)
118 return -ENOMEM;
119 acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); 102 acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL);
120 if (acard->dev == NULL) { 103 if (acard->dev == NULL)
121 kfree(cfg);
122 return -ENODEV; 104 return -ENODEV;
123 } 105
124 acard->devmpu = pnp_request_card_device(card, id->devs[1].id, acard->dev); 106 acard->devmpu = pnp_request_card_device(card, id->devs[1].id, acard->dev);
125 acard->devopl = pnp_request_card_device(card, id->devs[2].id, acard->dev); 107 acard->devopl = pnp_request_card_device(card, id->devs[2].id, acard->dev);
126 108
127 pdev = acard->dev; 109 pdev = acard->dev;
128 110
129 pnp_init_resource_table(cfg);
130
131 /* override resources */
132 if (port[dev] != SNDRV_AUTO_PORT)
133 pnp_resource_change(&cfg->port_resource[0], port[dev], 16);
134 if (dma8[dev] != SNDRV_AUTO_DMA)
135 pnp_resource_change(&cfg->dma_resource[0], dma8[dev], 1);
136 if (dma16[dev] != SNDRV_AUTO_DMA)
137 pnp_resource_change(&cfg->dma_resource[1], dma16[dev], 1);
138 if (irq[dev] != SNDRV_AUTO_IRQ)
139 pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
140 if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
141 snd_printk(KERN_ERR PFX "AUDIO the requested resources are invalid, using auto config\n");
142 err = pnp_activate_dev(pdev); 111 err = pnp_activate_dev(pdev);
143 if (err < 0) { 112 if (err < 0) {
144 snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n"); 113 snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n");
145 kfree(cfg);
146 return err; 114 return err;
147 } 115 }
148 port[dev] = pnp_port_start(pdev, 0); 116 port[dev] = pnp_port_start(pdev, 0);
@@ -152,13 +120,6 @@ static int __devinit snd_card_als100_pnp(int dev, struct snd_card_als100 *acard,
152 120
153 pdev = acard->devmpu; 121 pdev = acard->devmpu;
154 if (pdev != NULL) { 122 if (pdev != NULL) {
155 pnp_init_resource_table(cfg);
156 if (mpu_port[dev] != SNDRV_AUTO_PORT)
157 pnp_resource_change(&cfg->port_resource[0], mpu_port[dev], 2);
158 if (mpu_irq[dev] != SNDRV_AUTO_IRQ)
159 pnp_resource_change(&cfg->irq_resource[0], mpu_irq[dev], 1);
160 if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
161 snd_printk(KERN_ERR PFX "MPU401 the requested resources are invalid, using auto config\n");
162 err = pnp_activate_dev(pdev); 123 err = pnp_activate_dev(pdev);
163 if (err < 0) 124 if (err < 0)
164 goto __mpu_error; 125 goto __mpu_error;
@@ -176,11 +137,6 @@ static int __devinit snd_card_als100_pnp(int dev, struct snd_card_als100 *acard,
176 137
177 pdev = acard->devopl; 138 pdev = acard->devopl;
178 if (pdev != NULL) { 139 if (pdev != NULL) {
179 pnp_init_resource_table(cfg);
180 if (fm_port[dev] != SNDRV_AUTO_PORT)
181 pnp_resource_change(&cfg->port_resource[0], fm_port[dev], 4);
182 if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
183 snd_printk(KERN_ERR PFX "OPL3 the requested resources are invalid, using auto config\n");
184 err = pnp_activate_dev(pdev); 140 err = pnp_activate_dev(pdev);
185 if (err < 0) 141 if (err < 0)
186 goto __fm_error; 142 goto __fm_error;
@@ -195,7 +151,6 @@ static int __devinit snd_card_als100_pnp(int dev, struct snd_card_als100 *acard,
195 fm_port[dev] = -1; 151 fm_port[dev] = -1;
196 } 152 }
197 153
198 kfree(cfg);
199 return 0; 154 return 0;
200} 155}
201 156