Lines Matching refs:pdata
133 static int xgbe_alloc_channels(struct xgbe_prv_data *pdata) in xgbe_alloc_channels() argument
140 count = max_t(unsigned int, pdata->tx_ring_count, pdata->rx_ring_count); in xgbe_alloc_channels()
146 tx_ring = kcalloc(pdata->tx_ring_count, sizeof(struct xgbe_ring), in xgbe_alloc_channels()
151 rx_ring = kcalloc(pdata->rx_ring_count, sizeof(struct xgbe_ring), in xgbe_alloc_channels()
158 channel->pdata = pdata; in xgbe_alloc_channels()
160 channel->dma_regs = pdata->xgmac_regs + DMA_CH_BASE + in xgbe_alloc_channels()
163 if (pdata->per_channel_irq) { in xgbe_alloc_channels()
165 ret = platform_get_irq(pdata->pdev, i + 1); in xgbe_alloc_channels()
167 netdev_err(pdata->netdev, in xgbe_alloc_channels()
176 if (i < pdata->tx_ring_count) { in xgbe_alloc_channels()
181 if (i < pdata->rx_ring_count) { in xgbe_alloc_channels()
191 pdata->channel = channel_mem; in xgbe_alloc_channels()
192 pdata->channel_count = count; in xgbe_alloc_channels()
209 static void xgbe_free_channels(struct xgbe_prv_data *pdata) in xgbe_free_channels() argument
211 if (!pdata->channel) in xgbe_free_channels()
214 kfree(pdata->channel->rx_ring); in xgbe_free_channels()
215 kfree(pdata->channel->tx_ring); in xgbe_free_channels()
216 kfree(pdata->channel); in xgbe_free_channels()
218 pdata->channel = NULL; in xgbe_free_channels()
219 pdata->channel_count = 0; in xgbe_free_channels()
235 struct xgbe_prv_data *pdata = channel->pdata; in xgbe_maybe_stop_tx_queue() local
239 netif_stop_subqueue(pdata->netdev, channel->queue_index); in xgbe_maybe_stop_tx_queue()
246 pdata->hw_if.tx_start_xmit(channel, ring); in xgbe_maybe_stop_tx_queue()
272 static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata) in xgbe_enable_rx_tx_ints() argument
274 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_enable_rx_tx_ints()
279 channel = pdata->channel; in xgbe_enable_rx_tx_ints()
280 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_enable_rx_tx_ints()
294 static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata) in xgbe_disable_rx_tx_ints() argument
296 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_disable_rx_tx_ints()
301 channel = pdata->channel; in xgbe_disable_rx_tx_ints()
302 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_disable_rx_tx_ints()
318 struct xgbe_prv_data *pdata = data; in xgbe_isr() local
319 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_isr()
329 dma_isr = XGMAC_IOREAD(pdata, DMA_ISR); in xgbe_isr()
335 for (i = 0; i < pdata->channel_count; i++) { in xgbe_isr()
339 channel = pdata->channel + i; in xgbe_isr()
348 if (!pdata->per_channel_irq && in xgbe_isr()
351 if (napi_schedule_prep(&pdata->napi)) { in xgbe_isr()
353 xgbe_disable_rx_tx_ints(pdata); in xgbe_isr()
356 __napi_schedule(&pdata->napi); in xgbe_isr()
362 schedule_work(&pdata->restart_work); in xgbe_isr()
369 mac_isr = XGMAC_IOREAD(pdata, MAC_ISR); in xgbe_isr()
372 hw_if->tx_mmc_int(pdata); in xgbe_isr()
375 hw_if->rx_mmc_int(pdata); in xgbe_isr()
378 mac_tssr = XGMAC_IOREAD(pdata, MAC_TSSR); in xgbe_isr()
382 pdata->tx_tstamp = in xgbe_isr()
383 hw_if->get_tx_tstamp(pdata); in xgbe_isr()
384 schedule_work(&pdata->tx_tstamp_work); in xgbe_isr()
389 DBGPR(" DMA_ISR = %08x\n", XGMAC_IOREAD(pdata, DMA_ISR)); in xgbe_isr()
416 struct xgbe_prv_data *pdata = channel->pdata; in xgbe_tx_timer() local
421 napi = (pdata->per_channel_irq) ? &channel->napi : &pdata->napi; in xgbe_tx_timer()
425 if (pdata->per_channel_irq) in xgbe_tx_timer()
428 xgbe_disable_rx_tx_ints(pdata); in xgbe_tx_timer()
439 static void xgbe_init_tx_timers(struct xgbe_prv_data *pdata) in xgbe_init_tx_timers() argument
446 channel = pdata->channel; in xgbe_init_tx_timers()
447 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_init_tx_timers()
459 static void xgbe_stop_tx_timers(struct xgbe_prv_data *pdata) in xgbe_stop_tx_timers() argument
466 channel = pdata->channel; in xgbe_stop_tx_timers()
467 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_stop_tx_timers()
478 void xgbe_get_all_hw_features(struct xgbe_prv_data *pdata) in xgbe_get_all_hw_features() argument
481 struct xgbe_hw_features *hw_feat = &pdata->hw_feat; in xgbe_get_all_hw_features()
485 mac_hfr0 = XGMAC_IOREAD(pdata, MAC_HWF0R); in xgbe_get_all_hw_features()
486 mac_hfr1 = XGMAC_IOREAD(pdata, MAC_HWF1R); in xgbe_get_all_hw_features()
487 mac_hfr2 = XGMAC_IOREAD(pdata, MAC_HWF2R); in xgbe_get_all_hw_features()
491 hw_feat->version = XGMAC_IOREAD(pdata, MAC_VR); in xgbe_get_all_hw_features()
577 static void xgbe_napi_enable(struct xgbe_prv_data *pdata, unsigned int add) in xgbe_napi_enable() argument
582 if (pdata->per_channel_irq) { in xgbe_napi_enable()
583 channel = pdata->channel; in xgbe_napi_enable()
584 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_napi_enable()
586 netif_napi_add(pdata->netdev, &channel->napi, in xgbe_napi_enable()
593 netif_napi_add(pdata->netdev, &pdata->napi, in xgbe_napi_enable()
596 napi_enable(&pdata->napi); in xgbe_napi_enable()
600 static void xgbe_napi_disable(struct xgbe_prv_data *pdata, unsigned int del) in xgbe_napi_disable() argument
605 if (pdata->per_channel_irq) { in xgbe_napi_disable()
606 channel = pdata->channel; in xgbe_napi_disable()
607 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_napi_disable()
614 napi_disable(&pdata->napi); in xgbe_napi_disable()
617 netif_napi_del(&pdata->napi); in xgbe_napi_disable()
621 static int xgbe_request_irqs(struct xgbe_prv_data *pdata) in xgbe_request_irqs() argument
624 struct net_device *netdev = pdata->netdev; in xgbe_request_irqs()
628 ret = devm_request_irq(pdata->dev, pdata->dev_irq, xgbe_isr, 0, in xgbe_request_irqs()
629 netdev->name, pdata); in xgbe_request_irqs()
632 pdata->dev_irq); in xgbe_request_irqs()
636 if (!pdata->per_channel_irq) in xgbe_request_irqs()
639 channel = pdata->channel; in xgbe_request_irqs()
640 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_request_irqs()
646 ret = devm_request_irq(pdata->dev, channel->dma_irq, in xgbe_request_irqs()
660 for (i--, channel--; i < pdata->channel_count; i--, channel--) in xgbe_request_irqs()
661 devm_free_irq(pdata->dev, channel->dma_irq, channel); in xgbe_request_irqs()
663 devm_free_irq(pdata->dev, pdata->dev_irq, pdata); in xgbe_request_irqs()
668 static void xgbe_free_irqs(struct xgbe_prv_data *pdata) in xgbe_free_irqs() argument
673 devm_free_irq(pdata->dev, pdata->dev_irq, pdata); in xgbe_free_irqs()
675 if (!pdata->per_channel_irq) in xgbe_free_irqs()
678 channel = pdata->channel; in xgbe_free_irqs()
679 for (i = 0; i < pdata->channel_count; i++, channel++) in xgbe_free_irqs()
680 devm_free_irq(pdata->dev, channel->dma_irq, channel); in xgbe_free_irqs()
683 void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata) in xgbe_init_tx_coalesce() argument
685 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_init_tx_coalesce()
689 pdata->tx_usecs = XGMAC_INIT_DMA_TX_USECS; in xgbe_init_tx_coalesce()
690 pdata->tx_frames = XGMAC_INIT_DMA_TX_FRAMES; in xgbe_init_tx_coalesce()
692 hw_if->config_tx_coalesce(pdata); in xgbe_init_tx_coalesce()
697 void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata) in xgbe_init_rx_coalesce() argument
699 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_init_rx_coalesce()
703 pdata->rx_riwt = hw_if->usec_to_riwt(pdata, XGMAC_INIT_DMA_RX_USECS); in xgbe_init_rx_coalesce()
704 pdata->rx_usecs = XGMAC_INIT_DMA_RX_USECS; in xgbe_init_rx_coalesce()
705 pdata->rx_frames = XGMAC_INIT_DMA_RX_FRAMES; in xgbe_init_rx_coalesce()
707 hw_if->config_rx_coalesce(pdata); in xgbe_init_rx_coalesce()
712 static void xgbe_free_tx_data(struct xgbe_prv_data *pdata) in xgbe_free_tx_data() argument
714 struct xgbe_desc_if *desc_if = &pdata->desc_if; in xgbe_free_tx_data()
722 channel = pdata->channel; in xgbe_free_tx_data()
723 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_free_tx_data()
730 desc_if->unmap_rdata(pdata, rdata); in xgbe_free_tx_data()
737 static void xgbe_free_rx_data(struct xgbe_prv_data *pdata) in xgbe_free_rx_data() argument
739 struct xgbe_desc_if *desc_if = &pdata->desc_if; in xgbe_free_rx_data()
747 channel = pdata->channel; in xgbe_free_rx_data()
748 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_free_rx_data()
755 desc_if->unmap_rdata(pdata, rdata); in xgbe_free_rx_data()
764 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_adjust_link() local
765 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_adjust_link()
766 struct phy_device *phydev = pdata->phydev; in xgbe_adjust_link()
774 if (pdata->pause_autoneg) { in xgbe_adjust_link()
776 pdata->tx_pause = 1; in xgbe_adjust_link()
777 pdata->rx_pause = 1; in xgbe_adjust_link()
779 pdata->tx_pause = 0; in xgbe_adjust_link()
780 pdata->rx_pause = 0; in xgbe_adjust_link()
784 if (pdata->tx_pause != pdata->phy_tx_pause) { in xgbe_adjust_link()
785 hw_if->config_tx_flow_control(pdata); in xgbe_adjust_link()
786 pdata->phy_tx_pause = pdata->tx_pause; in xgbe_adjust_link()
789 if (pdata->rx_pause != pdata->phy_rx_pause) { in xgbe_adjust_link()
790 hw_if->config_rx_flow_control(pdata); in xgbe_adjust_link()
791 pdata->phy_rx_pause = pdata->rx_pause; in xgbe_adjust_link()
795 if (phydev->speed != pdata->phy_speed) { in xgbe_adjust_link()
800 hw_if->set_xgmii_speed(pdata); in xgbe_adjust_link()
804 hw_if->set_gmii_2500_speed(pdata); in xgbe_adjust_link()
808 hw_if->set_gmii_speed(pdata); in xgbe_adjust_link()
811 pdata->phy_speed = phydev->speed; in xgbe_adjust_link()
814 if (phydev->link != pdata->phy_link) { in xgbe_adjust_link()
816 pdata->phy_link = 1; in xgbe_adjust_link()
818 } else if (pdata->phy_link) { in xgbe_adjust_link()
820 pdata->phy_link = 0; in xgbe_adjust_link()
821 pdata->phy_speed = SPEED_UNKNOWN; in xgbe_adjust_link()
828 static int xgbe_phy_init(struct xgbe_prv_data *pdata) in xgbe_phy_init() argument
830 struct net_device *netdev = pdata->netdev; in xgbe_phy_init()
831 struct phy_device *phydev = pdata->phydev; in xgbe_phy_init()
834 pdata->phy_link = -1; in xgbe_phy_init()
835 pdata->phy_speed = SPEED_UNKNOWN; in xgbe_phy_init()
836 pdata->phy_tx_pause = pdata->tx_pause; in xgbe_phy_init()
837 pdata->phy_rx_pause = pdata->rx_pause; in xgbe_phy_init()
840 pdata->phy_mode); in xgbe_phy_init()
862 static void xgbe_phy_exit(struct xgbe_prv_data *pdata) in xgbe_phy_exit() argument
864 if (!pdata->phydev) in xgbe_phy_exit()
867 phy_disconnect(pdata->phydev); in xgbe_phy_exit()
872 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_powerdown() local
873 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_powerdown()
879 (caller == XGMAC_IOCTL_CONTEXT && pdata->power_down)) { in xgbe_powerdown()
885 spin_lock_irqsave(&pdata->lock, flags); in xgbe_powerdown()
892 hw_if->powerdown_tx(pdata); in xgbe_powerdown()
893 hw_if->powerdown_rx(pdata); in xgbe_powerdown()
895 xgbe_napi_disable(pdata, 0); in xgbe_powerdown()
897 phy_stop(pdata->phydev); in xgbe_powerdown()
899 pdata->power_down = 1; in xgbe_powerdown()
901 spin_unlock_irqrestore(&pdata->lock, flags); in xgbe_powerdown()
910 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_powerup() local
911 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_powerup()
917 (caller == XGMAC_IOCTL_CONTEXT && !pdata->power_down)) { in xgbe_powerup()
923 spin_lock_irqsave(&pdata->lock, flags); in xgbe_powerup()
925 pdata->power_down = 0; in xgbe_powerup()
927 phy_start(pdata->phydev); in xgbe_powerup()
929 xgbe_napi_enable(pdata, 0); in xgbe_powerup()
931 hw_if->powerup_tx(pdata); in xgbe_powerup()
932 hw_if->powerup_rx(pdata); in xgbe_powerup()
939 spin_unlock_irqrestore(&pdata->lock, flags); in xgbe_powerup()
946 static int xgbe_start(struct xgbe_prv_data *pdata) in xgbe_start() argument
948 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_start()
949 struct net_device *netdev = pdata->netdev; in xgbe_start()
954 hw_if->init(pdata); in xgbe_start()
956 phy_start(pdata->phydev); in xgbe_start()
958 xgbe_napi_enable(pdata, 1); in xgbe_start()
960 ret = xgbe_request_irqs(pdata); in xgbe_start()
964 hw_if->enable_tx(pdata); in xgbe_start()
965 hw_if->enable_rx(pdata); in xgbe_start()
967 xgbe_init_tx_timers(pdata); in xgbe_start()
976 xgbe_napi_disable(pdata, 1); in xgbe_start()
978 phy_stop(pdata->phydev); in xgbe_start()
980 hw_if->exit(pdata); in xgbe_start()
985 static void xgbe_stop(struct xgbe_prv_data *pdata) in xgbe_stop() argument
987 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_stop()
989 struct net_device *netdev = pdata->netdev; in xgbe_stop()
997 xgbe_stop_tx_timers(pdata); in xgbe_stop()
999 hw_if->disable_tx(pdata); in xgbe_stop()
1000 hw_if->disable_rx(pdata); in xgbe_stop()
1002 xgbe_free_irqs(pdata); in xgbe_stop()
1004 xgbe_napi_disable(pdata, 1); in xgbe_stop()
1006 phy_stop(pdata->phydev); in xgbe_stop()
1008 hw_if->exit(pdata); in xgbe_stop()
1010 channel = pdata->channel; in xgbe_stop()
1011 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_stop()
1022 static void xgbe_restart_dev(struct xgbe_prv_data *pdata) in xgbe_restart_dev() argument
1027 if (!netif_running(pdata->netdev)) in xgbe_restart_dev()
1030 xgbe_stop(pdata); in xgbe_restart_dev()
1032 xgbe_free_tx_data(pdata); in xgbe_restart_dev()
1033 xgbe_free_rx_data(pdata); in xgbe_restart_dev()
1035 xgbe_start(pdata); in xgbe_restart_dev()
1042 struct xgbe_prv_data *pdata = container_of(work, in xgbe_restart() local
1048 xgbe_restart_dev(pdata); in xgbe_restart()
1055 struct xgbe_prv_data *pdata = container_of(work, in xgbe_tx_tstamp() local
1062 if (pdata->tx_tstamp) { in xgbe_tx_tstamp()
1063 nsec = timecounter_cyc2time(&pdata->tstamp_tc, in xgbe_tx_tstamp()
1064 pdata->tx_tstamp); in xgbe_tx_tstamp()
1068 skb_tstamp_tx(pdata->tx_tstamp_skb, &hwtstamps); in xgbe_tx_tstamp()
1071 dev_kfree_skb_any(pdata->tx_tstamp_skb); in xgbe_tx_tstamp()
1073 spin_lock_irqsave(&pdata->tstamp_lock, flags); in xgbe_tx_tstamp()
1074 pdata->tx_tstamp_skb = NULL; in xgbe_tx_tstamp()
1075 spin_unlock_irqrestore(&pdata->tstamp_lock, flags); in xgbe_tx_tstamp()
1078 static int xgbe_get_hwtstamp_settings(struct xgbe_prv_data *pdata, in xgbe_get_hwtstamp_settings() argument
1081 if (copy_to_user(ifreq->ifr_data, &pdata->tstamp_config, in xgbe_get_hwtstamp_settings()
1082 sizeof(pdata->tstamp_config))) in xgbe_get_hwtstamp_settings()
1088 static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata, in xgbe_set_hwtstamp_settings() argument
1214 pdata->hw_if.config_tstamp(pdata, mac_tscr); in xgbe_set_hwtstamp_settings()
1216 memcpy(&pdata->tstamp_config, &config, sizeof(config)); in xgbe_set_hwtstamp_settings()
1221 static void xgbe_prep_tx_tstamp(struct xgbe_prv_data *pdata, in xgbe_prep_tx_tstamp() argument
1228 spin_lock_irqsave(&pdata->tstamp_lock, flags); in xgbe_prep_tx_tstamp()
1229 if (pdata->tx_tstamp_skb) { in xgbe_prep_tx_tstamp()
1234 pdata->tx_tstamp_skb = skb_get(skb); in xgbe_prep_tx_tstamp()
1237 spin_unlock_irqrestore(&pdata->tstamp_lock, flags); in xgbe_prep_tx_tstamp()
1293 static void xgbe_packet_info(struct xgbe_prv_data *pdata, in xgbe_packet_info() argument
1342 (pdata->tstamp_config.tx_type == HWTSTAMP_TX_ON)) in xgbe_packet_info()
1362 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_open() local
1363 struct xgbe_desc_if *desc_if = &pdata->desc_if; in xgbe_open()
1369 ret = xgbe_phy_init(pdata); in xgbe_open()
1374 ret = clk_prepare_enable(pdata->sysclk); in xgbe_open()
1380 ret = clk_prepare_enable(pdata->ptpclk); in xgbe_open()
1390 pdata->rx_buf_size = ret; in xgbe_open()
1393 ret = xgbe_alloc_channels(pdata); in xgbe_open()
1398 ret = desc_if->alloc_ring_resources(pdata); in xgbe_open()
1403 INIT_WORK(&pdata->restart_work, xgbe_restart); in xgbe_open()
1404 INIT_WORK(&pdata->tx_tstamp_work, xgbe_tx_tstamp); in xgbe_open()
1406 ret = xgbe_start(pdata); in xgbe_open()
1415 desc_if->free_ring_resources(pdata); in xgbe_open()
1418 xgbe_free_channels(pdata); in xgbe_open()
1421 clk_disable_unprepare(pdata->ptpclk); in xgbe_open()
1424 clk_disable_unprepare(pdata->sysclk); in xgbe_open()
1427 xgbe_phy_exit(pdata); in xgbe_open()
1434 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_close() local
1435 struct xgbe_desc_if *desc_if = &pdata->desc_if; in xgbe_close()
1440 xgbe_stop(pdata); in xgbe_close()
1443 desc_if->free_ring_resources(pdata); in xgbe_close()
1446 xgbe_free_channels(pdata); in xgbe_close()
1449 clk_disable_unprepare(pdata->ptpclk); in xgbe_close()
1450 clk_disable_unprepare(pdata->sysclk); in xgbe_close()
1453 xgbe_phy_exit(pdata); in xgbe_close()
1462 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_xmit() local
1463 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_xmit()
1464 struct xgbe_desc_if *desc_if = &pdata->desc_if; in xgbe_xmit()
1473 channel = pdata->channel + skb->queue_mapping; in xgbe_xmit()
1488 xgbe_packet_info(pdata, ring, skb, packet); in xgbe_xmit()
1508 xgbe_prep_tx_tstamp(pdata, skb, packet); in xgbe_xmit()
1531 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_set_rx_mode() local
1532 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_set_rx_mode()
1536 hw_if->config_rx_mode(pdata); in xgbe_set_rx_mode()
1543 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_set_mac_address() local
1544 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_set_mac_address()
1554 hw_if->set_mac_address(pdata, netdev->dev_addr); in xgbe_set_mac_address()
1563 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_ioctl() local
1568 ret = xgbe_get_hwtstamp_settings(pdata, ifreq); in xgbe_ioctl()
1572 ret = xgbe_set_hwtstamp_settings(pdata, ifreq); in xgbe_ioctl()
1584 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_change_mtu() local
1593 pdata->rx_buf_size = ret; in xgbe_change_mtu()
1596 xgbe_restart_dev(pdata); in xgbe_change_mtu()
1605 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_tx_timeout() local
1608 schedule_work(&pdata->restart_work); in xgbe_tx_timeout()
1614 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_get_stats64() local
1615 struct xgbe_mmc_stats *pstats = &pdata->mmc_stats; in xgbe_get_stats64()
1619 pdata->hw_if.read_mmc_stats(pdata); in xgbe_get_stats64()
1645 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_vlan_rx_add_vid() local
1646 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_vlan_rx_add_vid()
1650 set_bit(vid, pdata->active_vlans); in xgbe_vlan_rx_add_vid()
1651 hw_if->update_vlan_hash_table(pdata); in xgbe_vlan_rx_add_vid()
1661 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_vlan_rx_kill_vid() local
1662 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_vlan_rx_kill_vid()
1666 clear_bit(vid, pdata->active_vlans); in xgbe_vlan_rx_kill_vid()
1667 hw_if->update_vlan_hash_table(pdata); in xgbe_vlan_rx_kill_vid()
1677 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_poll_controller() local
1683 if (pdata->per_channel_irq) { in xgbe_poll_controller()
1684 channel = pdata->channel; in xgbe_poll_controller()
1685 for (i = 0; i < pdata->channel_count; i++, channel++) in xgbe_poll_controller()
1688 disable_irq(pdata->dev_irq); in xgbe_poll_controller()
1689 xgbe_isr(pdata->dev_irq, pdata); in xgbe_poll_controller()
1690 enable_irq(pdata->dev_irq); in xgbe_poll_controller()
1699 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_setup_tc() local
1703 if (tc && (tc != pdata->hw_feat.tc_cnt)) in xgbe_setup_tc()
1709 while ((queue < pdata->tx_q_count) && in xgbe_setup_tc()
1710 (pdata->q2tc_map[queue] == i)) in xgbe_setup_tc()
1727 struct xgbe_prv_data *pdata = netdev_priv(netdev); in xgbe_set_features() local
1728 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_set_features()
1732 rxhash = pdata->netdev_features & NETIF_F_RXHASH; in xgbe_set_features()
1733 rxcsum = pdata->netdev_features & NETIF_F_RXCSUM; in xgbe_set_features()
1734 rxvlan = pdata->netdev_features & NETIF_F_HW_VLAN_CTAG_RX; in xgbe_set_features()
1735 rxvlan_filter = pdata->netdev_features & NETIF_F_HW_VLAN_CTAG_FILTER; in xgbe_set_features()
1738 ret = hw_if->enable_rss(pdata); in xgbe_set_features()
1740 ret = hw_if->disable_rss(pdata); in xgbe_set_features()
1745 hw_if->enable_rx_csum(pdata); in xgbe_set_features()
1747 hw_if->disable_rx_csum(pdata); in xgbe_set_features()
1750 hw_if->enable_rx_vlan_stripping(pdata); in xgbe_set_features()
1752 hw_if->disable_rx_vlan_stripping(pdata); in xgbe_set_features()
1755 hw_if->enable_rx_vlan_filtering(pdata); in xgbe_set_features()
1757 hw_if->disable_rx_vlan_filtering(pdata); in xgbe_set_features()
1759 pdata->netdev_features = features; in xgbe_set_features()
1793 struct xgbe_prv_data *pdata = channel->pdata; in xgbe_rx_refresh() local
1794 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_rx_refresh()
1795 struct xgbe_desc_if *desc_if = &pdata->desc_if; in xgbe_rx_refresh()
1803 desc_if->unmap_rdata(pdata, rdata); in xgbe_rx_refresh()
1805 if (desc_if->map_rx_buffer(pdata, ring, rdata)) in xgbe_rx_refresh()
1808 hw_if->rx_desc_reset(pdata, rdata, ring->dirty); in xgbe_rx_refresh()
1849 struct xgbe_prv_data *pdata = channel->pdata; in xgbe_tx_poll() local
1850 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_tx_poll()
1851 struct xgbe_desc_if *desc_if = &pdata->desc_if; in xgbe_tx_poll()
1855 struct net_device *netdev = pdata->netdev; in xgbe_tx_poll()
1890 desc_if->unmap_rdata(pdata, rdata); in xgbe_tx_poll()
1915 struct xgbe_prv_data *pdata = channel->pdata; in xgbe_rx_poll() local
1916 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_rx_poll()
1920 struct net_device *netdev = pdata->netdev; in xgbe_rx_poll()
1935 napi = (pdata->per_channel_irq) ? &channel->napi : &pdata->napi; in xgbe_rx_poll()
1996 dma_sync_single_for_cpu(pdata->dev, in xgbe_rx_poll()
2009 dma_sync_single_for_cpu(pdata->dev, in xgbe_rx_poll()
2059 nsec = timecounter_cyc2time(&pdata->tstamp_tc, in xgbe_rx_poll()
2128 struct xgbe_prv_data *pdata = container_of(napi, struct xgbe_prv_data, in xgbe_all_poll() local
2138 ring_budget = budget / pdata->rx_ring_count; in xgbe_all_poll()
2142 channel = pdata->channel; in xgbe_all_poll()
2143 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_all_poll()
2160 xgbe_enable_rx_tx_ints(pdata); in xgbe_all_poll()