Lines Matching defs:devc

131 	via97_devc_t *devc = arg;
139 OUTL(devc, devc->base + AC97CODEC, addr);
145 if (INL(devc, devc->base + AC97CODEC) & STA_VALID)
154 tmp = INL(devc, devc->base + AC97CODEC);
155 OUTB(devc, devc->base + AC97CODEC + 3, 0x02);
165 via97_devc_t *devc = arg;
170 OUTL(devc, devc->base + AC97CODEC, value);
176 if (!(INL(devc, devc->base + AC97CODEC) & IN_CMD))
210 via97_devc_t *devc = portc->devc;
214 OUTB(devc, portc->base + 0x01, 0x40); /* Stop */
215 OUTL(devc, portc->base + 4, portc->sgd_paddr);
217 OUTB(devc, portc->base + 0x02,
222 OUTB(devc, portc->base + 0x01, 0x80); /* Start */
231 via97_devc_t *devc = portc->devc;
233 OUTB(devc, portc->base + 0x01, 0x40); /* Stop */
286 via97_devc_t *devc = portc->devc;
290 pos = INL(devc, portc->base + 0x0c) & 0xffffff;
309 via97_alloc_port(via97_devc_t *devc, int num)
320 adev = devc->adev;
322 devc->portc[num] = portc;
323 portc->devc = devc;
324 portc->base = devc->base + num * 0x10;
346 if (ddi_dma_alloc_handle(devc->dip, &dma_attr_sgd,
369 if (ddi_dma_alloc_handle(devc->dip, &dma_attr_buf, DDI_DMA_SLEEP, NULL,
395 OUTL(devc, portc->base + 4, portc->sgd_paddr);
411 via97_destroy(via97_devc_t *devc)
414 via97_portc_t *portc = devc->portc[i];
418 audio_dev_remove_engine(devc->adev, portc->engine);
442 if (devc->ac97 != NULL) {
443 ac97_free(devc->ac97);
445 if (devc->adev != NULL) {
446 audio_dev_free(devc->adev);
448 if (devc->regsh != NULL) {
449 ddi_regs_map_free(&devc->regsh);
451 if (devc->pcih != NULL) {
452 pci_config_teardown(&devc->pcih);
454 kmem_free(devc, sizeof (*devc));
458 via97_hwinit(via97_devc_t *devc)
460 ddi_acc_handle_t pcih = devc->pcih;
477 tmp = INB(devc, devc->base + 0x22);
478 OUTB(devc, devc->base + 0x22, tmp | 0x83);
485 via97_devc_t *devc;
488 devc = kmem_zalloc(sizeof (*devc), KM_SLEEP);
489 devc->dip = dip;
490 ddi_set_driver_private(dip, devc);
492 if ((devc->adev = audio_dev_alloc(dip, 0)) == NULL) {
498 audio_dev_warn(devc->adev, "pci_config_setup failed");
501 devc->pcih = pcih;
507 audio_dev_warn(devc->adev, "Hardware not recognized "
516 if ((ddi_regs_map_setup(dip, 1, &devc->base, 0, 0, &dev_attr,
517 &devc->regsh)) != DDI_SUCCESS) {
518 audio_dev_warn(devc->adev, "failed to map registers");
522 audio_dev_set_description(devc->adev, "VIA 82C686 Audio");
524 via97_hwinit(devc);
526 if ((via97_alloc_port(devc, VIA97_PLAY_SGD_NUM) != DDI_SUCCESS) ||
527 (via97_alloc_port(devc, VIA97_REC_SGD_NUM) != DDI_SUCCESS)) {
531 devc->ac97 = ac97_alloc(dip, via97_read_ac97, via97_write_ac97, devc);
532 if (devc->ac97 == NULL) {
533 audio_dev_warn(devc->adev, "failed to allocate ac97 handle");
537 if (ac97_init(devc->ac97, devc->adev) != DDI_SUCCESS) {
538 audio_dev_warn(devc->adev, "failed to init ac97");
542 if (audio_dev_register(devc->adev) != DDI_SUCCESS) {
543 audio_dev_warn(devc->adev, "unable to register with framework");
552 via97_destroy(devc);
559 via97_devc_t *devc;
561 devc = ddi_get_driver_private(dip);
563 via97_hwinit(devc);
565 ac97_reset(devc->ac97);
567 audio_dev_resume(devc->adev);
572 via97_detach(via97_devc_t *devc)
574 if (audio_dev_unregister(devc->adev) != DDI_SUCCESS)
577 via97_destroy(devc);
582 via97_suspend(via97_devc_t *devc)
584 audio_dev_suspend(devc->adev);
665 via97_devc_t *devc;
667 devc = ddi_get_driver_private(dip);
671 return (via97_detach(devc));
674 return (via97_suspend(devc));
684 via97_devc_t *devc;
686 devc = ddi_get_driver_private(dip);
691 OUTB(devc, devc->base + 0x01, 0x40);
692 OUTB(devc, devc->base + 0x11, 0x40);
693 OUTB(devc, devc->base + 0x02, 0);
694 OUTB(devc, devc->base + 0x12, 0);
695 OUTL(devc, devc->base + 0x04, 0);
696 OUTL(devc, devc->base + 0x14, 0);
697 OUTL(devc, devc->base + 0x22, 0);