Lines Matching refs:card

69 auvia_mem_new(auvia_dev *card, size_t size)
96 auvia_mem_alloc(auvia_dev *card, size_t size)
100 mem = auvia_mem_new(card, size);
104 LIST_INSERT_HEAD(&(card->mems), mem, next);
111 auvia_mem_free(auvia_dev *card, void *ptr)
115 LIST_FOREACH(mem, &card->mems, next) {
140 auvia_mem_free(stream->card, stream->buffer->log_base);
149 stream->buffer = auvia_mem_alloc(stream->card, stream->bufframes
178 auvia_reg_write_32(&stream->card->config, stream->base + AUVIA_RP_DMAOPS_BASE,
182 auvia_codec_write(&stream->card->config, AC97_PCM_L_R_ADC_RATE,
185 auvia_codec_write(&stream->card->config, AC97_PCM_FRONT_DAC_RATE,
188 if(IS_8233(&stream->card->config)) {
190 value = auvia_reg_read_32(&stream->card->config, stream->base
199 auvia_reg_write_32(&stream->card->config, stream->base
206 auvia_reg_write_8(&stream->card->config, stream->base
208 auvia_reg_write_32(&stream->card->config, stream->base
212 //auvia_codec_write(&stream->card->config, AC97_SPDIF_CONTROL, (uint16)stream->sample_rate);
240 if(IS_8233(&stream->card->config)) {
241 addr = auvia_reg_read_32(&stream->card->config, stream->base + AUVIA_RP_DMAOPS_BASE);
245 addr = auvia_reg_read_32(&stream->card->config, stream->base + AUVIA_RP_DMAOPS_BASE);
262 if(IS_8233(&stream->card->config)) {
264 auvia_reg_write_8(&stream->card->config, stream->base + AUVIA_8233_RP_DXS_LVOL, 0);
265 auvia_reg_write_8(&stream->card->config, stream->base + AUVIA_8233_RP_DXS_RVOL, 0);
267 auvia_reg_write_8(&stream->card->config, stream->base + AUVIA_RP_CONTROL,
274 auvia_reg_write_8(&stream->card->config, stream->base + AUVIA_RP_MODE, regvalue);
275 auvia_reg_write_8(&stream->card->config, stream->base + AUVIA_RP_CONTROL,
288 auvia_reg_write_8(&stream->card->config, stream->base + AUVIA_RP_CONTROL,
294 auvia_stream_new(auvia_dev *card, uint8 use, uint32 bufframes, uint8 bufcount)
303 stream->card = card;
319 if(IS_8233(&card->config))
325 if(IS_8233(&card->config))
347 LIST_INSERT_HEAD((&card->streams), stream, next);
362 auvia_reg_write_32(&stream->card->config, stream->base + AUVIA_RP_DMAOPS_BASE, 0);
368 auvia_mem_free(stream->card, stream->buffer->log_base);
382 auvia_dev *card = arg;
387 if(auvia_reg_read_32(&card->config, AUVIA_SGD_SHADOW)
388 & card->interrupt_mask) {
390 LIST_FOREACH(stream, &card->streams, next)
391 if(auvia_reg_read_8(&card->config, stream->base + AUVIA_RP_STAT) & AUVIA_RPSTAT_INTR) {
407 auvia_reg_write_8(&card->config, stream->base + AUVIA_RP_STAT, AUVIA_RPSTAT_INTR);
410 TRACE(("SGD_SHADOW %x %x\n", card->interrupt_mask,
411 auvia_reg_read_32(&card->config, AUVIA_SGD_SHADOW)));
455 auvia_dev * card)
457 sprintf(card->name, "audio/hmulti/auvia/%ld", card-cards+1);
458 names[num_names++] = card->name;
465 auvia_init(auvia_dev * card)
469 pr = (*pci->read_pci_config)(card->info.bus, card->info.device,
470 card->info.function, AUVIA_PCICONF_JUNK, 4);
476 (*pci->write_pci_config)(card->info.bus, card->info.device,
477 card->info.function, AUVIA_PCICONF_JUNK, 4, pr );
479 pr = (*pci->read_pci_config)(card->info.bus, card->info.device,
480 card->info.function, AUVIA_PCICONF_JUNK, 4);
483 if(IS_8233(&card->config)) {
484 card->interrupt_mask =
493 card->interrupt_mask = AUVIA_SGD_STAT_ALL | (AUVIA_SGD_STAT_ALL << 4);
498 LIST_INIT(&(card->streams));
501 LIST_INIT(&(card->mems));
508 auvia_shutdown(auvia_dev *card)
510 PRINT(("shutdown(%p)\n", card));
511 ac97_detach(card->config.ac97);
512 remove_io_interrupt_handler(card->config.irq, auvia_int, card);
517 auvia_setup(auvia_dev * card)
522 PRINT(("auvia_setup(%p)\n", card));
524 make_device_names(card);
526 card->config.subvendor_id = card->info.u.h0.subsystem_vendor_id;
527 card->config.subsystem_id = card->info.u.h0.subsystem_id;
528 card->config.nabmbar = card->info.u.h0.base_registers[0];
529 card->config.irq = card->info.u.h0.interrupt_line;
530 card->config.type = 0;
531 if(card->info.device_id == VIATECH_82C686_AC97_DEVICE_ID)
532 card->config.type |= TYPE_686;
533 if(card->info.device_id == VIATECH_8233_AC97_DEVICE_ID)
534 card->config.type |= TYPE_8233;
538 card->name, card->info.device_id, card->info.revision,
539 card->info.u.h0.subsystem_id, card->config.nabmbar));
541 cmd = (*pci->read_pci_config)(card->info.bus, card->info.device,
542 card->info.function, PCI_command, 2);
544 (*pci->write_pci_config)(card->info.bus, card->info.device,
545 card->info.function, PCI_command, 2, cmd | PCI_command_io);
546 cmd = (*pci->read_pci_config)(card->info.bus, card->info.device,
547 card->info.function, PCI_command, 2);
552 ac97_attach(&card->config.ac97, (codec_reg_read)auvia_codec_read,
553 (codec_reg_write)auvia_codec_write, &card->config,
554 card->config.subvendor_id, card->config.subsystem_id);
556 PRINT(("installing interrupt : %" B_PRIx32 "\n", card->config.irq));
557 err = install_io_interrupt_handler(card->config.irq, auvia_int, card, 0);
560 ac97_detach(card->config.ac97);
564 if ((err = auvia_init(card))) {
565 auvia_shutdown(card);
629 //add_debugger_command("auvia", auvia_debug, "auvia [card# (1-n)]");