Lines Matching defs:adapter
254 * @adapter: pointer to the adapter
261 static inline bool fl_starving(const struct adapter *adapter,
264 const struct sge *s = &adapter->sge;
369 * @adapter: the adapter
377 static void free_tx_desc(struct adapter *adapter, struct sge_txq *tq,
382 struct device *dev = adapter->pdev_dev;
422 * @adapter: the adapter
430 static inline void reclaim_completed_tx(struct adapter *adapter,
444 free_tx_desc(adapter, tq, avail, unmap);
451 * @adapter: pointer to the associated adapter
454 static inline int get_buf_size(const struct adapter *adapter,
457 const struct sge *s = &adapter->sge;
465 * @adapter: the adapter
473 static void free_rx_bufs(struct adapter *adapter, struct sge_fl *fl, int n)
479 dma_unmap_page(adapter->pdev_dev, get_buf_addr(sdesc),
480 get_buf_size(adapter, sdesc),
492 * @adapter: the adapter
503 static void unmap_rx_buf(struct adapter *adapter, struct sge_fl *fl)
508 dma_unmap_page(adapter->pdev_dev, get_buf_addr(sdesc),
509 get_buf_size(adapter, sdesc),
519 * @adapter: the adapter
525 static inline void ring_fl_db(struct adapter *adapter, struct sge_fl *fl)
527 u32 val = adapter->params.arch.sge_fl_db;
534 if (is_t4(adapter->params.chip))
549 t4_write_reg(adapter,
592 * @adapter: the adapter
604 static unsigned int refill_fl(struct adapter *adapter, struct sge_fl *fl,
607 struct sge *s = &adapter->sge;
645 dma_addr = dma_map_page(adapter->pdev_dev, page, 0,
648 if (unlikely(dma_mapping_error(adapter->pdev_dev, dma_addr))) {
684 dma_addr = dma_map_page(adapter->pdev_dev, page, 0, PAGE_SIZE,
686 if (unlikely(dma_mapping_error(adapter->pdev_dev, dma_addr))) {
711 ring_fl_db(adapter, fl);
713 if (unlikely(fl_starving(adapter, fl))) {
715 set_bit(fl->cntxt_id, adapter->sge.starving_fl);
725 static inline void __refill_fl(struct adapter *adapter, struct sge_fl *fl)
727 refill_fl(adapter, fl,
958 * @adapter: the adapter
964 static inline void ring_tx_db(struct adapter *adapter, struct sge_txq *tq,
978 t4_write_reg(adapter, T4VF_SGE_BASE_ADDR + SGE_VF_KDOORBELL,
1005 * try to get it to the adapter in a single Write
1030 * the adapter out of order. This is required when some Work
1163 struct adapter *adapter;
1192 adapter = pi->adapter;
1195 txq = &adapter->sge.ethtxq[pi->first_qset + qidx];
1205 reclaim_completed_tx(adapter, &txq->q, true);
1224 dev_err(adapter->pdev_dev,
1231 unlikely(map_skb(adapter->pdev_dev, skb, addr) < 0)) {
1300 if (is_t4(adapter->params.chip))
1311 if (CHELSIO_CHIP_VERSION(adapter->params.chip) <= CHELSIO_T5)
1335 cntrl = hwcsum(adapter->params.chip, skb) |
1362 T4_TRACE5(adapter->tb[txq->q.cntxt_id & 7],
1448 ring_tx_db(adapter, &txq->q, ndesc);
1567 struct adapter *adapter = rxq->rspq.adapter;
1568 struct sge *s = &adapter->sge;
1619 struct adapter *adapter = rspq->adapter;
1620 struct sge *s = &adapter->sge;
1757 struct adapter *adapter = rspq->adapter;
1758 struct sge *s = &adapter->sge;
1793 free_rx_bufs(rspq->adapter, &rxq->fl,
1808 bufsz = get_buf_size(adapter, sdesc);
1815 unmap_rx_buf(rspq->adapter, &rxq->fl);
1824 dma_sync_single_for_cpu(rspq->adapter->pdev_dev,
1870 __refill_fl(rspq->adapter, &rxq->fl);
1881 * this point and other adapter interrupts do not interfere (the latter
1907 t4_write_reg(rspq->adapter,
1934 static unsigned int process_intrq(struct adapter *adapter)
1936 struct sge *s = &adapter->sge;
1941 spin_lock(&adapter->sge.intrq_lock);
1962 dev_err(adapter->pdev_dev,
1979 dev_err(adapter->pdev_dev,
1985 dev_err(adapter->pdev_dev,
1990 dev_err(adapter->pdev_dev,
2010 t4_write_reg(adapter, T4VF_SGE_BASE_ADDR + SGE_VF_GTS,
2018 spin_unlock(&adapter->sge.intrq_lock);
2029 struct adapter *adapter = cookie;
2031 process_intrq(adapter);
2037 * @adapter: the adapter
2042 irq_handler_t t4vf_intr_handler(struct adapter *adapter)
2044 BUG_ON((adapter->flags &
2046 if (adapter->flags & CXGB4VF_USING_MSIX)
2065 struct adapter *adapter = from_timer(adapter, t, sge.rx_timer);
2066 struct sge *s = &adapter->sge;
2093 if (fl_starving(adapter, fl)) {
2124 struct adapter *adapter = from_timer(adapter, t, sge.tx_timer);
2125 struct sge *s = &adapter->sge;
2139 free_tx_desc(adapter, &txq->q, avail, true);
2164 * @adapter: the adapter
2175 static void __iomem *bar2_address(struct adapter *adapter,
2183 ret = t4vf_bar2_sge_qregs(adapter, qid, qtype,
2188 return adapter->bar2 + bar2_qoffset;
2193 * @adapter: the adapter
2201 int t4vf_sge_alloc_rxq(struct adapter *adapter, struct sge_rspq *rspq,
2206 struct sge *s = &adapter->sge;
2210 int relaxed = !(adapter->flags & CXGB4VF_ROOT_NO_RELAXED_ORDERING);
2219 if ((adapter->flags & CXGB4VF_USING_MSI) &&
2220 rspq != &adapter->sge.intrq) {
2222 intr_dest = adapter->sge.intrq.abs_id;
2233 rspq->desc = alloc_ring(adapter->pdev_dev, rspq->size, rspq->iqe_len,
2271 CHELSIO_CHIP_VERSION(adapter->params.chip);
2283 fl->desc = alloc_ring(adapter->pdev_dev, fl->size,
2335 ret = t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), &rpl);
2345 rspq->bar2_addr = bar2_address(adapter,
2351 rspq->adapter = adapter;
2371 fl->bar2_addr = bar2_address(adapter,
2376 refill_fl(adapter, fl, fl_cap(fl), GFP_KERNEL);
2387 dma_free_coherent(adapter->pdev_dev, rspq->size * rspq->iqe_len,
2394 dma_free_coherent(adapter->pdev_dev, flsz * EQ_UNIT,
2403 * @adapter: the adapter
2410 int t4vf_sge_alloc_eth_txq(struct adapter *adapter, struct sge_eth_txq *txq,
2414 unsigned int chip_ver = CHELSIO_CHIP_VERSION(adapter->params.chip);
2417 struct sge *s = &adapter->sge;
2430 txq->q.desc = alloc_ring(adapter->pdev_dev, txq->q.size,
2472 ret = t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), &rpl);
2480 dma_free_coherent(adapter->pdev_dev,
2492 txq->q.bar2_addr = bar2_address(adapter,
2511 static void free_txq(struct adapter *adapter, struct sge_txq *tq)
2513 struct sge *s = &adapter->sge;
2515 dma_free_coherent(adapter->pdev_dev,
2527 static void free_rspq_fl(struct adapter *adapter, struct sge_rspq *rspq,
2530 struct sge *s = &adapter->sge;
2533 t4vf_iq_free(adapter, FW_IQ_TYPE_FL_INT_CAP,
2535 dma_free_coherent(adapter->pdev_dev, (rspq->size + 1) * rspq->iqe_len,
2544 free_rx_bufs(adapter, fl, fl->avail);
2545 dma_free_coherent(adapter->pdev_dev,
2557 * @adapter: the adapter
2561 void t4vf_free_sge_resources(struct adapter *adapter)
2563 struct sge *s = &adapter->sge;
2570 for (qs = 0; qs < adapter->sge.ethqsets; qs++, rxq++, txq++) {
2572 free_rspq_fl(adapter, &rxq->rspq, &rxq->fl);
2574 t4vf_eth_eq_free(adapter, txq->q.cntxt_id);
2575 free_tx_desc(adapter, &txq->q, txq->q.in_use, true);
2577 free_txq(adapter, &txq->q);
2581 free_rspq_fl(adapter, evtq, NULL);
2583 free_rspq_fl(adapter, intrq, NULL);
2588 * @adapter: the adapter
2592 void t4vf_sge_start(struct adapter *adapter)
2594 adapter->sge.ethtxq_rover = 0;
2595 mod_timer(&adapter->sge.rx_timer, jiffies + RX_QCHECK_PERIOD);
2596 mod_timer(&adapter->sge.tx_timer, jiffies + TX_QCHECK_PERIOD);
2601 * @adapter: the adapter
2607 void t4vf_sge_stop(struct adapter *adapter)
2609 struct sge *s = &adapter->sge;
2619 * @adapter: the adapter
2626 int t4vf_sge_init(struct adapter *adapter)
2628 struct sge_params *sge_params = &adapter->params.sge;
2631 struct sge *s = &adapter->sge;
2650 dev_err(adapter->pdev_dev, "bad SGE FL buffer sizes [%d, %d]\n",
2656 dev_err(adapter->pdev_dev, "bad SGE CPL MODE\n");
2661 * Now translate the adapter parameters into our internal forms.
2668 s->fl_align = t4vf_fl_pkt_align(adapter);
2677 switch (CHELSIO_CHIP_VERSION(adapter->params.chip)) {