HelenOS sources

hda                68 uspace/drv/audio/hdaudio/codec.c 	errno_t rc = hda_cmd(codec->hda, verb, resp);
hda               492 uspace/drv/audio/hdaudio/codec.c hda_codec_t *hda_codec_init(hda_t *hda, uint8_t address)
hda               511 uspace/drv/audio/hdaudio/codec.c 	codec->hda = hda;
hda               641 uspace/drv/audio/hdaudio/codec.c 	hda_ctl_dump_info(hda->ctl);
hda                42 uspace/drv/audio/hdaudio/codec.h 	hda_t *hda;
hda               148 uspace/drv/audio/hdaudio/hdactl.c static errno_t hda_corb_init(hda_t *hda)
hda               159 uspace/drv/audio/hdaudio/hdactl.c 	ctl = hda_reg8_read(&hda->regs->corbctl);
hda               162 uspace/drv/audio/hdaudio/hdactl.c 		hda_reg8_write(&hda->regs->corbctl, ctl & ~BIT_V(uint8_t,
hda               167 uspace/drv/audio/hdaudio/hdactl.c 	corbsz = hda_reg8_read(&hda->regs->corbsize);
hda               179 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg8_write(&hda->regs->corbsize, corbsz);
hda               180 uspace/drv/audio/hdaudio/hdactl.c 	hda->ctl->corb_entries = hda_rb_entries(selsz);
hda               186 uspace/drv/audio/hdaudio/hdactl.c 	hda->ctl->corb_virt = AS_AREA_ANY;
hda               187 uspace/drv/audio/hdaudio/hdactl.c 	rc = dmamem_map_anonymous(hda->ctl->corb_entries * sizeof(uint32_t),
hda               188 uspace/drv/audio/hdaudio/hdactl.c 	    hda->ctl->ok64bit ? 0 : DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE, 0,
hda               189 uspace/drv/audio/hdaudio/hdactl.c 	    &hda->ctl->corb_phys, &hda->ctl->corb_virt);
hda               191 uspace/drv/audio/hdaudio/hdactl.c 		hda->ctl->corb_virt = NULL;
hda               199 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg32_write(&hda->regs->corblbase, LOWER32(hda->ctl->corb_phys));
hda               200 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg32_write(&hda->regs->corbubase, UPPER32(hda->ctl->corb_phys));
hda               205 uspace/drv/audio/hdaudio/hdactl.c 	rc = hda_ctl_reg16_set_reset(&hda->regs->corbrp,
hda               213 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg16_write(&hda->regs->corbwp, 0);
hda               216 uspace/drv/audio/hdaudio/hdactl.c 	ctl = hda_reg8_read(&hda->regs->corbctl);
hda               218 uspace/drv/audio/hdaudio/hdactl.c 	    (unsigned)((void *)&hda->regs->corbctl - (void *)hda->regs), ctl | BIT_V(uint8_t, corbctl_run));
hda               219 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg8_write(&hda->regs->corbctl, ctl | BIT_V(uint8_t, corbctl_run));
hda               224 uspace/drv/audio/hdaudio/hdactl.c 	if (hda->ctl->corb_virt != NULL) {
hda               225 uspace/drv/audio/hdaudio/hdactl.c 		dmamem_unmap_anonymous(hda->ctl->corb_virt);
hda               226 uspace/drv/audio/hdaudio/hdactl.c 		hda->ctl->corb_virt = NULL;
hda               232 uspace/drv/audio/hdaudio/hdactl.c static void hda_corb_fini(hda_t *hda)
hda               237 uspace/drv/audio/hdaudio/hdactl.c 	ctl = hda_reg8_read(&hda->regs->corbctl);
hda               238 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg8_write(&hda->regs->corbctl, ctl & ~BIT_V(uint8_t, corbctl_run));
hda               240 uspace/drv/audio/hdaudio/hdactl.c 	if (hda->ctl->corb_virt != NULL)
hda               241 uspace/drv/audio/hdaudio/hdactl.c 		dmamem_unmap_anonymous(hda->ctl->corb_virt);
hda               245 uspace/drv/audio/hdaudio/hdactl.c static errno_t hda_rirb_init(hda_t *hda)
hda               256 uspace/drv/audio/hdaudio/hdactl.c 	ctl = hda_reg8_read(&hda->regs->rirbctl);
hda               259 uspace/drv/audio/hdaudio/hdactl.c 		hda_reg8_write(&hda->regs->corbctl, ctl & ~BIT_V(uint8_t,
hda               264 uspace/drv/audio/hdaudio/hdactl.c 	rirbsz = hda_reg8_read(&hda->regs->rirbsize);
hda               276 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg8_write(&hda->regs->rirbsize, rirbsz);
hda               277 uspace/drv/audio/hdaudio/hdactl.c 	hda->ctl->rirb_entries = hda_rb_entries(selsz);
hda               283 uspace/drv/audio/hdaudio/hdactl.c 	hda->ctl->rirb_virt = AS_AREA_ANY;
hda               284 uspace/drv/audio/hdaudio/hdactl.c 	rc = dmamem_map_anonymous(hda->ctl->rirb_entries * sizeof(uint64_t),
hda               285 uspace/drv/audio/hdaudio/hdactl.c 	    hda->ctl->ok64bit ? 0 : DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE, 0,
hda               286 uspace/drv/audio/hdaudio/hdactl.c 	    &hda->ctl->rirb_phys, &hda->ctl->rirb_virt);
hda               288 uspace/drv/audio/hdaudio/hdactl.c 		hda->ctl->rirb_virt = NULL;
hda               296 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg32_write(&hda->regs->rirblbase, LOWER32(hda->ctl->rirb_phys));
hda               297 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg32_write(&hda->regs->rirbubase, UPPER32(hda->ctl->rirb_phys));
hda               302 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg16_write(&hda->regs->rirbwp, BIT_V(uint16_t, rirbwp_rst));
hda               305 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg16_write(&hda->regs->rintcnt, hda->ctl->rirb_entries / 2);
hda               307 uspace/drv/audio/hdaudio/hdactl.c 	hda->ctl->rirb_rp = 0;
hda               310 uspace/drv/audio/hdaudio/hdactl.c 	ctl = hda_reg8_read(&hda->regs->rirbctl);
hda               312 uspace/drv/audio/hdaudio/hdactl.c 	    (unsigned)((void *)&hda->regs->rirbctl - (void *)hda->regs), ctl | BIT_V(uint8_t, rirbctl_run));
hda               313 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg8_write(&hda->regs->rirbctl, ctl | BIT_V(uint8_t, rirbctl_run) |
hda               319 uspace/drv/audio/hdaudio/hdactl.c 	if (hda->ctl->rirb_virt != NULL) {
hda               320 uspace/drv/audio/hdaudio/hdactl.c 		dmamem_unmap_anonymous(hda->ctl->rirb_virt);
hda               321 uspace/drv/audio/hdaudio/hdactl.c 		hda->ctl->rirb_virt = NULL;
hda               327 uspace/drv/audio/hdaudio/hdactl.c static void hda_rirb_fini(hda_t *hda)
hda               332 uspace/drv/audio/hdaudio/hdactl.c 	ctl = hda_reg8_read(&hda->regs->rirbctl);
hda               333 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg8_write(&hda->regs->rirbctl, ctl &
hda               336 uspace/drv/audio/hdaudio/hdactl.c 	if (hda->ctl->rirb_virt != NULL)
hda               337 uspace/drv/audio/hdaudio/hdactl.c 		dmamem_unmap_anonymous(hda->ctl->rirb_virt);
hda               340 uspace/drv/audio/hdaudio/hdactl.c static size_t hda_get_corbrp(hda_t *hda)
hda               344 uspace/drv/audio/hdaudio/hdactl.c 	corbrp = hda_reg16_read(&hda->regs->corbrp);
hda               348 uspace/drv/audio/hdaudio/hdactl.c static size_t hda_get_corbwp(hda_t *hda)
hda               352 uspace/drv/audio/hdaudio/hdactl.c 	corbwp = hda_reg16_read(&hda->regs->corbwp);
hda               356 uspace/drv/audio/hdaudio/hdactl.c static void hda_set_corbwp(hda_t *hda, size_t wp)
hda               359 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg16_write(&hda->regs->corbwp, wp);
hda               362 uspace/drv/audio/hdaudio/hdactl.c static size_t hda_get_rirbwp(hda_t *hda)
hda               366 uspace/drv/audio/hdaudio/hdactl.c 	rirbwp = hda_reg16_read(&hda->regs->rirbwp);
hda               371 uspace/drv/audio/hdaudio/hdactl.c static size_t hda_corb_avail(hda_t *hda)
hda               376 uspace/drv/audio/hdaudio/hdactl.c 	rp = hda_get_corbrp(hda);
hda               377 uspace/drv/audio/hdaudio/hdactl.c 	wp = hda_get_corbwp(hda);
hda               381 uspace/drv/audio/hdaudio/hdactl.c 		avail += hda->ctl->corb_entries;
hda               387 uspace/drv/audio/hdaudio/hdactl.c static errno_t hda_corb_write(hda_t *hda, uint32_t *data, size_t count)
hda               397 uspace/drv/audio/hdaudio/hdactl.c 	avail = hda_corb_avail(hda);
hda               398 uspace/drv/audio/hdaudio/hdactl.c 	wp = hda_get_corbwp(hda);
hda               399 uspace/drv/audio/hdaudio/hdactl.c 	corb = (uint32_t *)hda->ctl->corb_virt;
hda               406 uspace/drv/audio/hdaudio/hdactl.c 			wp = (wp + 1) % hda->ctl->corb_entries;
hda               410 uspace/drv/audio/hdaudio/hdactl.c 		hda_set_corbwp(hda, wp);
hda               415 uspace/drv/audio/hdaudio/hdactl.c 			while (hda_corb_avail(hda) < 1 && wcnt > 0) {
hda               421 uspace/drv/audio/hdaudio/hdactl.c 			if (hda_corb_avail(hda) < 1)
hda               429 uspace/drv/audio/hdaudio/hdactl.c static errno_t hda_rirb_read(hda_t *hda, hda_rirb_entry_t *data)
hda               435 uspace/drv/audio/hdaudio/hdactl.c 	rirb = (hda_rirb_entry_t *)hda->ctl->rirb_virt;
hda               437 uspace/drv/audio/hdaudio/hdactl.c 	wp = hda_get_rirbwp(hda);
hda               439 uspace/drv/audio/hdaudio/hdactl.c 	if (hda->ctl->rirb_rp == wp)
hda               442 uspace/drv/audio/hdaudio/hdactl.c 	hda->ctl->rirb_rp = (hda->ctl->rirb_rp + 1) % hda->ctl->rirb_entries;
hda               443 uspace/drv/audio/hdaudio/hdactl.c 	resp = rirb[hda->ctl->rirb_rp];
hda               451 uspace/drv/audio/hdaudio/hdactl.c static errno_t hda_solrb_read(hda_t *hda, hda_rirb_entry_t *data, size_t count)
hda               457 uspace/drv/audio/hdaudio/hdactl.c 	fibril_mutex_lock(&hda->ctl->solrb_lock);
hda               460 uspace/drv/audio/hdaudio/hdactl.c 		while (count > 0 && hda->ctl->solrb_rp != hda->ctl->solrb_wp) {
hda               461 uspace/drv/audio/hdaudio/hdactl.c 			hda->ctl->solrb_rp = (hda->ctl->solrb_rp + 1) % softrb_entries;
hda               462 uspace/drv/audio/hdaudio/hdactl.c 			resp = hda->ctl->solrb[hda->ctl->solrb_rp];
hda               474 uspace/drv/audio/hdaudio/hdactl.c 			if (hda->ctl->solrb_wp == hda->ctl->solrb_rp) {
hda               476 uspace/drv/audio/hdaudio/hdactl.c 				    &hda->ctl->solrb_cv, &hda->ctl->solrb_lock,
hda               480 uspace/drv/audio/hdaudio/hdactl.c 			if (hda->ctl->solrb_wp == hda->ctl->solrb_rp) {
hda               482 uspace/drv/audio/hdaudio/hdactl.c 				fibril_mutex_unlock(&hda->ctl->solrb_lock);
hda               483 uspace/drv/audio/hdaudio/hdactl.c 				hda_ctl_process_rirb(hda->ctl);
hda               484 uspace/drv/audio/hdaudio/hdactl.c 				fibril_mutex_lock(&hda->ctl->solrb_lock);
hda               487 uspace/drv/audio/hdaudio/hdactl.c 			if (hda->ctl->solrb_wp == hda->ctl->solrb_rp) {
hda               489 uspace/drv/audio/hdaudio/hdactl.c 				fibril_mutex_unlock(&hda->ctl->solrb_lock);
hda               495 uspace/drv/audio/hdaudio/hdactl.c 	fibril_mutex_unlock(&hda->ctl->solrb_lock);
hda               499 uspace/drv/audio/hdaudio/hdactl.c hda_ctl_t *hda_ctl_init(hda_t *hda)
hda               514 uspace/drv/audio/hdaudio/hdactl.c 	hda->ctl = ctl;
hda               515 uspace/drv/audio/hdaudio/hdactl.c 	ctl->hda = hda;
hda               517 uspace/drv/audio/hdaudio/hdactl.c 	uint8_t vmaj = hda_reg8_read(&hda->regs->vmaj);
hda               518 uspace/drv/audio/hdaudio/hdactl.c 	uint8_t vmin = hda_reg8_read(&hda->regs->vmin);
hda               528 uspace/drv/audio/hdaudio/hdactl.c 	    (void *)&hda->regs->statests - (void *)hda->regs,
hda               529 uspace/drv/audio/hdaudio/hdactl.c 	    hda_reg16_read(&hda->regs->statests));
hda               534 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg16_write(&hda->regs->statests, 0x7f);
hda               537 uspace/drv/audio/hdaudio/hdactl.c 	    (void *)&hda->regs->statests - (void *)hda->regs,
hda               538 uspace/drv/audio/hdaudio/hdactl.c 	    hda_reg16_read(&hda->regs->statests));
hda               540 uspace/drv/audio/hdaudio/hdactl.c 	gctl = hda_reg32_read(&hda->regs->gctl);
hda               543 uspace/drv/audio/hdaudio/hdactl.c 		hda_reg32_write(&hda->regs->gctl, gctl & ~BIT_V(uint32_t, gctl_crst));
hda               547 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg32_write(&hda->regs->gctl, gctl | BIT_V(uint32_t, gctl_crst));
hda               552 uspace/drv/audio/hdaudio/hdactl.c 		gctl = hda_reg32_read(&hda->regs->gctl);
hda               571 uspace/drv/audio/hdaudio/hdactl.c 	uint16_t gcap = hda_reg16_read(&hda->regs->gcap);
hda               583 uspace/drv/audio/hdaudio/hdactl.c 	    hda_reg16_read(&hda->regs->statests));
hda               586 uspace/drv/audio/hdaudio/hdactl.c 	intctl = hda_reg32_read(&hda->regs->intctl);
hda               588 uspace/drv/audio/hdaudio/hdactl.c 	    (unsigned)((void *)&hda->regs->intctl - (void *)hda->regs),
hda               590 uspace/drv/audio/hdaudio/hdactl.c 	hda_reg32_write(&hda->regs->intctl, intctl |
hda               594 uspace/drv/audio/hdaudio/hdactl.c 	rc = hda_corb_init(hda);
hda               598 uspace/drv/audio/hdaudio/hdactl.c 	rc = hda_rirb_init(hda);
hda               603 uspace/drv/audio/hdaudio/hdactl.c 	hda->ctl->codec = hda_codec_init(hda, 0);
hda               604 uspace/drv/audio/hdaudio/hdactl.c 	if (hda->ctl->codec == NULL) {
hda               609 uspace/drv/audio/hdaudio/hdactl.c 	ddf_msg(LVL_DEBUG, "intsts=0x%x", hda_reg32_read(&hda->regs->intsts));
hda               611 uspace/drv/audio/hdaudio/hdactl.c 	    hda->ctl->iss, hda_reg8_read(&hda->regs->sdesc[hda->ctl->iss].sts));
hda               615 uspace/drv/audio/hdaudio/hdactl.c 	hda_rirb_fini(hda);
hda               616 uspace/drv/audio/hdaudio/hdactl.c 	hda_corb_fini(hda);
hda               618 uspace/drv/audio/hdaudio/hdactl.c 	hda->ctl = NULL;
hda               625 uspace/drv/audio/hdaudio/hdactl.c 	hda_rirb_fini(ctl->hda);
hda               626 uspace/drv/audio/hdaudio/hdactl.c 	hda_corb_fini(ctl->hda);
hda               630 uspace/drv/audio/hdaudio/hdactl.c errno_t hda_cmd(hda_t *hda, uint32_t verb, uint32_t *resp)
hda               635 uspace/drv/audio/hdaudio/hdactl.c 	rc = hda_corb_write(hda, &verb, 1);
hda               640 uspace/drv/audio/hdaudio/hdactl.c 		rc = hda_solrb_read(hda, &rentry, 1);
hda               657 uspace/drv/audio/hdaudio/hdactl.c 		rc = hda_rirb_read(ctl->hda, &resp);
hda               683 uspace/drv/audio/hdaudio/hdactl.c 		sts = hda_reg8_read(&ctl->hda->regs->sdesc[i].sts);
hda               686 uspace/drv/audio/hdaudio/hdactl.c 			hda_reg8_write(&ctl->hda->regs->sdesc[i].sts,
hda               702 uspace/drv/audio/hdaudio/hdactl.c 	    hda_reg16_read(&ctl->hda->regs->corbwp),
hda               703 uspace/drv/audio/hdaudio/hdactl.c 	    hda_reg16_read(&ctl->hda->regs->corbrp));
hda               705 uspace/drv/audio/hdaudio/hdactl.c 	    hda_reg8_read(&ctl->hda->regs->corbctl),
hda               706 uspace/drv/audio/hdaudio/hdactl.c 	    hda_reg8_read(&ctl->hda->regs->corbsts));
hda               708 uspace/drv/audio/hdaudio/hdactl.c 	    hda_reg16_read(&ctl->hda->regs->rirbwp),
hda                74 uspace/drv/audio/hdaudio/hdactl.h 	struct hda *hda;
hda               154 uspace/drv/audio/hdaudio/hdaudio.c 	hda_t *hda = NULL;
hda               168 uspace/drv/audio/hdaudio/hdaudio.c 	hda = ddf_dev_data_alloc(dev, sizeof(hda_t));
hda               169 uspace/drv/audio/hdaudio/hdaudio.c 	if (hda == NULL) {
hda               175 uspace/drv/audio/hdaudio/hdaudio.c 	fibril_mutex_initialize(&hda->lock);
hda               178 uspace/drv/audio/hdaudio/hdaudio.c 	hda->parent_sess = ddf_dev_parent_sess_get(dev);
hda               179 uspace/drv/audio/hdaudio/hdaudio.c 	if (hda->parent_sess == NULL) {
hda               186 uspace/drv/audio/hdaudio/hdaudio.c 	rc = hw_res_get_list_parsed(hda->parent_sess, &res, 0);
hda               198 uspace/drv/audio/hdaudio/hdaudio.c 	hda->rwbase = RNGABS(res.mem_ranges.ranges[0]);
hda               199 uspace/drv/audio/hdaudio/hdaudio.c 	hda->rwsize = RNGSZ(res.mem_ranges.ranges[0]);
hda               204 uspace/drv/audio/hdaudio/hdaudio.c 	if (hda->rwsize < sizeof(hda_regs_t)) {
hda               211 uspace/drv/audio/hdaudio/hdaudio.c 	rc = pio_enable((void *)(uintptr_t)hda->rwbase, hda->rwsize, &regs);
hda               217 uspace/drv/audio/hdaudio/hdaudio.c 	hda->regs = (hda_regs_t *)regs;
hda               243 uspace/drv/audio/hdaudio/hdaudio.c 	hda_regs_t *rphys = (hda_regs_t *)(uintptr_t)hda->rwbase;
hda               244 uspace/drv/audio/hdaudio/hdaudio.c 	hdaudio_irq_pio_ranges[0].base = (uintptr_t)hda->rwbase;
hda               260 uspace/drv/audio/hdaudio/hdaudio.c 	rc = hw_res_enable_interrupt(hda->parent_sess, res.irqs.irqs[0]);
hda               268 uspace/drv/audio/hdaudio/hdaudio.c 	    hdaudio_interrupt, (void *)hda, &irq_code, &irq_cap);
hda               278 uspace/drv/audio/hdaudio/hdaudio.c 	if (hda_ctl_init(hda) == NULL) {
hda               291 uspace/drv/audio/hdaudio/hdaudio.c 	hda->fun_pcm = fun_pcm;
hda               317 uspace/drv/audio/hdaudio/hdaudio.c 	if (hda != NULL) {
hda               318 uspace/drv/audio/hdaudio/hdaudio.c 		if (hda->ctl != NULL)
hda               319 uspace/drv/audio/hdaudio/hdaudio.c 			hda_ctl_fini(hda->ctl);
hda               331 uspace/drv/audio/hdaudio/hdaudio.c 	hda_t *hda = (hda_t *)ddf_dev_data_get(dev);
hda               336 uspace/drv/audio/hdaudio/hdaudio.c 	if (hda->fun_pcm != NULL) {
hda               337 uspace/drv/audio/hdaudio/hdaudio.c 		rc = ddf_fun_offline(hda->fun_pcm);
hda               341 uspace/drv/audio/hdaudio/hdaudio.c 		rc = ddf_fun_unbind(hda->fun_pcm);
hda               346 uspace/drv/audio/hdaudio/hdaudio.c 	hda_ctl_fini(hda->ctl);
hda               353 uspace/drv/audio/hdaudio/hdaudio.c 	hda_t *hda = (hda_t *)ddf_dev_data_get(dev);
hda               358 uspace/drv/audio/hdaudio/hdaudio.c 	if (hda->fun_pcm != NULL) {
hda               359 uspace/drv/audio/hdaudio/hdaudio.c 		rc = ddf_fun_unbind(hda->fun_pcm);
hda               386 uspace/drv/audio/hdaudio/hdaudio.c 	hda_t *hda = (hda_t *)arg;
hda               390 uspace/drv/audio/hdaudio/hdaudio.c 	hda_ctl_interrupt(hda->ctl);
hda               394 uspace/drv/audio/hdaudio/hdaudio.c 		hda_lock(hda);
hda               395 uspace/drv/audio/hdaudio/hdaudio.c 		if (hda->playing) {
hda               396 uspace/drv/audio/hdaudio/hdaudio.c 			hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
hda               397 uspace/drv/audio/hdaudio/hdaudio.c 			hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
hda               398 uspace/drv/audio/hdaudio/hdaudio.c 			hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
hda               399 uspace/drv/audio/hdaudio/hdaudio.c 			hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
hda               400 uspace/drv/audio/hdaudio/hdaudio.c 		} else if (hda->capturing) {
hda               401 uspace/drv/audio/hdaudio/hdaudio.c 			hda_pcm_event(hda, PCM_EVENT_FRAMES_CAPTURED);
hda               402 uspace/drv/audio/hdaudio/hdaudio.c 			hda_pcm_event(hda, PCM_EVENT_FRAMES_CAPTURED);
hda               403 uspace/drv/audio/hdaudio/hdaudio.c 			hda_pcm_event(hda, PCM_EVENT_FRAMES_CAPTURED);
hda               404 uspace/drv/audio/hdaudio/hdaudio.c 			hda_pcm_event(hda, PCM_EVENT_FRAMES_CAPTURED);
hda               407 uspace/drv/audio/hdaudio/hdaudio.c 		hda_unlock(hda);
hda               411 uspace/drv/audio/hdaudio/hdaudio.c void hda_lock(hda_t *hda)
hda               413 uspace/drv/audio/hdaudio/hdaudio.c 	fibril_mutex_lock(&hda->lock);
hda               416 uspace/drv/audio/hdaudio/hdaudio.c void hda_unlock(hda_t *hda)
hda               418 uspace/drv/audio/hdaudio/hdaudio.c 	fibril_mutex_unlock(&hda->lock);
hda               102 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_t *hda = fun_to_hda(fun);
hda               112 uspace/drv/audio/hdaudio/pcm_iface.c 		return hda->ctl->codec->in_aw >= 0;
hda               154 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_t *hda = fun_to_hda(fun);
hda               157 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_lock(hda);
hda               159 uspace/drv/audio/hdaudio/pcm_iface.c 	ddf_msg(LVL_DEBUG, "hda_get_buffer(): hda=%p", hda);
hda               160 uspace/drv/audio/hdaudio/pcm_iface.c 	if (hda->pcm_buffers != NULL) {
hda               161 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_unlock(hda);
hda               166 uspace/drv/audio/hdaudio/pcm_iface.c 	rc = hda_stream_buffers_alloc(hda, &hda->pcm_buffers);
hda               169 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_unlock(hda);
hda               175 uspace/drv/audio/hdaudio/pcm_iface.c 	*buffer = hda->pcm_buffers->buf[0];
hda               176 uspace/drv/audio/hdaudio/pcm_iface.c 	*size = hda->pcm_buffers->bufsize * hda->pcm_buffers->nbuffers;
hda               181 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_unlock(hda);
hda               193 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_t *hda = fun_to_hda(fun);
hda               196 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_lock(hda);
hda               197 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->ev_sess = sess;
hda               198 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_unlock(hda);
hda               205 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_t *hda = fun_to_hda(fun);
hda               210 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_lock(hda);
hda               211 uspace/drv/audio/hdaudio/pcm_iface.c 	sess = hda->ev_sess;
hda               212 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_unlock(hda);
hda               219 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_t *hda = fun_to_hda(fun);
hda               221 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_lock(hda);
hda               224 uspace/drv/audio/hdaudio/pcm_iface.c 	if (hda->pcm_buffers == NULL) {
hda               225 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_unlock(hda);
hda               229 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_stream_buffers_free(hda->pcm_buffers);
hda               230 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->pcm_buffers = NULL;
hda               232 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_unlock(hda);
hda               239 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_t *hda = fun_to_hda(fun);
hda               243 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_lock(hda);
hda               245 uspace/drv/audio/hdaudio/pcm_iface.c 	if (hda->pcm_stream != NULL) {
hda               246 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_unlock(hda);
hda               256 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->pcm_stream = hda_stream_create(hda, sdir_output, hda->pcm_buffers,
hda               258 uspace/drv/audio/hdaudio/pcm_iface.c 	if (hda->pcm_stream == NULL) {
hda               259 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_unlock(hda);
hda               263 uspace/drv/audio/hdaudio/pcm_iface.c 	rc = hda_out_converter_setup(hda->ctl->codec, hda->pcm_stream);
hda               265 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_stream_destroy(hda->pcm_stream);
hda               266 uspace/drv/audio/hdaudio/pcm_iface.c 		hda->pcm_stream = NULL;
hda               267 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_unlock(hda);
hda               271 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->playing = true;
hda               272 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_stream_start(hda->pcm_stream);
hda               273 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_unlock(hda);
hda               279 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_t *hda = fun_to_hda(fun);
hda               282 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_lock(hda);
hda               283 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_stream_stop(hda->pcm_stream);
hda               284 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_stream_reset(hda->pcm_stream);
hda               285 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->playing = false;
hda               286 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_stream_destroy(hda->pcm_stream);
hda               287 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->pcm_stream = NULL;
hda               289 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_unlock(hda);
hda               291 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_pcm_event(hda, PCM_EVENT_PLAYBACK_TERMINATED);
hda               298 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_t *hda = fun_to_hda(fun);
hda               302 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_lock(hda);
hda               304 uspace/drv/audio/hdaudio/pcm_iface.c 	if (hda->pcm_stream != NULL) {
hda               305 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_unlock(hda);
hda               315 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->pcm_stream = hda_stream_create(hda, sdir_input, hda->pcm_buffers,
hda               317 uspace/drv/audio/hdaudio/pcm_iface.c 	if (hda->pcm_stream == NULL) {
hda               318 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_unlock(hda);
hda               322 uspace/drv/audio/hdaudio/pcm_iface.c 	rc = hda_in_converter_setup(hda->ctl->codec, hda->pcm_stream);
hda               324 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_stream_destroy(hda->pcm_stream);
hda               325 uspace/drv/audio/hdaudio/pcm_iface.c 		hda->pcm_stream = NULL;
hda               326 uspace/drv/audio/hdaudio/pcm_iface.c 		hda_unlock(hda);
hda               330 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->capturing = true;
hda               331 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_stream_start(hda->pcm_stream);
hda               332 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_unlock(hda);
hda               338 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_t *hda = fun_to_hda(fun);
hda               341 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_lock(hda);
hda               342 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_stream_stop(hda->pcm_stream);
hda               343 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_stream_reset(hda->pcm_stream);
hda               344 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->capturing = false;
hda               345 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_stream_destroy(hda->pcm_stream);
hda               346 uspace/drv/audio/hdaudio/pcm_iface.c 	hda->pcm_stream = NULL;
hda               347 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_unlock(hda);
hda               349 uspace/drv/audio/hdaudio/pcm_iface.c 	hda_pcm_event(hda, PCM_EVENT_CAPTURE_TERMINATED);
hda               353 uspace/drv/audio/hdaudio/pcm_iface.c void hda_pcm_event(hda_t *hda, pcm_event_t event)
hda               357 uspace/drv/audio/hdaudio/pcm_iface.c 	if (hda->ev_sess == NULL) {
hda               363 uspace/drv/audio/hdaudio/pcm_iface.c 	exchange = async_exchange_begin(hda->ev_sess);
hda                51 uspace/drv/audio/hdaudio/stream.c errno_t hda_stream_buffers_alloc(hda_t *hda, hda_stream_buffers_t **rbufs)
hda                76 uspace/drv/audio/hdaudio/stream.c 	    hda->ctl->ok64bit ? 0 : DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE,
hda                98 uspace/drv/audio/hdaudio/stream.c 		    bufs->hda->ctl->ok64bit ? 0 : DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE,
hda               122 uspace/drv/audio/hdaudio/stream.c 	    hda->ctl->ok64bit ? 0 : DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE,
hda               174 uspace/drv/audio/hdaudio/stream.c 	sdregs = &stream->hda->regs->sdesc[stream->sdid];
hda               189 uspace/drv/audio/hdaudio/stream.c 	sdregs = &stream->hda->regs->sdesc[stream->sdid];
hda               205 uspace/drv/audio/hdaudio/stream.c 	sdregs = &stream->hda->regs->sdesc[stream->sdid];
hda               220 uspace/drv/audio/hdaudio/stream.c hda_stream_t *hda_stream_create(hda_t *hda, hda_stream_dir_t dir,
hda               237 uspace/drv/audio/hdaudio/stream.c 		sdid = hda->ctl->iss; /* XXX Allocate - First output SDESC */
hda               240 uspace/drv/audio/hdaudio/stream.c 		sdid = hda->ctl->iss + hda->ctl->oss; /* XXX Allocate - First bidi SDESC */
hda               244 uspace/drv/audio/hdaudio/stream.c 	stream->hda = hda;
hda                66 uspace/drv/audio/hdaudio/stream.h 	hda_t *hda;
HelenOS homepage, sources at GitHub