Lines Matching refs:msg_idx
512 sc->msg_idx = 0; in twsi_transfer()
558 debugf(sc, "Got interrupt, current msg=%u\n", sc->msg_idx); in twsi_intr()
580 sc->msgs[sc->msg_idx].slave); in twsi_intr()
582 if (sc->msgs[sc->msg_idx].flags & IIC_M_RD) in twsi_intr()
584 sc->msgs[sc->msg_idx].slave | LSB); in twsi_intr()
587 sc->msgs[sc->msg_idx].slave & ~LSB); in twsi_intr()
593 if (sc->msgs[sc->msg_idx].len > 0) { in twsi_intr()
597 sc->msgs[sc->msg_idx].len, in twsi_intr()
598 sc->msgs[sc->msg_idx].buf[0]); in twsi_intr()
600 sc->msgs[sc->msg_idx].buf[0]); in twsi_intr()
612 if (sc->msgs[sc->msg_idx].len == 0) { in twsi_intr()
616 } else if (sc->msgs[sc->msg_idx].len == 1) { in twsi_intr()
633 KASSERT(sc->sent_bytes <= sc->msgs[sc->msg_idx].len, in twsi_intr()
636 if (sc->sent_bytes == sc->msgs[sc->msg_idx].len) { in twsi_intr()
640 if (!(sc->msgs[sc->msg_idx].flags & IIC_M_NOSTOP)) { in twsi_intr()
652 sc->msgs[sc->msg_idx].len, in twsi_intr()
653 sc->msgs[sc->msg_idx].buf[sc->sent_bytes]); in twsi_intr()
655 sc->msgs[sc->msg_idx].buf[sc->sent_bytes]); in twsi_intr()
661 KASSERT(sc->recv_bytes < sc->msgs[sc->msg_idx].len, in twsi_intr()
664 sc->msgs[sc->msg_idx].buf[sc->recv_bytes] = in twsi_intr()
668 sc->msgs[sc->msg_idx].len, in twsi_intr()
669 sc->msgs[sc->msg_idx].buf[sc->recv_bytes]); in twsi_intr()
673 if (sc->msgs[sc->msg_idx].len - sc->recv_bytes == 1) { in twsi_intr()
675 } else if (sc->msgs[sc->msg_idx].len == sc->recv_bytes) { in twsi_intr()
687 KASSERT(sc->recv_bytes == sc->msgs[sc->msg_idx].len - 1, in twsi_intr()
689 sc->msgs[sc->msg_idx].buf[sc->recv_bytes] = in twsi_intr()
693 sc->msgs[sc->msg_idx].len, in twsi_intr()
694 sc->msgs[sc->msg_idx].buf[sc->recv_bytes]); in twsi_intr()
697 if (sc->msgs[sc->msg_idx].len == sc->recv_bytes) { in twsi_intr()
699 if (!(sc->msgs[sc->msg_idx].flags & IIC_M_NOSTOP)) { in twsi_intr()
730 sc->msg_idx++; in twsi_intr()
731 if (sc->msg_idx == sc->nmsgs) { in twsi_intr()
735 } else if ((sc->msgs[sc->msg_idx].flags & IIC_M_NOSTART) == 0) { in twsi_intr()
740 KASSERT((sc->msgs[sc->msg_idx - 1].flags & IIC_M_NOSTOP) != 0, in twsi_intr()
742 KASSERT((sc->msgs[sc->msg_idx].flags & IIC_M_RD) == in twsi_intr()
743 (sc->msgs[sc->msg_idx - 1].flags & IIC_M_RD), in twsi_intr()
748 if ((sc->msgs[sc->msg_idx].flags & IIC_M_RD) == 0) { in twsi_intr()