Lines Matching refs:adapter

255 	struct adapter *adapter;	/* adapter backpointer */  member
320 if (board_info(sge->adapter)->board == CHBT_BOARD_CHT204) { in t1_sched_update_parms()
484 writel(F_CMDQ0_ENABLE, sge->adapter->regs + A_SG_DOORBELL); in sched_skb()
495 static inline void doorbell_pio(struct adapter *adapter, u32 val) in doorbell_pio() argument
498 writel(val, adapter->regs + A_SG_DOORBELL); in doorbell_pio()
527 struct pci_dev *pdev = sge->adapter->pdev; in free_rx_resources()
557 struct pci_dev *pdev = sge->adapter->pdev; in alloc_rx_resources()
621 struct pci_dev *pdev = sge->adapter->pdev; in free_cmdQ_buffers()
654 struct pci_dev *pdev = sge->adapter->pdev; in free_tx_resources()
678 struct pci_dev *pdev = sge->adapter->pdev; in alloc_tx_resources()
710 sge->cmdQ[0].stop_thres = sge->adapter->params.nports * in alloc_tx_resources()
719 static inline void setup_ring_params(struct adapter *adapter, u64 addr, in setup_ring_params() argument
723 writel((u32)addr, adapter->regs + base_reg_lo); in setup_ring_params()
724 writel(addr >> 32, adapter->regs + base_reg_hi); in setup_ring_params()
725 writel(size, adapter->regs + size_reg); in setup_ring_params()
731 void t1_vlan_mode(struct adapter *adapter, netdev_features_t features) in t1_vlan_mode() argument
733 struct sge *sge = adapter->sge; in t1_vlan_mode()
739 if (adapter->open_device_map) { in t1_vlan_mode()
740 writel(sge->sge_control, adapter->regs + A_SG_CONTROL); in t1_vlan_mode()
741 readl(adapter->regs + A_SG_CONTROL); /* flush */ in t1_vlan_mode()
751 struct adapter *ap = sge->adapter; in configure_sge()
804 for_each_port(sge->adapter, i) in t1_sge_destroy()
827 struct pci_dev *pdev = sge->adapter->pdev; in refill_free_list()
873 struct adapter *adapter = sge->adapter; in freelQs_empty() local
874 u32 irq_reg = readl(adapter->regs + A_SG_INT_ENABLE); in freelQs_empty()
889 writel(irqholdoff_reg, adapter->regs + A_SG_INTRTIMER); in freelQs_empty()
890 writel(irq_reg, adapter->regs + A_SG_INT_ENABLE); in freelQs_empty()
893 doorbell_pio(adapter, F_FL0_ENABLE | F_FL1_ENABLE); in freelQs_empty()
906 u32 val = readl(sge->adapter->regs + A_PL_ENABLE); in t1_sge_intr_disable()
908 writel(val & ~SGE_PL_INTR_MASK, sge->adapter->regs + A_PL_ENABLE); in t1_sge_intr_disable()
909 writel(0, sge->adapter->regs + A_SG_INT_ENABLE); in t1_sge_intr_disable()
918 u32 val = readl(sge->adapter->regs + A_PL_ENABLE); in t1_sge_intr_enable()
920 if (sge->adapter->port[0].dev->hw_features & NETIF_F_TSO) in t1_sge_intr_enable()
922 writel(en, sge->adapter->regs + A_SG_INT_ENABLE); in t1_sge_intr_enable()
923 writel(val | SGE_PL_INTR_MASK, sge->adapter->regs + A_PL_ENABLE); in t1_sge_intr_enable()
931 writel(SGE_PL_INTR_MASK, sge->adapter->regs + A_PL_CAUSE); in t1_sge_intr_clear()
932 writel(0xffffffff, sge->adapter->regs + A_SG_INT_CAUSE); in t1_sge_intr_clear()
940 struct adapter *adapter = sge->adapter; in t1_sge_intr_error_handler() local
941 u32 cause = readl(adapter->regs + A_SG_INT_CAUSE); in t1_sge_intr_error_handler()
943 if (adapter->port[0].dev->hw_features & NETIF_F_TSO) in t1_sge_intr_error_handler()
950 adapter->name); in t1_sge_intr_error_handler()
959 adapter->name); in t1_sge_intr_error_handler()
963 pr_alert("%s: SGE packet mismatch\n", adapter->name); in t1_sge_intr_error_handler()
966 t1_fatal_err(adapter); in t1_sge_intr_error_handler()
968 writel(cause, adapter->regs + A_SG_INT_CAUSE); in t1_sge_intr_error_handler()
1040 static inline struct sk_buff *get_packet(struct adapter *adapter, in get_packet() argument
1044 struct pci_dev *pdev = adapter->pdev; in get_packet()
1048 skb = napi_alloc_skb(&adapter->napi, len); in get_packet()
1090 static void unexpected_offload(struct adapter *adapter, struct freelQ *fl) in unexpected_offload() argument
1095 pci_dma_sync_single_for_cpu(adapter->pdev, dma_unmap_addr(ce, dma_addr), in unexpected_offload()
1098 adapter->name, *skb->data); in unexpected_offload()
1200 static inline void write_tx_descs(struct adapter *adapter, struct sk_buff *skb, in write_tx_descs() argument
1213 mapping = pci_map_single(adapter->pdev, skb->data, in write_tx_descs()
1266 mapping = skb_frag_dma_map(&adapter->pdev->dev, frag, 0, in write_tx_descs()
1308 struct adapter *adapter = sge->adapter; in restart_sched() local
1330 write_tx_descs(adapter, skb, pidx, genbit, q); in restart_sched()
1339 writel(F_CMDQ0_ENABLE, adapter->regs + A_SG_DOORBELL); in restart_sched()
1357 struct adapter *adapter = sge->adapter; in sge_rx() local
1361 skb = get_packet(adapter, fl, len - sge->rx_pkt_pad); in sge_rx()
1368 if (p->iff >= adapter->params.nports) { in sge_rx()
1375 dev = adapter->port[p->iff].dev; in sge_rx()
1410 struct adapter *adap = sge->adapter; in restart_tx_queues()
1431 static unsigned int update_tx_info(struct adapter *adapter, in update_tx_info() argument
1435 struct sge *sge = adapter->sge; in update_tx_info()
1449 writel(F_CMDQ0_ENABLE, adapter->regs + A_SG_DOORBELL); in update_tx_info()
1467 static int process_responses(struct adapter *adapter, int budget) in process_responses() argument
1469 struct sge *sge = adapter->sge; in process_responses()
1487 flags = update_tx_info(adapter, flags, cmdq_processed[0]); in process_responses()
1501 unexpected_offload(adapter, fl); in process_responses()
1530 writel(q->credits, adapter->regs + A_SG_RSPQUEUECREDIT); in process_responses()
1535 flags = update_tx_info(adapter, flags, cmdq_processed[0]); in process_responses()
1541 static inline int responses_pending(const struct adapter *adapter) in responses_pending() argument
1543 const struct respQ *Q = &adapter->sge->respQ; in responses_pending()
1557 static int process_pure_responses(struct adapter *adapter) in process_pure_responses() argument
1559 struct sge *sge = adapter->sge; in process_pure_responses()
1585 writel(q->credits, adapter->regs + A_SG_RSPQUEUECREDIT); in process_pure_responses()
1591 flags = update_tx_info(adapter, flags, cmdq_processed[0]); in process_pure_responses()
1604 struct adapter *adapter = container_of(napi, struct adapter, napi); in t1_poll() local
1605 int work_done = process_responses(adapter, budget); in t1_poll()
1609 writel(adapter->sge->respQ.cidx, in t1_poll()
1610 adapter->regs + A_SG_SLEEPING); in t1_poll()
1617 struct adapter *adapter = data; in t1_interrupt() local
1618 struct sge *sge = adapter->sge; in t1_interrupt()
1621 if (likely(responses_pending(adapter))) { in t1_interrupt()
1622 writel(F_PL_INTR_SGE_DATA, adapter->regs + A_PL_CAUSE); in t1_interrupt()
1624 if (napi_schedule_prep(&adapter->napi)) { in t1_interrupt()
1625 if (process_pure_responses(adapter)) in t1_interrupt()
1626 __napi_schedule(&adapter->napi); in t1_interrupt()
1629 writel(sge->respQ.cidx, adapter->regs + A_SG_SLEEPING); in t1_interrupt()
1631 napi_enable(&adapter->napi); in t1_interrupt()
1637 spin_lock(&adapter->async_lock); in t1_interrupt()
1638 handled = t1_slow_intr_handler(adapter); in t1_interrupt()
1639 spin_unlock(&adapter->async_lock); in t1_interrupt()
1660 static int t1_sge_tx(struct sk_buff *skb, struct adapter *adapter, in t1_sge_tx() argument
1663 struct sge *sge = adapter->sge; in t1_sge_tx()
1684 adapter->name); in t1_sge_tx()
1725 write_tx_descs(adapter, skb, pidx, genbit, q); in t1_sge_tx()
1735 doorbell_pio(adapter, F_CMDQ1_ENABLE); in t1_sge_tx()
1740 writel(F_CMDQ0_ENABLE, adapter->regs + A_SG_DOORBELL); in t1_sge_tx()
1774 struct adapter *adapter = dev->ml_priv; in t1_start_xmit() local
1775 struct sge *sge = adapter->sge; in t1_start_xmit()
1841 if ((unlikely(!adapter->sge->espibug_skb[dev->if_port]))) { in t1_start_xmit()
1844 adapter->sge->espibug_skb[dev->if_port] = skb; in t1_start_xmit()
1871 ret = t1_sge_tx(skb, adapter, 0, dev); in t1_start_xmit()
1899 writel(F_CMDQ0_ENABLE, sge->adapter->regs + A_SG_DOORBELL); in sge_tx_reclaim_cb()
1912 core_ticks_per_usec(sge->adapter); in t1_sge_set_coalesce_params()
1913 writel(sge->fixed_intrtimer, sge->adapter->regs + A_SG_INTRTIMER); in t1_sge_set_coalesce_params()
1947 writel(0, sge->adapter->regs + A_SG_CONTROL); in t1_sge_stop()
1948 readl(sge->adapter->regs + A_SG_CONTROL); /* flush */ in t1_sge_stop()
1950 if (is_T2(sge->adapter)) in t1_sge_stop()
1969 writel(sge->sge_control, sge->adapter->regs + A_SG_CONTROL); in t1_sge_start()
1970 doorbell_pio(sge->adapter, F_FL0_ENABLE | F_FL1_ENABLE); in t1_sge_start()
1971 readl(sge->adapter->regs + A_SG_CONTROL); /* flush */ in t1_sge_start()
1975 if (is_T2(sge->adapter)) in t1_sge_start()
1984 struct adapter *adapter = (struct adapter *)data; in espibug_workaround_t204() local
1985 struct sge *sge = adapter->sge; in espibug_workaround_t204()
1986 unsigned int nports = adapter->params.nports; in espibug_workaround_t204()
1989 if (adapter->open_device_map & PORT_MASK) { in espibug_workaround_t204()
1992 if (t1_espi_get_mon_t204(adapter, &(seop[0]), 0) < 0) in espibug_workaround_t204()
1998 if (!netif_running(adapter->port[i].dev) || in espibug_workaround_t204()
1999 netif_queue_stopped(adapter->port[i].dev) || in espibug_workaround_t204()
2019 t1_sge_tx(skb, adapter, 0, adapter->port[i].dev); in espibug_workaround_t204()
2027 struct adapter *adapter = (struct adapter *)data; in espibug_workaround() local
2028 struct sge *sge = adapter->sge; in espibug_workaround()
2030 if (netif_running(adapter->port[0].dev)) { in espibug_workaround()
2032 u32 seop = t1_espi_get_mon(adapter, 0x930, 0); in espibug_workaround()
2051 t1_sge_tx(skb, adapter, 0, adapter->port[0].dev); in espibug_workaround()
2060 struct sge *t1_sge_create(struct adapter *adapter, struct sge_params *p) in t1_sge_create() argument
2068 sge->adapter = adapter; in t1_sge_create()
2069 sge->netdev = adapter->port[0].dev; in t1_sge_create()
2070 sge->rx_pkt_pad = t1_is_T1B(adapter) ? 0 : 2; in t1_sge_create()
2071 sge->jumbo_fl = t1_is_T1B(adapter) ? 1 : 0; in t1_sge_create()
2073 for_each_port(adapter, i) { in t1_sge_create()
2083 if (is_T2(sge->adapter)) { in t1_sge_create()
2086 if (adapter->params.nports > 1) { in t1_sge_create()
2091 sge->espibug_timer.data = (unsigned long)sge->adapter; in t1_sge_create()
2095 if (adapter->params.nports > 1) in t1_sge_create()
2105 if (board_info(sge->adapter)->board == CHBT_BOARD_CHT204) in t1_sge_create()