Пример #1
0
static void do_enqueues(struct qman_fq *fq)
{
	unsigned int loop;
	for (loop = 0; loop < NUM_ENQUEUES; loop++) {
		if (qman_enqueue(fq, &fd, QMAN_ENQUEUE_FLAG_WAIT |
				(((loop + 1) == NUM_ENQUEUES) ?
				QMAN_ENQUEUE_FLAG_WAIT_SYNC : 0)))
			panic("qman_enqueue() failed\n");
		fd_inc(&fd);
	}
}
Пример #2
0
static enum qman_cb_dqrr_result cb_dqrr(struct qman_portal *p,
                                        struct qman_fq *fq,
                                        const struct qm_dqrr_entry *dq)
{
    if (WARN_ON(fd_neq(&fd_dq, &dq->fd))) {
        pr_err("BADNESS: dequeued frame doesn't match;\n");
        return qman_cb_dqrr_consume;
    }
    fd_inc(&fd_dq);
    if (!(dq->stat & QM_DQRR_STAT_UNSCHEDULED) && !fd_neq(&fd_dq, &fd)) {
        sdqcr_complete = 1;
        wake_up(&waitqueue);
    }
    return qman_cb_dqrr_consume;
}
Пример #3
0
/* test */
static int do_enqueues(struct qman_fq *fq)
{
    unsigned int loop;
    int err = 0;

    for (loop = 0; loop < NUM_ENQUEUES; loop++) {
        if (qman_enqueue(fq, &fd)) {
            pr_crit("qman_enqueue() failed\n");
            err = -EIO;
        }
        fd_inc(&fd);
    }

    return err;
}
Пример #4
0
static void do_enqueues(struct qman_fq *fq)
{
	unsigned int loop = test_frames;
	dcbt_rw(eq_capture);
	while (loop) {
		int err;
		if (loop == test_start)
			eq_capture[0] = mfatb();
retry:
		err = qman_enqueue(fq, &fd, 0);
		if (err) {
			eq_jam++;
			cpu_spin(ENQUEUE_BACKOFF);
			goto retry;
		}
#ifdef TEST_FD
		fd_inc(&fd);
#endif
		loop--;
	}
	eq_capture[1] = mfatb();
}