Lines Matching refs:hw_config
137 static int __init config_pas_hw(struct address_info *hw_config)
142 pas_irq = hw_config->irq;
164 hw_config->irq=-1;
175 hw_config->irq=-1;
180 if (request_irq(pas_irq, pasintr, 0, "PAS16",hw_config) < 0) {
182 hw_config->irq=-1;
188 if (hw_config->dma < 0 || hw_config->dma > 7)
190 printk(KERN_ERR "PAS16: Invalid DMA selection %d", hw_config->dma);
191 hw_config->dma=-1;
196 pas_write(dma_bits[hw_config->dma], 0xF389);
197 if (!dma_bits[hw_config->dma])
199 printk(KERN_ERR "PAS16: Invalid DMA selection %d", hw_config->dma);
200 hw_config->dma=-1;
205 if (sound_alloc_dma(hw_config->dma, "PAS16"))
208 hw_config->dma=-1;
284 static int __init detect_pas_hw(struct address_info *hw_config)
296 outb((hw_config->io_base >> 2), 0x9A01); /* Set base address */
297 pas_translate_code = hw_config->io_base - 0x388;
325 static void __init attach_pas_card(struct address_info *hw_config)
327 pas_irq = hw_config->irq;
329 if (detect_pas_hw(hw_config))
339 conf_printf(temp, hw_config);
341 if (config_pas_hw(hw_config))
343 pas_pcm_init(hw_config);
350 static inline int __init probe_pas(struct address_info *hw_config)
352 return detect_pas_hw(hw_config);
355 static void __exit unload_pas(struct address_info *hw_config)
360 if (hw_config->dma>0)
361 sound_free_dma(hw_config->dma);
362 if (hw_config->irq>0)
363 free_irq(hw_config->irq, hw_config);