Lines Matching defs:engp

4498 	usb_audio_eng_t *engp;
4504 engp = &statep->engines[i];
4507 if (engp->af_engp == NULL)
4509 if (usb_ac_set_format(statep, engp) != USB_SUCCESS) {
4515 if (engp->started) {
4516 (void) usb_engine_start(engp);
4583 usb_ac_rem_eng(usb_ac_state_t *statep, usb_audio_eng_t *engp)
4585 if (statep->usb_ac_audio_dev == NULL || engp->af_engp == NULL)
4588 audio_dev_remove_engine(statep->usb_ac_audio_dev, engp->af_engp);
4589 audio_engine_free(engp->af_engp);
4591 mutex_enter(&engp->lock);
4592 engp->af_engp = NULL;
4593 engp->streams = NULL;
4594 mutex_exit(&engp->lock);
4596 mutex_destroy(&engp->lock);
4597 cv_destroy(&engp->usb_audio_cv);
4605 usb_audio_eng_t *engp;
4616 engp = &(uacp->engines[0]);
4618 engp = &(uacp->engines[1]);
4621 cv_init(&engp->usb_audio_cv, NULL, CV_DRIVER, NULL);
4623 mutex_init(&engp->lock, NULL, MUTEX_DRIVER, NULL);
4625 mutex_enter(&engp->lock);
4627 engp->af_eflags =
4629 engp->statep = uacp;
4632 usb_ac_max_fmt(&(asinfo->acs_streams_reg), &engp->fmt);
4636 if (engp->fmt.ch == 2) {
4637 engp->af_defgain = AUDIO_CTRL_STEREO_VAL(defgain, defgain);
4639 engp->af_defgain = defgain;
4641 engp->streams = asinfo;
4643 mutex_exit(&engp->lock);
4645 af_engp = audio_engine_alloc(&usb_engine_ops, engp->af_eflags);
4652 ASSERT(engp->af_engp == 0);
4654 mutex_enter(&engp->lock);
4655 engp->af_engp = af_engp;
4656 mutex_exit(&engp->lock);
4658 audio_engine_set_private(af_engp, engp);
4664 if (usb_ac_set_format(uacp, engp) != USB_SUCCESS) {
4673 usb_ac_rem_eng(uacp, engp);
4733 usb_eng_bufio(usb_audio_eng_t *engp, void *buf, size_t sz)
4738 if (engp->af_eflags & ENGINE_OUTPUT_CAP) {
4739 src = &engp->bufpos;
4743 dst = &engp->bufpos;
4752 if (engp->bufpos + sz >= engp->bufendp) {
4753 cpsz = (size_t)engp->bufendp - (size_t)engp->bufpos;
4758 engp->bufpos = engp->bufp;
4766 engp->bufpos += cpsz;
4768 engp->bufio_count++;
5346 usb_audio_eng_t *engp = &(statep->engines[0]);
5347 unsigned reqframes = samples >> engp->frsmshift;
5353 mutex_enter(&engp->lock);
5354 if (!engp->started) {
5355 mutex_exit(&engp->lock);
5359 engp->busy = B_TRUE;
5360 mutex_exit(&engp->lock);
5365 mutex_enter(&engp->lock);
5367 if (frames > engp->fragfr)
5368 frames = engp->fragfr;
5370 sz = (frames << engp->frsmshift) << engp->smszshift;
5373 usb_eng_bufio(engp, bp, sz);
5374 engp->frames += frames;
5377 mutex_exit(&engp->lock);
5380 mutex_enter(&engp->lock);
5381 engp->io_count++;
5382 engp->busy = B_FALSE;
5383 cv_signal(&engp->usb_audio_cv);
5384 mutex_exit(&engp->lock);
5395 usb_audio_eng_t *engp = &(statep->engines[1]);
5396 unsigned reqframes = samples >> engp->frsmshift;
5402 mutex_enter(&engp->lock);
5404 if (!engp->started) {
5406 mutex_exit(&engp->lock);
5409 engp->busy = B_TRUE;
5410 mutex_exit(&engp->lock);
5414 mutex_enter(&engp->lock);
5417 if (frames > engp->fragfr)
5418 frames = engp->fragfr;
5420 sz = (frames << engp->frsmshift) << engp->smszshift;
5423 usb_eng_bufio(engp, bp, sz);
5424 engp->frames += frames;
5427 mutex_exit(&engp->lock);
5430 mutex_enter(&engp->lock);
5431 engp->io_count++;
5432 engp->busy = B_FALSE;
5433 cv_signal(&engp->usb_audio_cv);
5434 mutex_exit(&engp->lock);
5445 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5446 usb_ac_state_t *statep = engp->statep;
5458 mutex_enter(&engp->lock);
5460 engp->intrate = 150;
5461 engp->sampsz = engp->fmt.prec / 8;
5462 engp->framesz = engp->sampsz * engp->fmt.ch;
5464 engp->frsmshift = engp->fmt.ch / 2;
5465 engp->smszshift = engp->sampsz / 2;
5475 engp->fragsz = engp->fmt.sr * engp->fmt.ch / engp->intrate;
5476 if (engp->fragsz & 1)
5477 engp->fragsz++;
5478 engp->fragsz *= engp->sampsz;
5479 engp->fragfr = engp->fragsz / engp->framesz;
5481 engp->nfrags = 10;
5482 engp->bufsz = engp->fragsz * engp->nfrags;
5484 engp->bufp = kmem_zalloc(engp->bufsz, KM_SLEEP);
5485 engp->bufpos = engp->bufp;
5486 engp->bufendp = engp->bufp + engp->bufsz;
5487 engp->frames = 0;
5488 engp->io_count = 0;
5489 engp->bufio_count = 0;
5490 engp->started = B_FALSE;
5491 engp->busy = B_FALSE;
5493 *nframesp = engp->nfrags * engp->fragfr;
5494 *bufp = engp->bufp;
5496 mutex_exit(&engp->lock);
5498 if (usb_ac_setup(statep, engp) != USB_SUCCESS) {
5524 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5525 usb_ac_state_t *statep = engp->statep;
5527 mutex_enter(&engp->lock);
5528 while (engp->busy) {
5529 cv_wait(&engp->usb_audio_cv, &engp->lock);
5532 mutex_exit(&engp->lock);
5535 usb_ac_teardown(statep, engp);
5540 mutex_enter(&engp->lock);
5542 if (engp->bufp != NULL) {
5543 kmem_free(engp->bufp, engp->bufsz);
5544 engp->bufp = NULL;
5545 engp->bufpos = NULL;
5546 engp->bufendp = NULL;
5549 mutex_exit(&engp->lock);
5559 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5563 mutex_enter(&engp->lock);
5564 engp->started = B_TRUE;
5565 mutex_exit(&engp->lock);
5567 usb_ac_state_t *statep = engp->statep;
5569 start = ((engp)->af_eflags & ENGINE_OUTPUT_CAP) ?
5572 if ((*start)(statep, engp) != USB_SUCCESS) {
5574 "failed to start %d engine", engp->af_eflags);
5586 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5588 mutex_enter(&engp->lock);
5589 engp->started = B_FALSE;
5590 mutex_exit(&engp->lock);
5592 usb_ac_state_t *statep = engp->statep;
5595 stop = ((engp)->af_eflags & ENGINE_OUTPUT_CAP) ?
5598 (*stop)(statep, engp);
5605 usb_audio_eng_t *engp = arg;
5608 mutex_enter(&engp->lock);
5609 val = engp->frames;
5610 mutex_exit(&engp->lock);
5619 usb_audio_eng_t *engp = arg;
5621 switch (engp->fmt.enc) {
5635 switch (engp->fmt.prec) {
5655 usb_audio_eng_t *engp = arg;
5657 return (engp->fmt.ch);
5664 usb_audio_eng_t *engp = arg;
5666 return (engp->fmt.sr);
5681 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5683 return (engp->fragfr);