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, ®s);
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