Lines Matching refs:hw_config

75 static int trix_set_wss_port(struct address_info *hw_config)  in trix_set_wss_port()  argument
96 switch (hw_config->io_base) in trix_set_wss_port()
123 static int __init init_trix_wss(struct address_info *hw_config) in init_trix_wss() argument
129 int config_port = hw_config->io_base + 0; in init_trix_wss()
130 int dma1 = hw_config->dma, dma2 = hw_config->dma2; in init_trix_wss()
135 switch(hw_config->irq) { in init_trix_wss()
149 printk(KERN_ERR "AudioTrix: Bad WSS IRQ %d\n", hw_config->irq); in init_trix_wss()
179 ports = request_region(hw_config->io_base + 4, 4, "ad1848"); in init_trix_wss()
181 printk(KERN_ERR "AudioTrix: MSS I/O port conflict (%x)\n", hw_config->io_base); in init_trix_wss()
185 if (!request_region(hw_config->io_base, 4, "MSS config")) { in init_trix_wss()
186 printk(KERN_ERR "AudioTrix: MSS I/O port conflict (%x)\n", hw_config->io_base); in init_trix_wss()
187 release_region(hw_config->io_base + 4, 4); in init_trix_wss()
191 if (!trix_set_wss_port(hw_config)) in init_trix_wss()
194 config = inb(hw_config->io_base + 3); in init_trix_wss()
198 MDB(printk(KERN_ERR "No MSS signature detected on port 0x%x\n", hw_config->io_base)); in init_trix_wss()
211 if (hw_config->irq > 9 && config & 0x80) in init_trix_wss()
213 printk(KERN_ERR "AudioTrix: Can't use IRQ%d with a 8 bit card slot\n", hw_config->irq); in init_trix_wss()
217 ret = ad1848_detect(ports, NULL, hw_config->osp); in init_trix_wss()
248 hw_config->slots[0] = ad1848_init("AudioTrix Pro", ports, in init_trix_wss()
249 hw_config->irq, in init_trix_wss()
253 hw_config->osp, in init_trix_wss()
266 release_region(hw_config->io_base, 4); in init_trix_wss()
267 release_region(hw_config->io_base + 4, 4); in init_trix_wss()
271 static int __init probe_trix_sb(struct address_info *hw_config) in probe_trix_sb() argument
285 if ((hw_config->io_base & 0xffffff8f) != 0x200) in probe_trix_sb()
288 tmp = hw_config->irq; in probe_trix_sb()
294 tmp = hw_config->dma; in probe_trix_sb()
298 if (!request_region(hw_config->io_base, 16, "soundblaster")) { in probe_trix_sb()
299 printk(KERN_ERR "AudioTrix: SB I/O port conflict (%x)\n", hw_config->io_base); in probe_trix_sb()
304 conf |= hw_config->io_base & 0x70; /* I/O address bits */ in probe_trix_sb()
305 conf |= irq_translate[hw_config->irq]; in probe_trix_sb()
306 if (hw_config->dma == 3) in probe_trix_sb()
310 download_boot(hw_config->io_base); in probe_trix_sb()
312 hw_config->name = "AudioTrix SB"; in probe_trix_sb()
313 if (!sb_dsp_detect(hw_config, 0, 0, NULL)) { in probe_trix_sb()
314 release_region(hw_config->io_base, 16); in probe_trix_sb()
318 hw_config->driver_use_1 = SB_NO_MIDI | SB_NO_MIXER | SB_NO_RECORDING; in probe_trix_sb()
324 sb_dsp_init(hw_config, THIS_MODULE); in probe_trix_sb()
330 static int __init probe_trix_mpu(struct address_info *hw_config) in probe_trix_mpu() argument
337 if (hw_config->irq > 9) in probe_trix_mpu()
339 printk(KERN_ERR "AudioTrix: Bad MPU IRQ %d\n", hw_config->irq); in probe_trix_mpu()
342 if (irq_bits[hw_config->irq] == -1) in probe_trix_mpu()
344 printk(KERN_ERR "AudioTrix: Bad MPU IRQ %d\n", hw_config->irq); in probe_trix_mpu()
347 switch (hw_config->io_base) in probe_trix_mpu()
365 conf |= irq_bits[hw_config->irq] << 4; in probe_trix_mpu()
367 hw_config->name = "AudioTrix Pro"; in probe_trix_mpu()
368 return probe_uart401(hw_config, THIS_MODULE); in probe_trix_mpu()
371 static void __exit unload_trix_wss(struct address_info *hw_config) in unload_trix_wss() argument
373 int dma2 = hw_config->dma2; in unload_trix_wss()
376 dma2 = hw_config->dma; in unload_trix_wss()
379 release_region(hw_config->io_base, 4); in unload_trix_wss()
381 ad1848_unload(hw_config->io_base + 4, in unload_trix_wss()
382 hw_config->irq, in unload_trix_wss()
383 hw_config->dma, in unload_trix_wss()
386 sound_unload_audiodev(hw_config->slots[0]); in unload_trix_wss()
389 static inline void __exit unload_trix_mpu(struct address_info *hw_config) in unload_trix_mpu() argument
391 unload_uart401(hw_config); in unload_trix_mpu()
394 static inline void __exit unload_trix_sb(struct address_info *hw_config) in unload_trix_sb() argument
396 sb_dsp_unload(hw_config, mpu); in unload_trix_sb()