Lines Matching refs:hw_config
296 static void sb16_set_mpu_port(sb_devc * devc, struct address_info *hw_config) in sb16_set_mpu_port() argument
303 switch (hw_config->io_base) in sb16_set_mpu_port()
315 printk(KERN_ERR "SB16: Invalid MIDI I/O port %x\n", hw_config->io_base); in sb16_set_mpu_port()
345 static void relocate_Jazz16(sb_devc * devc, struct address_info *hw_config) in relocate_Jazz16() argument
350 if (jazz16_base != 0 && jazz16_base != hw_config->io_base) in relocate_Jazz16()
353 switch (hw_config->io_base) in relocate_Jazz16()
368 jazz16_base = hw_config->io_base; in relocate_Jazz16()
380 static int init_Jazz16(sb_devc * devc, struct address_info *hw_config) in init_Jazz16() argument
397 if (hw_config->irq < 1 || hw_config->irq > 15 || jazz_irq_bits[hw_config->irq] == 0) in init_Jazz16()
399 printk(KERN_ERR "Jazz16: Invalid interrupt (IRQ%d)\n", hw_config->irq); in init_Jazz16()
402 if (hw_config->dma < 0 || hw_config->dma > 3 || jazz_dma_bits[hw_config->dma] == 0) in init_Jazz16()
404 printk(KERN_ERR "Jazz16: Invalid 8 bit DMA (DMA%d)\n", hw_config->dma); in init_Jazz16()
407 if (hw_config->dma2 < 0) in init_Jazz16()
412 if (hw_config->dma2 < 5 || hw_config->dma2 > 7 || jazz_dma_bits[hw_config->dma2] == 0) in init_Jazz16()
414 printk(KERN_ERR "Jazz16: Invalid 16 bit DMA (DMA%d)\n", hw_config->dma2); in init_Jazz16()
417 devc->dma16 = hw_config->dma2; in init_Jazz16()
422 if (!sb_dsp_command(devc, jazz_dma_bits[hw_config->dma] | in init_Jazz16()
423 (jazz_dma_bits[hw_config->dma2] << 4))) in init_Jazz16()
426 if (!sb_dsp_command(devc, jazz_irq_bits[hw_config->irq])) in init_Jazz16()
435 hw_config->name = "Jazz16"; in init_Jazz16()
500 int sb_dsp_detect(struct address_info *hw_config, int pci, int pciio, struct sb_module_options *sbm… in sb_dsp_detect() argument
518 DDB(printk("sb_dsp_detect(%x) entered\n", hw_config->io_base)); in sb_dsp_detect()
521 devc->type = hw_config->card_subtype; in sb_dsp_detect()
523 devc->base = hw_config->io_base; in sb_dsp_detect()
524 devc->irq = hw_config->irq; in sb_dsp_detect()
525 devc->dma8 = hw_config->dma; in sb_dsp_detect()
534 hw_config->driver_use_1 |= SB_PCI_IRQ; in sb_dsp_detect()
535 hw_config->card_subtype = MDL_ESSPCI; in sb_dsp_detect()
542 hw_config->driver_use_1 |= SB_PCI_IRQ; in sb_dsp_detect()
543 hw_config->card_subtype = MDL_YMPCI; in sb_dsp_detect()
577 relocate_Jazz16(devc, hw_config); in sb_dsp_detect()
631 …MDB(printk(KERN_INFO "SB %d.%02d detected OK (%x)\n", devc->major, devc->minor, hw_config->io_base… in sb_dsp_detect()
635 int sb_dsp_init(struct address_info *hw_config, struct module *owner) in sb_dsp_init() argument
645 DDB(printk("sb_dsp_init(%x) entered\n", hw_config->io_base)); in sb_dsp_init()
656 if (devc->base != hw_config->io_base) in sb_dsp_init()
666 devc->caps = hw_config->driver_use_1; in sb_dsp_init()
668 if (!((devc->caps & SB_NO_AUDIO) && (devc->caps & SB_NO_MIDI)) && hw_config->irq > 0) in sb_dsp_init()
678 if (request_irq(hw_config->irq, sbintr, i, "soundblaster", devc) < 0) in sb_dsp_init()
680 printk(KERN_ERR "SB: Can't allocate IRQ%d\n", hw_config->irq); in sb_dsp_init()
697 !ess_init(devc, hw_config)) in sb_dsp_init()
700 devc->type != MDL_SMW) || !init_Jazz16(devc, hw_config)) in sb_dsp_init()
735 devc->model = hw_config->card_subtype = MDL_SB1; in sb_dsp_init()
740 devc->model = hw_config->card_subtype = MDL_SB2; in sb_dsp_init()
742 devc->model = hw_config->card_subtype = MDL_SB201; in sb_dsp_init()
748 devc->model = hw_config->card_subtype = MDL_SBPRO; in sb_dsp_init()
749 if (hw_config->name == NULL) in sb_dsp_init()
750 hw_config->name = "Sound Blaster Pro (8 BIT ONLY)"; in sb_dsp_init()
753 ess_dsp_init(devc, hw_config); in sb_dsp_init()
759 devc->model = hw_config->card_subtype = MDL_SB16; in sb_dsp_init()
777 if (hw_config->name == NULL) in sb_dsp_init()
778 hw_config->name = "Sound Blaster 16 (ALS-100)"; in sb_dsp_init()
786 if (hw_config->name == NULL) in sb_dsp_init()
787 hw_config->name = "Sound Blaster 16 (ALS-007)"; in sb_dsp_init()
791 else if (hw_config->name == NULL) in sb_dsp_init()
792 hw_config->name = "Sound Blaster 16"; in sb_dsp_init()
794 if (hw_config->dma2 == -1) in sb_dsp_init()
796 else if (hw_config->dma2 < 5 || hw_config->dma2 > 7) in sb_dsp_init()
802 devc->dma16 = hw_config->dma2; in sb_dsp_init()
806 release_region(hw_config->io_base, 16); in sb_dsp_init()
820 if (hw_config->name == NULL) in sb_dsp_init()
821 hw_config->name = "Sound Blaster (8 BIT/MONO ONLY)"; in sb_dsp_init()
823 sprintf(name, "%s (%d.%02d)", hw_config->name, devc->major, devc->minor); in sb_dsp_init()
824 conf_printf(name, hw_config); in sb_dsp_init()
849 hw_config->card_subtype = devc->model; in sb_dsp_init()
850 hw_config->slots[0]=devc->dev; in sb_dsp_init()
865 hw_config->slots[0]=devc->dev; in sb_dsp_init()
877 void sb_dsp_unload(struct address_info *hw_config, int sbmpu) in sb_dsp_unload() argument
881 devc = audio_devs[hw_config->slots[0]]->devc; in sb_dsp_unload()
883 if (devc && devc->base == hw_config->io_base) in sb_dsp_unload()
912 release_region(hw_config->io_base, 16); in sb_dsp_unload()
1004 static int smw_midi_init(sb_devc * devc, struct address_info *hw_config) in smw_midi_init() argument
1006 int mpu_base = hw_config->io_base; in smw_midi_init()
1105 hw_config->name = "SoundMan Wave"; in smw_midi_init()
1109 static int init_Jazz16_midi(sb_devc * devc, struct address_info *hw_config) in init_Jazz16_midi() argument
1111 int mpu_base = hw_config->io_base; in init_Jazz16_midi()
1113 int irq = hw_config->irq; in init_Jazz16_midi()
1166 hw_config->name = "Jazz16"; in init_Jazz16_midi()
1167 smw_midi_init(devc, hw_config); in init_Jazz16_midi()
1183 int probe_sbmpu(struct address_info *hw_config, struct module *owner) in probe_sbmpu() argument
1193 if (hw_config->io_base <= 0) in probe_sbmpu()
1210 ports = request_region(hw_config->io_base, 2, "mpu401"); in probe_sbmpu()
1212 printk(KERN_ERR "sbmpu: I/O port conflict (%x)\n", hw_config->io_base); in probe_sbmpu()
1215 if (!ess_midi_init(devc, hw_config)) { in probe_sbmpu()
1216 release_region(hw_config->io_base, 2); in probe_sbmpu()
1219 hw_config->name = "ESS1xxx MPU"; in probe_sbmpu()
1221 if (!probe_mpu401(hw_config, ports)) { in probe_sbmpu()
1222 release_region(hw_config->io_base, 2); in probe_sbmpu()
1225 attach_mpu401(hw_config, owner); in probe_sbmpu()
1226 if (last_sb->irq == -hw_config->irq) in probe_sbmpu()
1228 (void *)(long) hw_config->slots[1]; in probe_sbmpu()
1236 if (hw_config->io_base != 0x300 && hw_config->io_base != 0x330) in probe_sbmpu()
1238 printk(KERN_ERR "SB16: Invalid MIDI port %x\n", hw_config->io_base); in probe_sbmpu()
1241 hw_config->name = "Sound Blaster 16"; in probe_sbmpu()
1242 if (hw_config->irq < 3 || hw_config->irq == devc->irq) in probe_sbmpu()
1243 hw_config->irq = -devc->irq; in probe_sbmpu()
1245 sb16_set_mpu_port(devc, hw_config); in probe_sbmpu()
1249 if (hw_config->irq < 3 || hw_config->irq == devc->irq) in probe_sbmpu()
1250 hw_config->irq = -devc->irq; in probe_sbmpu()
1251 if (!init_Jazz16_midi(devc, hw_config)) in probe_sbmpu()
1256 hw_config->name = "Yamaha PCI Legacy"; in probe_sbmpu()
1263 ret = probe_uart401(hw_config, owner); in probe_sbmpu()
1265 last_sb->midi_irq_cookie=midi_devs[hw_config->slots[4]]->devc; in probe_sbmpu()
1269 void unload_sbmpu(struct address_info *hw_config) in unload_sbmpu() argument
1272 if (!strcmp (hw_config->name, "ESS1xxx MPU")) { in unload_sbmpu()
1273 unload_mpu401(hw_config); in unload_sbmpu()
1277 unload_uart401(hw_config); in unload_sbmpu()