Lines Matching defs:engp

4502 	usb_audio_eng_t *engp;
4508 engp = &statep->engines[i];
4511 if (engp->af_engp == NULL)
4513 if (usb_ac_set_format(statep, engp) != USB_SUCCESS) {
4519 if (engp->started) {
4520 (void) usb_engine_start(engp);
4575 usb_ac_rem_eng(usb_ac_state_t *statep, usb_audio_eng_t *engp)
4577 if (statep->usb_ac_audio_dev == NULL || engp->af_engp == NULL)
4580 audio_dev_remove_engine(statep->usb_ac_audio_dev, engp->af_engp);
4581 audio_engine_free(engp->af_engp);
4583 mutex_enter(&engp->lock);
4584 engp->af_engp = NULL;
4585 engp->streams = NULL;
4586 mutex_exit(&engp->lock);
4588 mutex_destroy(&engp->lock);
4589 cv_destroy(&engp->usb_audio_cv);
4597 usb_audio_eng_t *engp;
4608 engp = &(uacp->engines[0]);
4610 engp = &(uacp->engines[1]);
4613 cv_init(&engp->usb_audio_cv, NULL, CV_DRIVER, NULL);
4615 mutex_init(&engp->lock, NULL, MUTEX_DRIVER, NULL);
4617 mutex_enter(&engp->lock);
4619 engp->af_eflags =
4621 engp->statep = uacp;
4624 usb_ac_max_fmt(&(asinfo->acs_streams_reg), &engp->fmt);
4628 if (engp->fmt.ch == 2) {
4629 engp->af_defgain = AUDIO_CTRL_STEREO_VAL(defgain, defgain);
4631 engp->af_defgain = defgain;
4633 engp->streams = asinfo;
4635 mutex_exit(&engp->lock);
4637 af_engp = audio_engine_alloc(&usb_engine_ops, engp->af_eflags);
4644 ASSERT(engp->af_engp == 0);
4646 mutex_enter(&engp->lock);
4647 engp->af_engp = af_engp;
4648 mutex_exit(&engp->lock);
4650 audio_engine_set_private(af_engp, engp);
4656 if (usb_ac_set_format(uacp, engp) != USB_SUCCESS) {
4665 usb_ac_rem_eng(uacp, engp);
4725 usb_eng_bufio(usb_audio_eng_t *engp, void *buf, size_t sz)
4730 if (engp->af_eflags & ENGINE_OUTPUT_CAP) {
4731 src = &engp->bufpos;
4735 dst = &engp->bufpos;
4744 if (engp->bufpos + sz >= engp->bufendp) {
4745 cpsz = (size_t)engp->bufendp - (size_t)engp->bufpos;
4750 engp->bufpos = engp->bufp;
4758 engp->bufpos += cpsz;
4760 engp->bufio_count++;
5338 usb_audio_eng_t *engp = &(statep->engines[0]);
5339 unsigned reqframes = samples >> engp->frsmshift;
5345 mutex_enter(&engp->lock);
5346 if (!engp->started) {
5347 mutex_exit(&engp->lock);
5351 engp->busy = B_TRUE;
5352 mutex_exit(&engp->lock);
5357 mutex_enter(&engp->lock);
5359 if (frames > engp->fragfr)
5360 frames = engp->fragfr;
5362 sz = (frames << engp->frsmshift) << engp->smszshift;
5365 usb_eng_bufio(engp, bp, sz);
5366 engp->frames += frames;
5369 mutex_exit(&engp->lock);
5372 mutex_enter(&engp->lock);
5373 engp->io_count++;
5374 engp->busy = B_FALSE;
5375 cv_signal(&engp->usb_audio_cv);
5376 mutex_exit(&engp->lock);
5387 usb_audio_eng_t *engp = &(statep->engines[1]);
5388 unsigned reqframes = samples >> engp->frsmshift;
5394 mutex_enter(&engp->lock);
5396 if (!engp->started) {
5398 mutex_exit(&engp->lock);
5401 engp->busy = B_TRUE;
5402 mutex_exit(&engp->lock);
5406 mutex_enter(&engp->lock);
5409 if (frames > engp->fragfr)
5410 frames = engp->fragfr;
5412 sz = (frames << engp->frsmshift) << engp->smszshift;
5415 usb_eng_bufio(engp, bp, sz);
5416 engp->frames += frames;
5419 mutex_exit(&engp->lock);
5422 mutex_enter(&engp->lock);
5423 engp->io_count++;
5424 engp->busy = B_FALSE;
5425 cv_signal(&engp->usb_audio_cv);
5426 mutex_exit(&engp->lock);
5437 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5438 usb_ac_state_t *statep = engp->statep;
5450 mutex_enter(&engp->lock);
5452 engp->intrate = 150;
5453 engp->sampsz = engp->fmt.prec / 8;
5454 engp->framesz = engp->sampsz * engp->fmt.ch;
5456 if (engp->fmt.ch > 2) {
5458 "unsupported channel count: %u", engp->fmt.ch);
5459 mutex_exit(&engp->lock);
5462 if (engp->fmt.prec > 16) {
5464 "unsupported precision: %u", engp->fmt.prec);
5465 mutex_exit(&engp->lock);
5469 engp->frsmshift = engp->fmt.ch / 2;
5470 engp->smszshift = engp->sampsz / 2;
5480 engp->fragsz = engp->fmt.sr * engp->fmt.ch / engp->intrate;
5481 if (engp->fragsz & 1)
5482 engp->fragsz++;
5483 engp->fragsz *= engp->sampsz;
5484 engp->fragfr = engp->fragsz / engp->framesz;
5486 engp->nfrags = 10;
5487 engp->bufsz = engp->fragsz * engp->nfrags;
5489 engp->bufp = kmem_zalloc(engp->bufsz, KM_SLEEP);
5490 engp->bufpos = engp->bufp;
5491 engp->bufendp = engp->bufp + engp->bufsz;
5492 engp->frames = 0;
5493 engp->io_count = 0;
5494 engp->bufio_count = 0;
5495 engp->started = B_FALSE;
5496 engp->busy = B_FALSE;
5498 *nframesp = engp->nfrags * engp->fragfr;
5499 *bufp = engp->bufp;
5501 mutex_exit(&engp->lock);
5503 if (usb_ac_setup(statep, engp) != USB_SUCCESS) {
5529 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5530 usb_ac_state_t *statep = engp->statep;
5532 mutex_enter(&engp->lock);
5533 while (engp->busy) {
5534 cv_wait(&engp->usb_audio_cv, &engp->lock);
5537 mutex_exit(&engp->lock);
5540 usb_ac_teardown(statep, engp);
5545 mutex_enter(&engp->lock);
5547 if (engp->bufp != NULL) {
5548 kmem_free(engp->bufp, engp->bufsz);
5549 engp->bufp = NULL;
5550 engp->bufpos = NULL;
5551 engp->bufendp = NULL;
5554 mutex_exit(&engp->lock);
5564 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5568 mutex_enter(&engp->lock);
5569 engp->started = B_TRUE;
5570 mutex_exit(&engp->lock);
5572 usb_ac_state_t *statep = engp->statep;
5574 start = ((engp)->af_eflags & ENGINE_OUTPUT_CAP) ?
5577 if ((*start)(statep, engp) != USB_SUCCESS) {
5579 "failed to start %d engine", engp->af_eflags);
5591 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5593 mutex_enter(&engp->lock);
5594 engp->started = B_FALSE;
5595 mutex_exit(&engp->lock);
5597 usb_ac_state_t *statep = engp->statep;
5600 stop = ((engp)->af_eflags & ENGINE_OUTPUT_CAP) ?
5603 (*stop)(statep, engp);
5610 usb_audio_eng_t *engp = arg;
5613 mutex_enter(&engp->lock);
5614 val = engp->frames;
5615 mutex_exit(&engp->lock);
5624 usb_audio_eng_t *engp = arg;
5626 switch (engp->fmt.enc) {
5640 switch (engp->fmt.prec) {
5660 usb_audio_eng_t *engp = arg;
5662 return (engp->fmt.ch);
5669 usb_audio_eng_t *engp = arg;
5671 return (engp->fmt.sr);
5686 usb_audio_eng_t *engp = (usb_audio_eng_t *)arg;
5688 return (engp->fragfr);