Searched refs:equeue (Results 1 - 7 of 7) sorted by relevance

/linux-4.4.14/arch/tile/gxio/
H A Dmpipe.c392 int gxio_mpipe_equeue_init(gxio_mpipe_equeue_t *equeue, gxio_mpipe_equeue_init() argument
410 memset(equeue, 0, sizeof(*equeue)); gxio_mpipe_equeue_init()
418 __gxio_dma_queue_init(&equeue->dma_queue, gxio_mpipe_equeue_init()
421 equeue->edescs = mem; gxio_mpipe_equeue_init()
422 equeue->mask_num_entries = num_entries - 1; gxio_mpipe_equeue_init()
423 equeue->log2_num_entries = __builtin_ctz(num_entries); gxio_mpipe_equeue_init()
424 equeue->context = context; gxio_mpipe_equeue_init()
425 equeue->ering = ering; gxio_mpipe_equeue_init()
426 equeue->channel = channel; gxio_mpipe_equeue_init()
/linux-4.4.14/drivers/net/ethernet/tile/
H A Dtilegx.c65 /* Number of entries in each equeue. */
68 /* Total header bytes per equeue slot. Must be big enough for 2 bytes
169 /* The "equeue". */
170 gxio_mpipe_equeue_t *equeue; member in struct:tile_net_egress
709 static int tile_net_free_comps(gxio_mpipe_equeue_t *equeue, tile_net_free_comps() argument
717 if (!gxio_mpipe_equeue_is_complete(equeue, comp->when, tile_net_free_comps()
731 static void add_comp(gxio_mpipe_equeue_t *equeue, add_comp() argument
803 tile_net_free_comps(egress->equeue, comps, -1, true); tile_net_handle_egress_timer()
1370 gxio_mpipe_equeue_t *equeue; tile_net_init_egress() local
1379 if (md->egress_for_echannel[echannel].equeue != NULL) tile_net_init_egress()
1405 /* Allocate memory for the "equeue". */ tile_net_init_egress()
1406 equeue_order = get_order(sizeof(*equeue)); tile_net_init_egress()
1410 "Could not alloc %zd bytes for equeue info.\n", tile_net_init_egress()
1414 equeue = pfn_to_kaddr(page_to_pfn(equeue_page)); tile_net_init_egress()
1427 /* Initialize the equeue. */ tile_net_init_egress()
1428 rc = gxio_mpipe_equeue_init(equeue, &md->context, ering, echannel, tile_net_init_egress()
1441 if (gxio_mpipe_equeue_set_snf_size(equeue, 10368) < 0) { tile_net_init_egress()
1449 md->egress_for_echannel[echannel].equeue = equeue; tile_net_init_egress()
1643 gxio_mpipe_equeue_t *equeue, tile_net_equeue_try_reserve()
1648 tile_net_free_comps(equeue, comps, 32, false) != 0) { tile_net_equeue_try_reserve()
1651 s64 slot = gxio_mpipe_equeue_try_reserve(equeue, num_edescs); tile_net_equeue_try_reserve()
1655 /* Freeing some completions gives the equeue time to drain. */ tile_net_equeue_try_reserve()
1656 tile_net_free_comps(equeue, comps, TILE_NET_MAX_COMPS, false); tile_net_equeue_try_reserve()
1658 slot = gxio_mpipe_equeue_try_reserve(equeue, num_edescs); tile_net_equeue_try_reserve()
1830 static void tso_egress(struct net_device *dev, gxio_mpipe_equeue_t *equeue, tso_egress() argument
1870 gxio_mpipe_equeue_put_at(equeue, edesc_head, slot); tso_egress()
1898 gxio_mpipe_equeue_put_at(equeue, edesc_body, slot); tso_egress()
1939 gxio_mpipe_equeue_t *equeue = egress->equeue; tile_net_tx_tso() local
1951 equeue, num_edescs); tile_net_tx_tso()
1961 tso_egress(dev, equeue, skb, egress->headers, slot); tile_net_tx_tso()
1964 add_comp(equeue, comps, slot + num_edescs - 1, skb); tile_net_tx_tso()
2006 gxio_mpipe_equeue_t *equeue = egress->equeue; tile_net_tx() local
2049 equeue, num_edescs); tile_net_tx()
2056 gxio_mpipe_equeue_put_at(equeue, edescs[i], slot++); tile_net_tx()
2062 add_comp(equeue, comps, slot - 1, skb); tile_net_tx()
1640 tile_net_equeue_try_reserve(struct net_device *dev, int tx_queue_idx, struct tile_net_comps *comps, gxio_mpipe_equeue_t *equeue, int num_edescs) tile_net_equeue_try_reserve() argument
/linux-4.4.14/arch/tile/include/gxio/
H A Dmpipe.h1082 * performed on a shared equeue, by ensuring that the edescs for all
1339 /* Initialize an "equeue".
1344 * @param equeue An egress queue to be initialized.
1358 extern int gxio_mpipe_equeue_init(gxio_mpipe_equeue_t *equeue,
1373 * @param equeue An egress queue initialized via gxio_mpipe_equeue_init().
1377 static inline int64_t gxio_mpipe_equeue_reserve(gxio_mpipe_equeue_t *equeue, gxio_mpipe_equeue_reserve() argument
1380 return __gxio_dma_queue_reserve_aux(&equeue->dma_queue, num, true); gxio_mpipe_equeue_reserve()
1391 * @param equeue An egress queue initialized via gxio_mpipe_equeue_init().
1396 *equeue, unsigned int num) gxio_mpipe_equeue_try_reserve()
1398 return __gxio_dma_queue_reserve_aux(&equeue->dma_queue, num, false); gxio_mpipe_equeue_try_reserve()
1409 * @param equeue An egress queue initialized via gxio_mpipe_equeue_init().
1414 *equeue, unsigned int num) gxio_mpipe_equeue_reserve_fast()
1416 return __gxio_dma_queue_reserve(&equeue->dma_queue, num, true, false); gxio_mpipe_equeue_reserve_fast()
1427 * @param equeue An egress queue initialized via gxio_mpipe_equeue_init().
1432 *equeue, gxio_mpipe_equeue_try_reserve_fast()
1435 return __gxio_dma_queue_reserve(&equeue->dma_queue, num, false, false); gxio_mpipe_equeue_try_reserve_fast()
1443 static inline void gxio_mpipe_equeue_put_at_aux(gxio_mpipe_equeue_t *equeue, gxio_mpipe_equeue_put_at_aux() argument
1447 unsigned long edma_slot = slot & equeue->mask_num_entries; gxio_mpipe_equeue_put_at_aux()
1448 gxio_mpipe_edesc_t *edesc_p = &equeue->edescs[edma_slot]; gxio_mpipe_equeue_put_at_aux()
1454 ew[0] |= !((slot >> equeue->log2_num_entries) & 1); gxio_mpipe_equeue_put_at_aux()
1465 /* Post an edesc to a given slot in an equeue.
1481 * slots in the equeue, but this is NOT recommended.
1483 * @param equeue An egress queue initialized via gxio_mpipe_equeue_init().
1487 static inline void gxio_mpipe_equeue_put_at(gxio_mpipe_equeue_t *equeue, gxio_mpipe_equeue_put_at() argument
1491 gxio_mpipe_equeue_put_at_aux(equeue, edesc.words, slot); gxio_mpipe_equeue_put_at()
1494 /* Post an edesc to the next slot in an equeue.
1499 * @param equeue An egress queue initialized via gxio_mpipe_equeue_init().
1503 static inline int gxio_mpipe_equeue_put(gxio_mpipe_equeue_t *equeue, gxio_mpipe_equeue_put() argument
1506 int64_t slot = gxio_mpipe_equeue_reserve_fast(equeue, 1); gxio_mpipe_equeue_put()
1510 gxio_mpipe_equeue_put_at(equeue, edesc, slot); gxio_mpipe_equeue_put()
1526 * @param equeue An egress queue initialized via gxio_mpipe_equeue_init().
1528 static inline void gxio_mpipe_equeue_flush(gxio_mpipe_equeue_t *equeue) gxio_mpipe_equeue_flush() argument
1534 __gxio_mmio_write(equeue->dma_queue.post_region_addr, val.word); gxio_mpipe_equeue_flush()
1543 * @param equeue An egress queue initialized via gxio_mpipe_equeue_init().
1550 static inline int gxio_mpipe_equeue_is_complete(gxio_mpipe_equeue_t *equeue, gxio_mpipe_equeue_is_complete() argument
1554 return __gxio_dma_queue_is_complete(&equeue->dma_queue, gxio_mpipe_equeue_is_complete()
1558 /* Set the snf (store and forward) size for an equeue.
1560 * The snf size for an equeue defaults to 1536, and encodes the size
1575 * on the equeue.
1577 * @param equeue An egress queue initialized via gxio_mpipe_equeue_init().
1581 static inline int gxio_mpipe_equeue_set_snf_size(gxio_mpipe_equeue_t *equeue, gxio_mpipe_equeue_set_snf_size() argument
1585 return gxio_mpipe_config_edma_ring_blks(equeue->context, equeue->ering, gxio_mpipe_equeue_set_snf_size()
1395 gxio_mpipe_equeue_try_reserve(gxio_mpipe_equeue_t *equeue, unsigned int num) gxio_mpipe_equeue_try_reserve() argument
1413 gxio_mpipe_equeue_reserve_fast(gxio_mpipe_equeue_t *equeue, unsigned int num) gxio_mpipe_equeue_reserve_fast() argument
1431 gxio_mpipe_equeue_try_reserve_fast(gxio_mpipe_equeue_t *equeue, unsigned int num) gxio_mpipe_equeue_try_reserve_fast() argument
/linux-4.4.14/drivers/s390/cio/
H A Dqdio.h294 struct ciw equeue; member in struct:qdio_irq
H A Dqdio_setup.c499 irq_ptr->equeue = *ciw; qdio_setup_irq()
H A Dqdio_main.c1359 irq_ptr->ccw.cmd_code = irq_ptr->equeue.cmd; qdio_establish()
1361 irq_ptr->ccw.count = irq_ptr->equeue.count; qdio_establish()
/linux-4.4.14/drivers/staging/lustre/lnet/lnet/
H A Dlib-eq.c181 CDEBUG(D_NET, "Event equeue (%d: %d) busy on destroy.\n", LNetEQFree()

Completed in 678 milliseconds