Lines Matching refs:rspq

1467 	skb = napi_get_frags(&rxq->rspq.napi);
1479 skb_record_rx_queue(skb, rxq->rspq.idx);
1483 ret = napi_gro_frags(&rxq->rspq.napi);
1495 * @rspq: the response queue that received the packet
1501 int t4vf_ethrx_handler(struct sge_rspq *rspq, const __be64 *rsp,
1507 struct sge_eth_rxq *rxq = container_of(rspq, struct sge_eth_rxq, rspq);
1514 (rspq->netdev->features & NETIF_F_GRO) && csum_ok &&
1530 skb->protocol = eth_type_trans(skb, rspq->netdev);
1531 skb_record_rx_queue(skb, rspq->idx);
1534 if (csum_ok && (rspq->netdev->features & NETIF_F_RXCSUM) &&
1560 * @rspq: the response queue
1566 const struct sge_rspq *rspq)
1568 return RSPD_GEN(rc->type_gen) == rspq->gen;
1610 * @rspq: the queue
1614 static inline void rspq_next(struct sge_rspq *rspq)
1616 rspq->cur_desc = (void *)rspq->cur_desc + rspq->iqe_len;
1617 if (unlikely(++rspq->cidx == rspq->size)) {
1618 rspq->cidx = 0;
1619 rspq->gen ^= 1;
1620 rspq->cur_desc = rspq->desc;
1626 * @rspq: the ingress response queue to process
1637 int process_responses(struct sge_rspq *rspq, int budget)
1639 struct sge_eth_rxq *rxq = container_of(rspq, struct sge_eth_rxq, rspq);
1646 rc = (void *)rspq->cur_desc + (rspq->iqe_len - sizeof(*rc));
1647 if (!is_new_response(rc, rspq))
1673 if (likely(rspq->offset > 0)) {
1674 free_rx_bufs(rspq->adapter, &rxq->fl,
1676 rspq->offset = 0;
1691 fp->offset = rspq->offset;
1696 unmap_rx_buf(rspq->adapter, &rxq->fl);
1705 dma_sync_single_for_cpu(rspq->adapter->pdev_dev,
1716 ret = rspq->handler(rspq, rspq->cur_desc, &gl);
1718 rspq->offset += ALIGN(fp->size, FL_ALIGN);
1722 ret = rspq->handler(rspq, rspq->cur_desc, NULL);
1735 rspq->next_intr_params =
1740 rspq_next(rspq);
1749 if (rspq->offset >= 0 &&
1751 __refill_fl(rspq->adapter, &rxq->fl);
1769 struct sge_rspq *rspq = container_of(napi, struct sge_rspq, napi);
1770 int work_done = process_responses(rspq, budget);
1774 intr_params = rspq->next_intr_params;
1775 rspq->next_intr_params = rspq->intr_params;
1780 rspq->unhandled_irqs++;
1782 t4_write_reg(rspq->adapter,
1785 INGRESSQID((u32)rspq->cntxt_id) |
1796 struct sge_rspq *rspq = cookie;
1798 napi_schedule(&rspq->napi);
1816 struct sge_rspq *rspq;
1854 rspq = s->ingr_map[iq_idx];
1855 if (unlikely(rspq == NULL)) {
1860 if (unlikely(rspq->abs_id != qid)) {
1863 qid, rspq->abs_id);
1872 napi_schedule(&rspq->napi);
1959 if (napi_reschedule(&rxq->rspq.napi))
2027 * @rspq: pointer to to the new rxq's Response Queue to be filled in
2028 * @iqasynch: if 0, a normal rspq; if 1, an asynchronous event queue
2029 * @dev: the network device associated with the new rspq
2032 * @hnd: the interrupt handler to invoke for the rspq
2034 int t4vf_sge_alloc_rxq(struct adapter *adapter, struct sge_rspq *rspq,
2050 if ((adapter->flags & USING_MSI) && rspq != &adapter->sge.intrq) {
2062 rspq->size = roundup(rspq->size, 16);
2063 rspq->desc = alloc_ring(adapter->pdev_dev, rspq->size, rspq->iqe_len,
2064 0, &rspq->phys_addr, NULL, 0);
2065 if (!rspq->desc)
2094 FW_IQ_CMD_IQINTCNTTHRESH(rspq->pktcnt_idx) |
2095 FW_IQ_CMD_IQESIZE(ilog2(rspq->iqe_len) - 4));
2096 cmd.iqsize = cpu_to_be16(rspq->size);
2097 cmd.iqaddr = cpu_to_be64(rspq->phys_addr);
2148 netif_napi_add(dev, &rspq->napi, napi_rx_handler, 64);
2149 rspq->cur_desc = rspq->desc;
2150 rspq->cidx = 0;
2151 rspq->gen = 1;
2152 rspq->next_intr_params = rspq->intr_params;
2153 rspq->cntxt_id = be16_to_cpu(rpl.iqid);
2154 rspq->abs_id = be16_to_cpu(rpl.physiqid);
2155 rspq->size--; /* subtract status entry */
2156 rspq->adapter = adapter;
2157 rspq->netdev = dev;
2158 rspq->handler = hnd;
2161 rspq->offset = fl ? 0 : -1;
2182 if (rspq->desc) {
2183 dma_free_coherent(adapter->pdev_dev, rspq->size * rspq->iqe_len,
2184 rspq->desc, rspq->phys_addr);
2185 rspq->desc = NULL;
2310 static void free_rspq_fl(struct adapter *adapter, struct sge_rspq *rspq,
2316 rspq->cntxt_id, flid, 0xffff);
2317 dma_free_coherent(adapter->pdev_dev, (rspq->size + 1) * rspq->iqe_len,
2318 rspq->desc, rspq->phys_addr);
2319 netif_napi_del(&rspq->napi);
2320 rspq->netdev = NULL;
2321 rspq->cntxt_id = 0;
2322 rspq->abs_id = 0;
2323 rspq->desc = NULL;
2353 if (rxq->rspq.desc)
2354 free_rspq_fl(adapter, &rxq->rspq, &rxq->fl);