Lines Matching refs:ir

84 	struct fw_xferq *ir;
239 if (d->ir != NULL) {
240 struct fw_xferq *ir = d->ir;
242 if ((ir->flag & FWXFERQ_OPEN) == 0)
244 if (ir->flag & FWXFERQ_RUNNING) {
245 ir->flag &= ~FWXFERQ_RUNNING;
246 fc->irx_disable(fc, ir->dmach);
249 fwdev_freebuf(ir);
251 for (xfer = STAILQ_FIRST(&ir->q);
252 xfer != NULL; xfer = STAILQ_FIRST(&ir->q)) {
253 ir->queued --;
254 STAILQ_REMOVE_HEAD(&ir->q, link);
259 ir->flag &= ~(FWXFERQ_OPEN |
261 d->ir = NULL;
364 struct fw_xferq *ir;
375 ir = d->ir;
377 if (ir == NULL)
380 if (ir->buf == NULL)
385 if (ir->stproc == NULL) {
387 ir->stproc = STAILQ_FIRST(&ir->stvalid);
388 if (ir->stproc != NULL) {
390 STAILQ_REMOVE_HEAD(&ir->stvalid, link);
392 ir->queued = 0;
395 if (ir->stproc == NULL) {
399 ir->flag |= FWXFERQ_WAKEUP;
400 //err = msleep(ir, FW_GMTX(fc), FWPRI, "fw_read", hz);
402 err = acquire_sem_etc(ir->Sem, 1, B_CAN_INTERRUPT | B_TIMEOUT, 1000000);
405 ir->flag &= ~FWXFERQ_WAKEUP;
412 } else if (ir->stproc != NULL) {
415 fp = (struct fw_pkt *)fwdma_v_addr(ir->buf,
416 ir->stproc->poffset + ir->queued);
432 ir->queued ++;
433 if (ir->queued >= ir->bnpacket) {
435 STAILQ_INSERT_TAIL(&ir->stfree, ir->stproc, link);
437 fc->irx_enable(fc, ir->dmach);
438 ir->stproc = NULL;
440 if (pbytes >= ir->psize) {
663 struct fw_xferq *ir, *it;
681 ir = d->ir;
712 if (ir == NULL) {
718 ir = fc->ir[i];
719 err = fwdev_allocbuf(ir, &d->bufreq.rx);
721 ir->flag &= ~FWXFERQ_OPEN;
725 ir->flag &= ~0xff;
726 ir->flag |= (0x3f & ichreq->ch);
727 ir->flag |= ((0x3 & ichreq->tag) << 6);
728 d->ir = ir;
729 err = fc->irx_enable(fc, ir->dmach);
732 if (d->ir != NULL) {
733 ichreq->ch = ir->flag & 0x3f;
734 ichreq->tag = ir->flag >> 2 & 0x3;
743 if (ir != NULL) {
744 ibufreq->rx.nchunk = ir->bnchunk;
745 ibufreq->rx.npacket = ir->bnpacket;
746 ibufreq->rx.psize = ir->psize;