• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/net/cxgb4vf/

Lines Matching defs:rspq

1417 	skb = napi_get_frags(&rxq->rspq.napi);
1429 skb_record_rx_queue(skb, rxq->rspq.idx);
1432 struct port_info *pi = netdev_priv(rxq->rspq.netdev);
1437 ret = vlan_gro_frags(&rxq->rspq.napi, grp,
1442 ret = napi_gro_frags(&rxq->rspq.napi);
1455 * @rspq: the response queue that received the packet
1461 int t4vf_ethrx_handler(struct sge_rspq *rspq, const __be64 *rsp,
1470 struct sge_eth_rxq *rxq = container_of(rspq, struct sge_eth_rxq, rspq);
1477 (rspq->netdev->features & NETIF_F_GRO) && csum_ok &&
1521 skb->protocol = eth_type_trans(skb, rspq->netdev);
1522 skb_record_rx_queue(skb, rspq->idx);
1563 * @rspq: the response queue
1569 const struct sge_rspq *rspq)
1571 return RSPD_GEN(rc->type_gen) == rspq->gen;
1613 * @rspq: the queue
1617 static inline void rspq_next(struct sge_rspq *rspq)
1619 rspq->cur_desc = (void *)rspq->cur_desc + rspq->iqe_len;
1620 if (unlikely(++rspq->cidx == rspq->size)) {
1621 rspq->cidx = 0;
1622 rspq->gen ^= 1;
1623 rspq->cur_desc = rspq->desc;
1629 * @rspq: the ingress response queue to process
1640 int process_responses(struct sge_rspq *rspq, int budget)
1642 struct sge_eth_rxq *rxq = container_of(rspq, struct sge_eth_rxq, rspq);
1649 rc = (void *)rspq->cur_desc + (rspq->iqe_len - sizeof(*rc));
1650 if (!is_new_response(rc, rspq))
1676 if (likely(rspq->offset > 0)) {
1677 free_rx_bufs(rspq->adapter, &rxq->fl,
1679 rspq->offset = 0;
1693 fp->page_offset = rspq->offset;
1698 unmap_rx_buf(rspq->adapter, &rxq->fl);
1707 dma_sync_single_for_cpu(rspq->adapter->pdev_dev,
1718 ret = rspq->handler(rspq, rspq->cur_desc, &gl);
1720 rspq->offset += ALIGN(fp->size, FL_ALIGN);
1724 ret = rspq->handler(rspq, rspq->cur_desc, NULL);
1737 rspq->next_intr_params =
1742 rspq_next(rspq);
1751 if (rspq->offset >= 0 &&
1753 __refill_fl(rspq->adapter, &rxq->fl);
1771 struct sge_rspq *rspq = container_of(napi, struct sge_rspq, napi);
1772 int work_done = process_responses(rspq, budget);
1776 intr_params = rspq->next_intr_params;
1777 rspq->next_intr_params = rspq->intr_params;
1782 rspq->unhandled_irqs++;
1784 t4_write_reg(rspq->adapter,
1787 INGRESSQID((u32)rspq->cntxt_id) |
1798 struct sge_rspq *rspq = cookie;
1800 napi_schedule(&rspq->napi);
1818 struct sge_rspq *rspq;
1856 rspq = s->ingr_map[iq_idx];
1857 if (unlikely(rspq == NULL)) {
1862 if (unlikely(rspq->abs_id != qid)) {
1865 qid, rspq->abs_id);
1874 napi_schedule(&rspq->napi);
1961 if (napi_reschedule(&rxq->rspq.napi))
2029 * @rspq: pointer to to the new rxq's Response Queue to be filled in
2030 * @iqasynch: if 0, a normal rspq; if 1, an asynchronous event queue
2031 * @dev: the network device associated with the new rspq
2034 * @hnd: the interrupt handler to invoke for the rspq
2036 int t4vf_sge_alloc_rxq(struct adapter *adapter, struct sge_rspq *rspq,
2052 if ((adapter->flags & USING_MSI) && rspq != &adapter->sge.intrq) {
2064 rspq->size = roundup(rspq->size, 16);
2065 rspq->desc = alloc_ring(adapter->pdev_dev, rspq->size, rspq->iqe_len,
2066 0, &rspq->phys_addr, NULL, 0);
2067 if (!rspq->desc)
2096 FW_IQ_CMD_IQINTCNTTHRESH(rspq->pktcnt_idx) |
2097 FW_IQ_CMD_IQESIZE(ilog2(rspq->iqe_len) - 4));
2098 cmd.iqsize = cpu_to_be16(rspq->size);
2099 cmd.iqaddr = cpu_to_be64(rspq->phys_addr);
2150 netif_napi_add(dev, &rspq->napi, napi_rx_handler, 64);
2151 rspq->cur_desc = rspq->desc;
2152 rspq->cidx = 0;
2153 rspq->gen = 1;
2154 rspq->next_intr_params = rspq->intr_params;
2155 rspq->cntxt_id = be16_to_cpu(rpl.iqid);
2156 rspq->abs_id = be16_to_cpu(rpl.physiqid);
2157 rspq->size--; /* subtract status entry */
2158 rspq->adapter = adapter;
2159 rspq->netdev = dev;
2160 rspq->handler = hnd;
2163 rspq->offset = fl ? 0 : -1;
2184 if (rspq->desc) {
2185 dma_free_coherent(adapter->pdev_dev, rspq->size * rspq->iqe_len,
2186 rspq->desc, rspq->phys_addr);
2187 rspq->desc = NULL;
2312 static void free_rspq_fl(struct adapter *adapter, struct sge_rspq *rspq,
2318 rspq->cntxt_id, flid, 0xffff);
2319 dma_free_coherent(adapter->pdev_dev, (rspq->size + 1) * rspq->iqe_len,
2320 rspq->desc, rspq->phys_addr);
2321 netif_napi_del(&rspq->napi);
2322 rspq->netdev = NULL;
2323 rspq->cntxt_id = 0;
2324 rspq->abs_id = 0;
2325 rspq->desc = NULL;
2355 if (rxq->rspq.desc)
2356 free_rspq_fl(adapter, &rxq->rspq, &rxq->fl);