Lines Matching refs:priv

525 static int desc_get_tx_status(struct xgmac_priv *priv, struct xgmac_dma_desc *p)  in desc_get_tx_status()  argument
527 struct xgmac_extra_stats *x = &priv->xstats; in desc_get_tx_status()
533 netdev_dbg(priv->dev, "tx desc error = 0x%08x\n", status); in desc_get_tx_status()
539 xgmac_dma_flush_tx_fifo(priv->base); in desc_get_tx_status()
552 static int desc_get_rx_status(struct xgmac_priv *priv, struct xgmac_dma_desc *p) in desc_get_rx_status() argument
554 struct xgmac_extra_stats *x = &priv->xstats; in desc_get_rx_status()
560 netdev_dbg(priv->dev, "XGMAC RX : Dest Address filter fail\n"); in desc_get_rx_status()
574 netdev_dbg(priv->dev, "rx status - frame type=%d, csum = %d, ext stat %08x\n", in desc_get_rx_status()
590 netdev_dbg(priv->dev, "IP checksum error - stat %08x\n", in desc_get_rx_status()
654 static int xgmac_set_flow_ctrl(struct xgmac_priv *priv, int rx, int tx) in xgmac_set_flow_ctrl() argument
659 priv->rx_pause = rx; in xgmac_set_flow_ctrl()
660 priv->tx_pause = tx; in xgmac_set_flow_ctrl()
671 writel(flow, priv->base + XGMAC_FLOW_CTRL); in xgmac_set_flow_ctrl()
673 reg = readl(priv->base + XGMAC_OMR); in xgmac_set_flow_ctrl()
675 writel(reg, priv->base + XGMAC_OMR); in xgmac_set_flow_ctrl()
677 writel(0, priv->base + XGMAC_FLOW_CTRL); in xgmac_set_flow_ctrl()
679 reg = readl(priv->base + XGMAC_OMR); in xgmac_set_flow_ctrl()
681 writel(reg, priv->base + XGMAC_OMR); in xgmac_set_flow_ctrl()
687 static void xgmac_rx_refill(struct xgmac_priv *priv) in xgmac_rx_refill() argument
691 int bufsz = priv->dev->mtu + ETH_HLEN + ETH_FCS_LEN; in xgmac_rx_refill()
693 while (dma_ring_space(priv->rx_head, priv->rx_tail, DMA_RX_RING_SZ) > 1) { in xgmac_rx_refill()
694 int entry = priv->rx_head; in xgmac_rx_refill()
697 p = priv->dma_rx + entry; in xgmac_rx_refill()
699 if (priv->rx_skbuff[entry] == NULL) { in xgmac_rx_refill()
700 skb = netdev_alloc_skb_ip_align(priv->dev, bufsz); in xgmac_rx_refill()
704 paddr = dma_map_single(priv->device, skb->data, in xgmac_rx_refill()
705 priv->dma_buf_sz - NET_IP_ALIGN, in xgmac_rx_refill()
707 if (dma_mapping_error(priv->device, paddr)) { in xgmac_rx_refill()
711 priv->rx_skbuff[entry] = skb; in xgmac_rx_refill()
712 desc_set_buf_addr(p, paddr, priv->dma_buf_sz); in xgmac_rx_refill()
715 netdev_dbg(priv->dev, "rx ring: head %d, tail %d\n", in xgmac_rx_refill()
716 priv->rx_head, priv->rx_tail); in xgmac_rx_refill()
718 priv->rx_head = dma_ring_incr(priv->rx_head, DMA_RX_RING_SZ); in xgmac_rx_refill()
731 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_dma_desc_rings_init() local
740 netdev_dbg(priv->dev, "mtu [%d] bfsize [%d]\n", dev->mtu, bfsize); in xgmac_dma_desc_rings_init()
742 priv->rx_skbuff = kzalloc(sizeof(struct sk_buff *) * DMA_RX_RING_SZ, in xgmac_dma_desc_rings_init()
744 if (!priv->rx_skbuff) in xgmac_dma_desc_rings_init()
747 priv->dma_rx = dma_alloc_coherent(priv->device, in xgmac_dma_desc_rings_init()
750 &priv->dma_rx_phy, in xgmac_dma_desc_rings_init()
752 if (!priv->dma_rx) in xgmac_dma_desc_rings_init()
755 priv->tx_skbuff = kzalloc(sizeof(struct sk_buff *) * DMA_TX_RING_SZ, in xgmac_dma_desc_rings_init()
757 if (!priv->tx_skbuff) in xgmac_dma_desc_rings_init()
760 priv->dma_tx = dma_alloc_coherent(priv->device, in xgmac_dma_desc_rings_init()
763 &priv->dma_tx_phy, in xgmac_dma_desc_rings_init()
765 if (!priv->dma_tx) in xgmac_dma_desc_rings_init()
768 netdev_dbg(priv->dev, "DMA desc rings: virt addr (Rx %p, " in xgmac_dma_desc_rings_init()
770 priv->dma_rx, priv->dma_tx, in xgmac_dma_desc_rings_init()
771 (unsigned int)priv->dma_rx_phy, (unsigned int)priv->dma_tx_phy); in xgmac_dma_desc_rings_init()
773 priv->rx_tail = 0; in xgmac_dma_desc_rings_init()
774 priv->rx_head = 0; in xgmac_dma_desc_rings_init()
775 priv->dma_buf_sz = bfsize; in xgmac_dma_desc_rings_init()
776 desc_init_rx_desc(priv->dma_rx, DMA_RX_RING_SZ, priv->dma_buf_sz); in xgmac_dma_desc_rings_init()
777 xgmac_rx_refill(priv); in xgmac_dma_desc_rings_init()
779 priv->tx_tail = 0; in xgmac_dma_desc_rings_init()
780 priv->tx_head = 0; in xgmac_dma_desc_rings_init()
781 desc_init_tx_desc(priv->dma_tx, DMA_TX_RING_SZ); in xgmac_dma_desc_rings_init()
783 writel(priv->dma_tx_phy, priv->base + XGMAC_DMA_TX_BASE_ADDR); in xgmac_dma_desc_rings_init()
784 writel(priv->dma_rx_phy, priv->base + XGMAC_DMA_RX_BASE_ADDR); in xgmac_dma_desc_rings_init()
789 kfree(priv->tx_skbuff); in xgmac_dma_desc_rings_init()
791 dma_free_coherent(priv->device, in xgmac_dma_desc_rings_init()
793 priv->dma_rx, priv->dma_rx_phy); in xgmac_dma_desc_rings_init()
795 kfree(priv->rx_skbuff); in xgmac_dma_desc_rings_init()
799 static void xgmac_free_rx_skbufs(struct xgmac_priv *priv) in xgmac_free_rx_skbufs() argument
804 if (!priv->rx_skbuff) in xgmac_free_rx_skbufs()
808 struct sk_buff *skb = priv->rx_skbuff[i]; in xgmac_free_rx_skbufs()
812 p = priv->dma_rx + i; in xgmac_free_rx_skbufs()
813 dma_unmap_single(priv->device, desc_get_buf_addr(p), in xgmac_free_rx_skbufs()
814 priv->dma_buf_sz - NET_IP_ALIGN, DMA_FROM_DEVICE); in xgmac_free_rx_skbufs()
816 priv->rx_skbuff[i] = NULL; in xgmac_free_rx_skbufs()
820 static void xgmac_free_tx_skbufs(struct xgmac_priv *priv) in xgmac_free_tx_skbufs() argument
825 if (!priv->tx_skbuff) in xgmac_free_tx_skbufs()
829 if (priv->tx_skbuff[i] == NULL) in xgmac_free_tx_skbufs()
832 p = priv->dma_tx + i; in xgmac_free_tx_skbufs()
834 dma_unmap_single(priv->device, desc_get_buf_addr(p), in xgmac_free_tx_skbufs()
837 dma_unmap_page(priv->device, desc_get_buf_addr(p), in xgmac_free_tx_skbufs()
841 dev_kfree_skb_any(priv->tx_skbuff[i]); in xgmac_free_tx_skbufs()
842 priv->tx_skbuff[i] = NULL; in xgmac_free_tx_skbufs()
846 static void xgmac_free_dma_desc_rings(struct xgmac_priv *priv) in xgmac_free_dma_desc_rings() argument
849 xgmac_free_rx_skbufs(priv); in xgmac_free_dma_desc_rings()
850 xgmac_free_tx_skbufs(priv); in xgmac_free_dma_desc_rings()
853 if (priv->dma_tx) { in xgmac_free_dma_desc_rings()
854 dma_free_coherent(priv->device, in xgmac_free_dma_desc_rings()
856 priv->dma_tx, priv->dma_tx_phy); in xgmac_free_dma_desc_rings()
857 priv->dma_tx = NULL; in xgmac_free_dma_desc_rings()
859 if (priv->dma_rx) { in xgmac_free_dma_desc_rings()
860 dma_free_coherent(priv->device, in xgmac_free_dma_desc_rings()
862 priv->dma_rx, priv->dma_rx_phy); in xgmac_free_dma_desc_rings()
863 priv->dma_rx = NULL; in xgmac_free_dma_desc_rings()
865 kfree(priv->rx_skbuff); in xgmac_free_dma_desc_rings()
866 priv->rx_skbuff = NULL; in xgmac_free_dma_desc_rings()
867 kfree(priv->tx_skbuff); in xgmac_free_dma_desc_rings()
868 priv->tx_skbuff = NULL; in xgmac_free_dma_desc_rings()
876 static void xgmac_tx_complete(struct xgmac_priv *priv) in xgmac_tx_complete() argument
878 while (dma_ring_cnt(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ)) { in xgmac_tx_complete()
879 unsigned int entry = priv->tx_tail; in xgmac_tx_complete()
880 struct sk_buff *skb = priv->tx_skbuff[entry]; in xgmac_tx_complete()
881 struct xgmac_dma_desc *p = priv->dma_tx + entry; in xgmac_tx_complete()
887 netdev_dbg(priv->dev, "tx ring: curr %d, dirty %d\n", in xgmac_tx_complete()
888 priv->tx_head, priv->tx_tail); in xgmac_tx_complete()
891 dma_unmap_single(priv->device, desc_get_buf_addr(p), in xgmac_tx_complete()
894 dma_unmap_page(priv->device, desc_get_buf_addr(p), in xgmac_tx_complete()
899 desc_get_tx_status(priv, p); in xgmac_tx_complete()
903 priv->tx_skbuff[entry] = NULL; in xgmac_tx_complete()
904 priv->tx_tail = dma_ring_incr(entry, DMA_TX_RING_SZ); in xgmac_tx_complete()
909 if (unlikely(netif_queue_stopped(priv->dev) && in xgmac_tx_complete()
910 (tx_dma_ring_space(priv) > MAX_SKB_FRAGS))) in xgmac_tx_complete()
911 netif_wake_queue(priv->dev); in xgmac_tx_complete()
917 struct xgmac_priv *priv = in xgmac_tx_timeout_work() local
920 napi_disable(&priv->napi); in xgmac_tx_timeout_work()
922 writel(0, priv->base + XGMAC_DMA_INTR_ENA); in xgmac_tx_timeout_work()
924 netif_tx_lock(priv->dev); in xgmac_tx_timeout_work()
926 reg = readl(priv->base + XGMAC_DMA_CONTROL); in xgmac_tx_timeout_work()
927 writel(reg & ~DMA_CONTROL_ST, priv->base + XGMAC_DMA_CONTROL); in xgmac_tx_timeout_work()
929 value = readl(priv->base + XGMAC_DMA_STATUS) & 0x700000; in xgmac_tx_timeout_work()
932 xgmac_free_tx_skbufs(priv); in xgmac_tx_timeout_work()
933 desc_init_tx_desc(priv->dma_tx, DMA_TX_RING_SZ); in xgmac_tx_timeout_work()
934 priv->tx_tail = 0; in xgmac_tx_timeout_work()
935 priv->tx_head = 0; in xgmac_tx_timeout_work()
936 writel(priv->dma_tx_phy, priv->base + XGMAC_DMA_TX_BASE_ADDR); in xgmac_tx_timeout_work()
937 writel(reg | DMA_CONTROL_ST, priv->base + XGMAC_DMA_CONTROL); in xgmac_tx_timeout_work()
940 priv->base + XGMAC_DMA_STATUS); in xgmac_tx_timeout_work()
942 netif_tx_unlock(priv->dev); in xgmac_tx_timeout_work()
943 netif_wake_queue(priv->dev); in xgmac_tx_timeout_work()
945 napi_enable(&priv->napi); in xgmac_tx_timeout_work()
948 writel(DMA_INTR_DEFAULT_MASK, priv->base + XGMAC_DMA_STATUS); in xgmac_tx_timeout_work()
949 writel(DMA_INTR_DEFAULT_MASK, priv->base + XGMAC_DMA_INTR_ENA); in xgmac_tx_timeout_work()
956 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_hw_init() local
957 void __iomem *ioaddr = priv->base; in xgmac_hw_init()
1015 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_open() local
1016 void __iomem *ioaddr = priv->base; in xgmac_open()
1024 netdev_dbg(priv->dev, "generated random MAC address %pM\n", in xgmac_open()
1028 memset(&priv->xstats, 0, sizeof(struct xgmac_extra_stats)); in xgmac_open()
1033 xgmac_set_flow_ctrl(priv, priv->rx_pause, priv->tx_pause); in xgmac_open()
1042 napi_enable(&priv->napi); in xgmac_open()
1060 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_stop() local
1062 if (readl(priv->base + XGMAC_DMA_INTR_ENA)) in xgmac_stop()
1063 napi_disable(&priv->napi); in xgmac_stop()
1065 writel(0, priv->base + XGMAC_DMA_INTR_ENA); in xgmac_stop()
1070 xgmac_mac_disable(priv->base); in xgmac_stop()
1073 xgmac_free_dma_desc_rings(priv); in xgmac_stop()
1086 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_xmit() local
1096 priv->tx_irq_cnt = (priv->tx_irq_cnt + 1) & (DMA_TX_RING_SZ/4 - 1); in xgmac_xmit()
1097 irq_flag = priv->tx_irq_cnt ? 0 : TXDESC_INTERRUPT; in xgmac_xmit()
1101 entry = priv->tx_head; in xgmac_xmit()
1102 desc = priv->dma_tx + entry; in xgmac_xmit()
1106 paddr = dma_map_single(priv->device, skb->data, len, DMA_TO_DEVICE); in xgmac_xmit()
1107 if (dma_mapping_error(priv->device, paddr)) { in xgmac_xmit()
1111 priv->tx_skbuff[entry] = skb; in xgmac_xmit()
1119 paddr = skb_frag_dma_map(priv->device, frag, 0, len, in xgmac_xmit()
1121 if (dma_mapping_error(priv->device, paddr)) in xgmac_xmit()
1125 desc = priv->dma_tx + entry; in xgmac_xmit()
1126 priv->tx_skbuff[entry] = skb; in xgmac_xmit()
1144 writel(1, priv->base + XGMAC_DMA_TX_POLL); in xgmac_xmit()
1146 priv->tx_head = dma_ring_incr(entry, DMA_TX_RING_SZ); in xgmac_xmit()
1150 if (unlikely(tx_dma_ring_space(priv) <= MAX_SKB_FRAGS)) { in xgmac_xmit()
1154 if (tx_dma_ring_space(priv) > MAX_SKB_FRAGS) in xgmac_xmit()
1160 entry = priv->tx_head; in xgmac_xmit()
1163 desc = priv->dma_tx + entry; in xgmac_xmit()
1164 priv->tx_skbuff[entry] = NULL; in xgmac_xmit()
1165 dma_unmap_page(priv->device, desc_get_buf_addr(desc), in xgmac_xmit()
1170 dma_unmap_single(priv->device, desc_get_buf_addr(desc), in xgmac_xmit()
1176 static int xgmac_rx(struct xgmac_priv *priv, int limit) in xgmac_rx() argument
1187 if (!dma_ring_cnt(priv->rx_head, priv->rx_tail, DMA_RX_RING_SZ)) in xgmac_rx()
1190 entry = priv->rx_tail; in xgmac_rx()
1191 p = priv->dma_rx + entry; in xgmac_rx()
1196 priv->rx_tail = dma_ring_incr(priv->rx_tail, DMA_RX_RING_SZ); in xgmac_rx()
1199 ip_checksum = desc_get_rx_status(priv, p); in xgmac_rx()
1203 skb = priv->rx_skbuff[entry]; in xgmac_rx()
1205 netdev_err(priv->dev, "Inconsistent Rx descriptor chain\n"); in xgmac_rx()
1208 priv->rx_skbuff[entry] = NULL; in xgmac_rx()
1211 netdev_dbg(priv->dev, "RX frame size %d, COE status: %d\n", in xgmac_rx()
1215 dma_unmap_single(priv->device, desc_get_buf_addr(p), in xgmac_rx()
1216 priv->dma_buf_sz - NET_IP_ALIGN, DMA_FROM_DEVICE); in xgmac_rx()
1218 skb->protocol = eth_type_trans(skb, priv->dev); in xgmac_rx()
1223 napi_gro_receive(&priv->napi, skb); in xgmac_rx()
1226 xgmac_rx_refill(priv); in xgmac_rx()
1242 struct xgmac_priv *priv = container_of(napi, in xgmac_poll() local
1246 xgmac_tx_complete(priv); in xgmac_poll()
1247 work_done = xgmac_rx(priv, budget); in xgmac_poll()
1251 __raw_writel(DMA_INTR_DEFAULT_MASK, priv->base + XGMAC_DMA_INTR_ENA); in xgmac_poll()
1266 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_tx_timeout() local
1267 schedule_work(&priv->tx_timeout_work); in xgmac_tx_timeout()
1282 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_set_rx_mode() local
1283 void __iomem *ioaddr = priv->base; in xgmac_set_rx_mode()
1290 netdev_dbg(priv->dev, "# mcasts %d, # unicast %d\n", in xgmac_set_rx_mode()
1298 if (netdev_uc_count(dev) > priv->max_macs) { in xgmac_set_rx_mode()
1321 if ((netdev_mc_count(dev) + reg - 1) > priv->max_macs) { in xgmac_set_rx_mode()
1342 for (i = reg; i <= priv->max_macs; i++) in xgmac_set_rx_mode()
1363 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_change_mtu() local
1367 netdev_err(priv->dev, "invalid MTU, max MTU is: %d\n", MAX_MTU); in xgmac_change_mtu()
1391 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_pmt_interrupt() local
1392 void __iomem *ioaddr = priv->base; in xgmac_pmt_interrupt()
1396 netdev_dbg(priv->dev, "received Magic frame\n"); in xgmac_pmt_interrupt()
1407 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_interrupt() local
1408 struct xgmac_extra_stats *x = &priv->xstats; in xgmac_interrupt()
1411 intr_status = __raw_readl(priv->base + XGMAC_DMA_STATUS); in xgmac_interrupt()
1412 intr_status &= __raw_readl(priv->base + XGMAC_DMA_INTR_ENA); in xgmac_interrupt()
1413 __raw_writel(intr_status, priv->base + XGMAC_DMA_STATUS); in xgmac_interrupt()
1419 netdev_err(priv->dev, "transmit jabber\n"); in xgmac_interrupt()
1425 netdev_err(priv->dev, "receive process stopped\n"); in xgmac_interrupt()
1429 netdev_err(priv->dev, "transmit early interrupt\n"); in xgmac_interrupt()
1433 netdev_err(priv->dev, "transmit process stopped\n"); in xgmac_interrupt()
1435 schedule_work(&priv->tx_timeout_work); in xgmac_interrupt()
1438 netdev_err(priv->dev, "fatal bus error\n"); in xgmac_interrupt()
1445 __raw_writel(DMA_INTR_ABNORMAL, priv->base + XGMAC_DMA_INTR_ENA); in xgmac_interrupt()
1446 napi_schedule(&priv->napi); in xgmac_interrupt()
1467 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_get_stats64() local
1468 void __iomem *base = priv->base; in xgmac_get_stats64()
1471 spin_lock_bh(&priv->stats_lock); in xgmac_get_stats64()
1492 spin_unlock_bh(&priv->stats_lock); in xgmac_get_stats64()
1498 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_set_mac_address() local
1499 void __iomem *ioaddr = priv->base; in xgmac_set_mac_address()
1515 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_set_features() local
1516 void __iomem *ioaddr = priv->base; in xgmac_set_features()
1562 struct xgmac_priv *priv = netdev_priv(netdev); in xgmac_get_pauseparam() local
1564 pause->rx_pause = priv->rx_pause; in xgmac_get_pauseparam()
1565 pause->tx_pause = priv->tx_pause; in xgmac_get_pauseparam()
1571 struct xgmac_priv *priv = netdev_priv(netdev); in xgmac_set_pauseparam() local
1576 return xgmac_set_flow_ctrl(priv, pause->rx_pause, pause->tx_pause); in xgmac_set_pauseparam()
1617 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_get_ethtool_stats() local
1618 void *p = priv; in xgmac_get_ethtool_stats()
1623 *data++ = readl(priv->base + in xgmac_get_ethtool_stats()
1664 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_get_wol() local
1666 if (device_can_wakeup(priv->device)) { in xgmac_get_wol()
1668 wol->wolopts = priv->wolopts; in xgmac_get_wol()
1675 struct xgmac_priv *priv = netdev_priv(dev); in xgmac_set_wol() local
1678 if (!device_can_wakeup(priv->device)) in xgmac_set_wol()
1684 priv->wolopts = wol->wolopts; in xgmac_set_wol()
1687 device_set_wakeup_enable(priv->device, 1); in xgmac_set_wol()
1690 device_set_wakeup_enable(priv->device, 0); in xgmac_set_wol()
1719 struct xgmac_priv *priv = NULL; in xgmac_probe() local
1736 priv = netdev_priv(ndev); in xgmac_probe()
1740 spin_lock_init(&priv->stats_lock); in xgmac_probe()
1741 INIT_WORK(&priv->tx_timeout_work, xgmac_tx_timeout_work); in xgmac_probe()
1743 priv->device = &pdev->dev; in xgmac_probe()
1744 priv->dev = ndev; in xgmac_probe()
1745 priv->rx_pause = 1; in xgmac_probe()
1746 priv->tx_pause = 1; in xgmac_probe()
1748 priv->base = ioremap(res->start, resource_size(res)); in xgmac_probe()
1749 if (!priv->base) { in xgmac_probe()
1755 uid = readl(priv->base + XGMAC_VERSION); in xgmac_probe()
1759 writel(1, priv->base + XGMAC_ADDR_HIGH(31)); in xgmac_probe()
1760 if (readl(priv->base + XGMAC_ADDR_HIGH(31)) == 1) in xgmac_probe()
1761 priv->max_macs = 31; in xgmac_probe()
1763 priv->max_macs = 7; in xgmac_probe()
1765 writel(0, priv->base + XGMAC_DMA_INTR_ENA); in xgmac_probe()
1781 priv->pmt_irq = platform_get_irq(pdev, 1); in xgmac_probe()
1782 if (priv->pmt_irq == -ENXIO) { in xgmac_probe()
1784 ret = priv->pmt_irq; in xgmac_probe()
1788 ret = request_irq(priv->pmt_irq, xgmac_pmt_interrupt, 0, in xgmac_probe()
1792 priv->pmt_irq, ret); in xgmac_probe()
1797 if (device_can_wakeup(priv->device)) in xgmac_probe()
1798 priv->wolopts = WAKE_MAGIC; /* Magic Frame as default */ in xgmac_probe()
1801 if (readl(priv->base + XGMAC_DMA_HW_FEATURE) & DMA_HW_FEAT_TXCOESEL) in xgmac_probe()
1808 xgmac_get_mac_addr(priv->base, ndev->dev_addr, 0); in xgmac_probe()
1813 netif_napi_add(ndev, &priv->napi, xgmac_poll, 64); in xgmac_probe()
1821 netif_napi_del(&priv->napi); in xgmac_probe()
1822 free_irq(priv->pmt_irq, ndev); in xgmac_probe()
1826 iounmap(priv->base); in xgmac_probe()
1844 struct xgmac_priv *priv = netdev_priv(ndev); in xgmac_remove() local
1847 xgmac_mac_disable(priv->base); in xgmac_remove()
1851 free_irq(priv->pmt_irq, ndev); in xgmac_remove()
1854 netif_napi_del(&priv->napi); in xgmac_remove()
1856 iounmap(priv->base); in xgmac_remove()
1881 struct xgmac_priv *priv = netdev_priv(ndev); in xgmac_suspend() local
1888 napi_disable(&priv->napi); in xgmac_suspend()
1889 writel(0, priv->base + XGMAC_DMA_INTR_ENA); in xgmac_suspend()
1891 if (device_may_wakeup(priv->device)) { in xgmac_suspend()
1893 value = readl(priv->base + XGMAC_DMA_CONTROL); in xgmac_suspend()
1895 writel(value, priv->base + XGMAC_DMA_CONTROL); in xgmac_suspend()
1897 xgmac_pmt(priv->base, priv->wolopts); in xgmac_suspend()
1899 xgmac_mac_disable(priv->base); in xgmac_suspend()
1907 struct xgmac_priv *priv = netdev_priv(ndev); in xgmac_resume() local
1908 void __iomem *ioaddr = priv->base; in xgmac_resume()
1921 napi_enable(&priv->napi); in xgmac_resume()