Lines Matching refs:card

31 status_t es1370_init(es1370_dev * card);
53 es1370_mem_new(es1370_dev *card, size_t size)
78 es1370_mem_alloc(es1370_dev *card, size_t size)
82 mem = es1370_mem_new(card, size);
86 LIST_INSERT_HEAD(&(card->mems), mem, next);
92 es1370_mem_free(es1370_dev *card, void *ptr)
96 LIST_FOREACH(mem, &card->mems, next) {
121 es1370_mem_free(stream->card, stream->buffer->log_base);
130 stream->buffer = es1370_mem_alloc(stream->card, stream->bufframes * frame_size * stream->bufcount);
144 es1370_dev *card = stream->card;
147 ctrl = es1370_reg_read_32(&card->config, ES1370_REG_CONTROL) & ~CTRL_PCLKDIV;
149 es1370_reg_write_32(&card->config, ES1370_REG_CONTROL, ctrl);
155 es1370_reg_write_32(&card->config, ES1370_REG_MEMPAGE, 0xd);
156 es1370_reg_write_32(&card->config, ES1370_REG_ADC_FRAMEADR & 0xff, (uint32)stream->buffer->phy_base);
157 es1370_reg_write_32(&card->config, ES1370_REG_ADC_FRAMECNT & 0xff, ((stream->blksize * stream->bufcount) >> 2) - 1);
158 es1370_reg_write_32(&card->config, ES1370_REG_ADC_SCOUNT & 0xff, stream->bufframes - 1);
160 es1370_reg_write_32(&card->config, ES1370_REG_MEMPAGE, 0xc);
161 es1370_reg_write_32(&card->config, ES1370_REG_DAC2_FRAMEADR & 0xff, (uint32)stream->buffer->phy_base);
162 es1370_reg_write_32(&card->config, ES1370_REG_DAC2_FRAMECNT & 0xff, ((stream->blksize * stream->bufcount) >> 2) - 1);
163 es1370_reg_write_32(&card->config, ES1370_REG_DAC2_SCOUNT & 0xff, stream->bufframes - 1);
192 es1370_dev *card = stream->card;
199 es1370_reg_write_32(&card->config, ES1370_REG_MEMPAGE, reg >> 8);
200 cnt = es1370_reg_read_32(&card->config, reg & 0xff) >> 16;
209 es1370_dev *card = stream->card;
217 sctrl = es1370_reg_read_32(&card->config, ES1370_REG_SERIAL_CONTROL);
218 ctrl = es1370_reg_read_32(&card->config, ES1370_REG_CONTROL);
226 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, sctrl & ~SCTRL_R1INTEN);
227 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, sctrl | SCTRL_R1INTEN);
237 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, sctrl & ~SCTRL_P2INTEN);
238 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, sctrl | SCTRL_P2INTEN);
243 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, sctrl);
244 es1370_reg_write_32(&card->config, ES1370_REG_CONTROL, ctrl);
247 //dump_hardware_regs(&stream->card->config);
255 es1370_dev *card = stream->card;
260 ctrl = es1370_reg_read_32(&card->config, ES1370_REG_CONTROL);
265 es1370_reg_write_32(&card->config, ES1370_REG_CONTROL, ctrl);
269 es1370_stream_new(es1370_dev *card, uint8 use, uint32 bufframes, uint8 bufcount)
278 stream->card = card;
299 LIST_INSERT_HEAD((&card->streams), stream, next);
314 es1370_mem_free(stream->card, stream->buffer->log_base);
328 es1370_dev *card = arg;
334 // TRACE(("es1370_int(%p)\n", card));
336 sta = es1370_reg_read_32(&card->config, ES1370_REG_STATUS);
337 if (sta & card->interrupt_mask) {
340 sctrl = es1370_reg_read_32(&card->config, ES1370_REG_SERIAL_CONTROL);
342 LIST_FOREACH(stream, &card->streams, next) {
346 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, sctrl & ~SCTRL_R1INTEN);
347 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, sctrl | SCTRL_R1INTEN);
351 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, sctrl & ~SCTRL_P2INTEN);
352 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, sctrl | SCTRL_P2INTEN);
366 //TRACE(("interrupt masked %x, ", card->interrupt_mask));
411 es1370_dev * card)
413 sprintf(card->name, "audio/hmulti/es1370/%ld", card-cards+1);
414 names[num_names++] = card->name;
421 es1370_init(es1370_dev * card)
423 card->interrupt_mask = STAT_DAC2 | STAT_ADC;
426 LIST_INIT(&(card->streams));
429 LIST_INIT(&(card->mems));
435 es1370_setup(es1370_dev * card)
440 PRINT(("es1370_setup(%p)\n", card));
442 make_device_names(card);
444 card->config.base = card->info.u.h0.base_registers[0];
445 card->config.irq = card->info.u.h0.interrupt_line;
446 card->config.type = 0;
449 "\n", card->name, card->info.device_id, card->info.revision,
450 card->info.u.h0.subsystem_id, card->config.base));
452 cmd = (*pci->read_pci_config)(card->info.bus, card->info.device, card->info.function, PCI_command, 2);
454 (*pci->write_pci_config)(card->info.bus, card->info.device,
455 card->info.function, PCI_command, 2,
457 cmd = (*pci->read_pci_config)(card->info.bus, card->info.device, card->info.function, PCI_command, 2);
460 es1370_reg_write_32(&card->config, ES1370_REG_SERIAL_CONTROL, SCTRL_P2INTEN | SCTRL_R1INTEN);
461 es1370_reg_write_32(&card->config, ES1370_REG_CONTROL, CTRL_CDC_EN);
465 es1370_codec_write(&card->config, CODEC_RESET_PWRDWN, 0x2);
467 es1370_codec_write(&card->config, CODEC_RESET_PWRDWN, 0x3);
469 es1370_codec_write(&card->config, CODEC_CLOCK_SEL, 0x0);
472 es1370_codec_write(&card->config, CODEC_MASTER_VOL_L, 0x0);
473 es1370_codec_write(&card->config, CODEC_MASTER_VOL_R, 0x0);
474 es1370_codec_write(&card->config, CODEC_VOICE_VOL_L, 0x0);
475 es1370_codec_write(&card->config, CODEC_VOICE_VOL_R, 0x0);
478 es1370_codec_write(&card->config, CODEC_OUTPUT_MIX1, ES1370_OUTPUT_MIX1_CDL | ES1370_OUTPUT_MIX1_CDR);
480 es1370_codec_write(&card->config, CODEC_OUTPUT_MIX2, ES1370_OUTPUT_MIX2_VOICEL | ES1370_OUTPUT_MIX2_VOICER);
484 PRINT(("installing interrupt : %" B_PRIu32 "\n", card->config.irq));
485 err = install_io_interrupt_handler(card->config.irq, es1370_int, card, 0);
491 if ((err = es1370_init(card)))
581 es1370_shutdown(es1370_dev *card)
583 PRINT(("shutdown(%p)\n", card));
584 //ac97_amp_enable(&card->config, false);
585 card->interrupt_mask = 0;
587 remove_io_interrupt_handler(card->config.irq, es1370_int, card);