Lines Matching refs:rspq

1554 	struct adapter *adapter = rxq->rspq.adapter;  in do_gro()
1559 skb = napi_get_frags(&rxq->rspq.napi); in do_gro()
1571 skb_record_rx_queue(skb, rxq->rspq.idx); in do_gro()
1578 ret = napi_gro_frags(&rxq->rspq.napi); in do_gro()
1596 int t4vf_ethrx_handler(struct sge_rspq *rspq, const __be64 *rsp, in t4vf_ethrx_handler() argument
1602 (rspq->netdev->features & NETIF_F_RXCSUM); in t4vf_ethrx_handler()
1603 struct sge_eth_rxq *rxq = container_of(rspq, struct sge_eth_rxq, rspq); in t4vf_ethrx_handler()
1604 struct adapter *adapter = rspq->adapter; in t4vf_ethrx_handler()
1612 (rspq->netdev->features & NETIF_F_GRO) && csum_ok && in t4vf_ethrx_handler()
1628 skb->protocol = eth_type_trans(skb, rspq->netdev); in t4vf_ethrx_handler()
1629 skb_record_rx_queue(skb, rspq->idx); in t4vf_ethrx_handler()
1664 const struct sge_rspq *rspq) in is_new_response() argument
1666 return RSPD_GEN(rc->type_gen) == rspq->gen; in is_new_response()
1712 static inline void rspq_next(struct sge_rspq *rspq) in rspq_next() argument
1714 rspq->cur_desc = (void *)rspq->cur_desc + rspq->iqe_len; in rspq_next()
1715 if (unlikely(++rspq->cidx == rspq->size)) { in rspq_next()
1716 rspq->cidx = 0; in rspq_next()
1717 rspq->gen ^= 1; in rspq_next()
1718 rspq->cur_desc = rspq->desc; in rspq_next()
1735 static int process_responses(struct sge_rspq *rspq, int budget) in process_responses() argument
1737 struct sge_eth_rxq *rxq = container_of(rspq, struct sge_eth_rxq, rspq); in process_responses()
1738 struct adapter *adapter = rspq->adapter; in process_responses()
1746 rc = (void *)rspq->cur_desc + (rspq->iqe_len - sizeof(*rc)); in process_responses()
1747 if (!is_new_response(rc, rspq)) in process_responses()
1773 if (likely(rspq->offset > 0)) { in process_responses()
1774 free_rx_bufs(rspq->adapter, &rxq->fl, in process_responses()
1776 rspq->offset = 0; in process_responses()
1791 fp->offset = rspq->offset; in process_responses()
1796 unmap_rx_buf(rspq->adapter, &rxq->fl); in process_responses()
1805 dma_sync_single_for_cpu(rspq->adapter->pdev_dev, in process_responses()
1816 ret = rspq->handler(rspq, rspq->cur_desc, &gl); in process_responses()
1818 rspq->offset += ALIGN(fp->size, s->fl_align); in process_responses()
1822 ret = rspq->handler(rspq, rspq->cur_desc, NULL); in process_responses()
1835 rspq->next_intr_params = in process_responses()
1840 rspq_next(rspq); in process_responses()
1849 if (rspq->offset >= 0 && in process_responses()
1851 __refill_fl(rspq->adapter, &rxq->fl); in process_responses()
1869 struct sge_rspq *rspq = container_of(napi, struct sge_rspq, napi); in napi_rx_handler() local
1870 int work_done = process_responses(rspq, budget); in napi_rx_handler()
1875 intr_params = rspq->next_intr_params; in napi_rx_handler()
1876 rspq->next_intr_params = rspq->intr_params; in napi_rx_handler()
1881 rspq->unhandled_irqs++; in napi_rx_handler()
1884 if (is_t4(rspq->adapter->params.chip)) { in napi_rx_handler()
1885 t4_write_reg(rspq->adapter, in napi_rx_handler()
1887 val | INGRESSQID_V((u32)rspq->cntxt_id)); in napi_rx_handler()
1889 writel(val | INGRESSQID_V(rspq->bar2_qid), in napi_rx_handler()
1890 rspq->bar2_addr + SGE_UDB_GTS); in napi_rx_handler()
1902 struct sge_rspq *rspq = cookie; in t4vf_sge_intr_msix() local
1904 napi_schedule(&rspq->napi); in t4vf_sge_intr_msix()
1923 struct sge_rspq *rspq; in process_intrq() local
1961 rspq = s->ingr_map[iq_idx]; in process_intrq()
1962 if (unlikely(rspq == NULL)) { in process_intrq()
1967 if (unlikely(rspq->abs_id != qid)) { in process_intrq()
1970 qid, rspq->abs_id); in process_intrq()
1979 napi_schedule(&rspq->napi); in process_intrq()
2071 if (napi_reschedule(&rxq->rspq.napi)) in sge_rx_timer_cb()
2175 int t4vf_sge_alloc_rxq(struct adapter *adapter, struct sge_rspq *rspq, in t4vf_sge_alloc_rxq() argument
2192 if ((adapter->flags & USING_MSI) && rspq != &adapter->sge.intrq) { in t4vf_sge_alloc_rxq()
2204 rspq->size = roundup(rspq->size, 16); in t4vf_sge_alloc_rxq()
2205 rspq->desc = alloc_ring(adapter->pdev_dev, rspq->size, rspq->iqe_len, in t4vf_sge_alloc_rxq()
2206 0, &rspq->phys_addr, NULL, 0); in t4vf_sge_alloc_rxq()
2207 if (!rspq->desc) in t4vf_sge_alloc_rxq()
2236 FW_IQ_CMD_IQINTCNTTHRESH_V(rspq->pktcnt_idx) | in t4vf_sge_alloc_rxq()
2237 FW_IQ_CMD_IQESIZE_V(ilog2(rspq->iqe_len) - 4)); in t4vf_sge_alloc_rxq()
2238 cmd.iqsize = cpu_to_be16(rspq->size); in t4vf_sge_alloc_rxq()
2239 cmd.iqaddr = cpu_to_be64(rspq->phys_addr); in t4vf_sge_alloc_rxq()
2290 netif_napi_add(dev, &rspq->napi, napi_rx_handler, 64); in t4vf_sge_alloc_rxq()
2291 rspq->cur_desc = rspq->desc; in t4vf_sge_alloc_rxq()
2292 rspq->cidx = 0; in t4vf_sge_alloc_rxq()
2293 rspq->gen = 1; in t4vf_sge_alloc_rxq()
2294 rspq->next_intr_params = rspq->intr_params; in t4vf_sge_alloc_rxq()
2295 rspq->cntxt_id = be16_to_cpu(rpl.iqid); in t4vf_sge_alloc_rxq()
2296 rspq->bar2_addr = bar2_address(adapter, in t4vf_sge_alloc_rxq()
2297 rspq->cntxt_id, in t4vf_sge_alloc_rxq()
2299 &rspq->bar2_qid); in t4vf_sge_alloc_rxq()
2300 rspq->abs_id = be16_to_cpu(rpl.physiqid); in t4vf_sge_alloc_rxq()
2301 rspq->size--; /* subtract status entry */ in t4vf_sge_alloc_rxq()
2302 rspq->adapter = adapter; in t4vf_sge_alloc_rxq()
2303 rspq->netdev = dev; in t4vf_sge_alloc_rxq()
2304 rspq->handler = hnd; in t4vf_sge_alloc_rxq()
2307 rspq->offset = fl ? 0 : -1; in t4vf_sge_alloc_rxq()
2337 if (rspq->desc) { in t4vf_sge_alloc_rxq()
2338 dma_free_coherent(adapter->pdev_dev, rspq->size * rspq->iqe_len, in t4vf_sge_alloc_rxq()
2339 rspq->desc, rspq->phys_addr); in t4vf_sge_alloc_rxq()
2340 rspq->desc = NULL; in t4vf_sge_alloc_rxq()
2474 static void free_rspq_fl(struct adapter *adapter, struct sge_rspq *rspq, in free_rspq_fl() argument
2481 rspq->cntxt_id, flid, 0xffff); in free_rspq_fl()
2482 dma_free_coherent(adapter->pdev_dev, (rspq->size + 1) * rspq->iqe_len, in free_rspq_fl()
2483 rspq->desc, rspq->phys_addr); in free_rspq_fl()
2484 netif_napi_del(&rspq->napi); in free_rspq_fl()
2485 rspq->netdev = NULL; in free_rspq_fl()
2486 rspq->cntxt_id = 0; in free_rspq_fl()
2487 rspq->abs_id = 0; in free_rspq_fl()
2488 rspq->desc = NULL; in free_rspq_fl()
2518 if (rxq->rspq.desc) in t4vf_free_sge_resources()
2519 free_rspq_fl(adapter, &rxq->rspq, &rxq->fl); in t4vf_free_sge_resources()