Lines Matching defs:adapter

248 	struct adapter *adapter;	/* adapter backpointer */
313 if (board_info(sge->adapter)->board == CHBT_BOARD_CHT204) {
478 writel(F_CMDQ0_ENABLE, sge->adapter->regs + A_SG_DOORBELL);
489 static inline void doorbell_pio(struct adapter *adapter, u32 val)
492 writel(val, adapter->regs + A_SG_DOORBELL);
520 struct pci_dev *pdev = sge->adapter->pdev;
550 struct pci_dev *pdev = sge->adapter->pdev;
615 struct pci_dev *pdev = sge->adapter->pdev;
649 struct pci_dev *pdev = sge->adapter->pdev;
673 struct pci_dev *pdev = sge->adapter->pdev;
706 sge->cmdQ[0].stop_thres = sge->adapter->params.nports *
715 static inline void setup_ring_params(struct adapter *adapter, u64 addr,
719 writel((u32)addr, adapter->regs + base_reg_lo);
720 writel(addr >> 32, adapter->regs + base_reg_hi);
721 writel(size, adapter->regs + size_reg);
727 void t1_vlan_mode(struct adapter *adapter, netdev_features_t features)
729 struct sge *sge = adapter->sge;
735 if (adapter->open_device_map) {
736 writel(sge->sge_control, adapter->regs + A_SG_CONTROL);
737 readl(adapter->regs + A_SG_CONTROL); /* flush */
747 struct adapter *ap = sge->adapter;
800 for_each_port(sge->adapter, i)
823 struct pci_dev *pdev = sge->adapter->pdev;
869 struct adapter *adapter = sge->adapter;
870 u32 irq_reg = readl(adapter->regs + A_SG_INT_ENABLE);
885 writel(irqholdoff_reg, adapter->regs + A_SG_INTRTIMER);
886 writel(irq_reg, adapter->regs + A_SG_INT_ENABLE);
889 doorbell_pio(adapter, F_FL0_ENABLE | F_FL1_ENABLE);
902 u32 val = readl(sge->adapter->regs + A_PL_ENABLE);
904 writel(val & ~SGE_PL_INTR_MASK, sge->adapter->regs + A_PL_ENABLE);
905 writel(0, sge->adapter->regs + A_SG_INT_ENABLE);
914 u32 val = readl(sge->adapter->regs + A_PL_ENABLE);
916 if (sge->adapter->port[0].dev->hw_features & NETIF_F_TSO)
918 writel(en, sge->adapter->regs + A_SG_INT_ENABLE);
919 writel(val | SGE_PL_INTR_MASK, sge->adapter->regs + A_PL_ENABLE);
927 writel(SGE_PL_INTR_MASK, sge->adapter->regs + A_PL_CAUSE);
928 writel(0xffffffff, sge->adapter->regs + A_SG_INT_CAUSE);
936 struct adapter *adapter = sge->adapter;
937 u32 cause = readl(adapter->regs + A_SG_INT_CAUSE);
940 if (adapter->port[0].dev->hw_features & NETIF_F_TSO)
947 adapter->name);
956 adapter->name);
960 pr_alert("%s: SGE packet mismatch\n", adapter->name);
963 t1_interrupts_disable(adapter);
964 adapter->pending_thread_intr |= F_PL_INTR_SGE_ERR;
968 writel(cause, adapter->regs + A_SG_INT_CAUSE);
1028 * @adapter: the adapter that received the packet
1040 static inline struct sk_buff *get_packet(struct adapter *adapter,
1044 struct pci_dev *pdev = adapter->pdev;
1048 skb = napi_alloc_skb(&adapter->napi, len);
1083 * @adapter: the adapter
1090 static void unexpected_offload(struct adapter *adapter, struct freelQ *fl)
1095 dma_sync_single_for_cpu(&adapter->pdev->dev,
1099 adapter->name, *skb->data);
1201 static inline void write_tx_descs(struct adapter *adapter, struct sk_buff *skb,
1214 mapping = dma_map_single(&adapter->pdev->dev, skb->data,
1267 mapping = skb_frag_dma_map(&adapter->pdev->dev, frag, 0,
1310 struct adapter *adapter = sge->adapter;
1332 write_tx_descs(adapter, skb, pidx, genbit, q);
1341 writel(F_CMDQ0_ENABLE, adapter->regs + A_SG_DOORBELL);
1359 struct adapter *adapter = sge->adapter;
1363 skb = get_packet(adapter, fl, len - sge->rx_pkt_pad);
1370 if (p->iff >= adapter->params.nports) {
1377 dev = adapter->port[p->iff].dev;
1412 struct adapter *adap = sge->adapter;
1433 static unsigned int update_tx_info(struct adapter *adapter,
1437 struct sge *sge = adapter->sge;
1451 writel(F_CMDQ0_ENABLE, adapter->regs + A_SG_DOORBELL);
1469 static int process_responses(struct adapter *adapter, int budget)
1471 struct sge *sge = adapter->sge;
1489 flags = update_tx_info(adapter, flags, cmdq_processed[0]);
1503 unexpected_offload(adapter, fl);
1532 writel(q->credits, adapter->regs + A_SG_RSPQUEUECREDIT);
1537 flags = update_tx_info(adapter, flags, cmdq_processed[0]);
1543 static inline int responses_pending(const struct adapter *adapter)
1545 const struct respQ *Q = &adapter->sge->respQ;
1559 static int process_pure_responses(struct adapter *adapter)
1561 struct sge *sge = adapter->sge;
1587 writel(q->credits, adapter->regs + A_SG_RSPQUEUECREDIT);
1593 flags = update_tx_info(adapter, flags, cmdq_processed[0]);
1602 * other adapter interrupts do not interfere.
1606 struct adapter *adapter = container_of(napi, struct adapter, napi);
1607 int work_done = process_responses(adapter, budget);
1611 writel(adapter->sge->respQ.cidx,
1612 adapter->regs + A_SG_SLEEPING);
1619 struct adapter *adapter = data;
1622 spin_lock_irq(&adapter->async_lock);
1623 pending_thread_intr = adapter->pending_thread_intr;
1624 adapter->pending_thread_intr = 0;
1625 spin_unlock_irq(&adapter->async_lock);
1631 t1_elmer0_ext_intr_handler(adapter);
1636 adapter->name);
1637 t1_sge_stop(adapter->sge);
1641 spin_lock_irq(&adapter->async_lock);
1642 adapter->slow_intr_mask |= F_PL_INTR_EXT;
1644 writel(F_PL_INTR_EXT, adapter->regs + A_PL_CAUSE);
1645 writel(adapter->slow_intr_mask | F_PL_INTR_SGE_DATA,
1646 adapter->regs + A_PL_ENABLE);
1647 spin_unlock_irq(&adapter->async_lock);
1654 struct adapter *adapter = data;
1655 struct sge *sge = adapter->sge;
1658 if (likely(responses_pending(adapter))) {
1659 writel(F_PL_INTR_SGE_DATA, adapter->regs + A_PL_CAUSE);
1661 if (napi_schedule_prep(&adapter->napi)) {
1662 if (process_pure_responses(adapter))
1663 __napi_schedule(&adapter->napi);
1666 writel(sge->respQ.cidx, adapter->regs + A_SG_SLEEPING);
1668 napi_enable(&adapter->napi);
1674 spin_lock(&adapter->async_lock);
1675 handled = t1_slow_intr_handler(adapter);
1676 spin_unlock(&adapter->async_lock);
1697 static int t1_sge_tx(struct sk_buff *skb, struct adapter *adapter,
1700 struct sge *sge = adapter->sge;
1720 adapter->name);
1761 write_tx_descs(adapter, skb, pidx, genbit, q);
1771 doorbell_pio(adapter, F_CMDQ1_ENABLE);
1776 writel(F_CMDQ0_ENABLE, adapter->regs + A_SG_DOORBELL);
1810 struct adapter *adapter = dev->ml_priv;
1811 struct sge *sge = adapter->sge;
1877 if ((unlikely(!adapter->sge->espibug_skb[dev->if_port]))) {
1880 adapter->sge->espibug_skb[dev->if_port] = skb;
1907 ret = t1_sge_tx(skb, adapter, 0, dev);
1935 writel(F_CMDQ0_ENABLE, sge->adapter->regs + A_SG_DOORBELL);
1948 core_ticks_per_usec(sge->adapter);
1949 writel(sge->fixed_intrtimer, sge->adapter->regs + A_SG_INTRTIMER);
1983 writel(0, sge->adapter->regs + A_SG_CONTROL);
1984 readl(sge->adapter->regs + A_SG_CONTROL); /* flush */
1986 if (is_T2(sge->adapter))
2005 writel(sge->sge_control, sge->adapter->regs + A_SG_CONTROL);
2006 doorbell_pio(sge->adapter, F_FL0_ENABLE | F_FL1_ENABLE);
2007 readl(sge->adapter->regs + A_SG_CONTROL); /* flush */
2011 if (is_T2(sge->adapter))
2021 struct adapter *adapter = sge->adapter;
2022 unsigned int nports = adapter->params.nports;
2025 if (adapter->open_device_map & PORT_MASK) {
2028 if (t1_espi_get_mon_t204(adapter, &(seop[0]), 0) < 0)
2034 if (!netif_running(adapter->port[i].dev) ||
2035 netif_queue_stopped(adapter->port[i].dev) ||
2055 t1_sge_tx(skb, adapter, 0, adapter->port[i].dev);
2064 struct adapter *adapter = sge->adapter;
2066 if (netif_running(adapter->port[0].dev)) {
2068 u32 seop = t1_espi_get_mon(adapter, 0x930, 0);
2087 t1_sge_tx(skb, adapter, 0, adapter->port[0].dev);
2096 struct sge *t1_sge_create(struct adapter *adapter, struct sge_params *p)
2104 sge->adapter = adapter;
2105 sge->netdev = adapter->port[0].dev;
2106 sge->rx_pkt_pad = t1_is_T1B(adapter) ? 0 : 2;
2107 sge->jumbo_fl = t1_is_T1B(adapter) ? 1 : 0;
2109 for_each_port(adapter, i) {
2117 if (is_T2(sge->adapter)) {
2119 adapter->params.nports > 1 ? espibug_workaround_t204 : espibug_workaround,
2122 if (adapter->params.nports > 1)
2127 if (adapter->params.nports > 1)
2137 if (board_info(sge->adapter)->board == CHBT_BOARD_CHT204)