Lines Matching refs:uframe
53 #define FOTG210_TUNE_MULT_HS 1 /* 1-3 transactions/uframe; 4.10.3 */
563 /* uframe masks */
709 temp = scnprintf(next, size, "uframe %04x\n",
2740 * - allowing for high bandwidth, how many nsec/uframe are used?
2741 * - split transactions need a second CSPLIT uframe; same question
3329 /* how many of the uframe's 125 usecs are allocated? */
3331 unsigned frame, unsigned uframe)
3343 if (hw->hw_info2 & cpu_to_hc32(fotg210, 1 << uframe))
3347 1 << (8 + uframe)))
3364 if (q->itd->hw_transaction[uframe])
3372 fotg210_err(fotg210, "uframe %d sched overrun: %d usecs\n",
3373 frame * 8 + uframe, usecs);
3400 * (different dev or endpoint) until the next uframe.
3473 * this just links in a qh; caller guarantees uframe masks are set right.
3667 unsigned uframe, unsigned period, unsigned usecs)
3674 if (uframe >= 8)
3680 /* we "know" 2 and 4 uframe intervals were rejected; so
3685 for (uframe = 0; uframe < 7; uframe++) {
3687 uframe);
3693 /* just check the specified uframe, at that period */
3696 claimed = periodic_usecs(fotg210, frame, uframe);
3707 unsigned uframe, const struct fotg210_qh *qh, __hc32 *c_maskp)
3712 if (qh->c_usecs && uframe >= 6) /* FSTN territory? */
3715 if (!check_period(fotg210, frame, uframe, qh->period, qh->usecs))
3730 mask = 0x03 << (uframe + qh->gap_uf);
3733 mask |= 1 << uframe;
3735 if (!check_period(fotg210, frame, uframe + qh->gap_uf + 1,
3738 if (!check_period(fotg210, frame, uframe + qh->gap_uf,
3753 unsigned uframe;
3764 uframe = ffs(hc32_to_cpup(fotg210, &hw->hw_info2) & QH_SMASK);
3765 status = check_intr_schedule(fotg210, frame, --uframe,
3768 uframe = 0;
3783 for (uframe = 0; uframe < 8; uframe++) {
3785 frame, uframe, qh,
3792 /* qh->period == 0 means every uframe */
3805 ? cpu_to_hc32(fotg210, 1 << uframe)
4032 /* figure out per-uframe itd fields that we'll need later
4036 struct fotg210_iso_packet *uframe = &iso_sched->packet[i];
4050 uframe->transaction = cpu_to_hc32(fotg210, trans);
4052 /* might need to cross a buffer page within a uframe */
4053 uframe->bufp = (buf & ~(u64)0x0fff);
4055 if (unlikely((uframe->bufp != (buf & ~(u64)0x0fff))))
4056 uframe->cross = 1;
4130 static inline int itd_slot_ok(struct fotg210_hcd *fotg210, u32 mod, u32 uframe,
4133 uframe %= period;
4136 if (periodic_usecs(fotg210, uframe >> 3, uframe & 0x7)
4141 uframe += period;
4142 } while (uframe < mod);
4227 /* find a uframe slot with enough bandwidth.
4298 unsigned index, u16 uframe)
4303 uframe &= 0x07;
4304 itd->index[uframe] = index;
4306 itd->hw_transaction[uframe] = uf->transaction;
4307 itd->hw_transaction[uframe] |= cpu_to_hc32(fotg210, pg << 12);
4352 unsigned next_uframe, uframe, frame;
4369 /* fill iTDs uframe by uframe */
4374 /* ASSERT: no itds for this endpoint in this uframe */
4384 uframe = next_uframe & 0x07;
4387 itd_patch(fotg210, itd, iso_sched, packet, uframe);
4429 unsigned uframe;
4435 /* for each uframe with a packet */
4436 for (uframe = 0; uframe < 8; uframe++) {
4437 if (likely(itd->index[uframe] == -1))
4439 urb_index = itd->index[uframe];
4442 t = hc32_to_cpup(fotg210, &itd->hw_transaction[uframe]);
4443 itd->hw_transaction[uframe] = 0;
4699 unsigned frame, uframe;
4731 for (uframe = 0; uframe < 7; ++uframe)
4734 uframe));
4747 "setting max periodic bandwidth to %u%% (== %u usec/uframe)\n",
4916 * by default set standard 80% (== 100 usec/uframe) max periodic