Lines Matching refs:pldat

448 static void __lpc_set_mac(struct netdata_local *pldat, u8 *mac)  in __lpc_set_mac()  argument
454 writel(tmp, LPC_ENET_SA2(pldat->net_base)); in __lpc_set_mac()
456 writel(tmp, LPC_ENET_SA1(pldat->net_base)); in __lpc_set_mac()
458 writel(tmp, LPC_ENET_SA0(pldat->net_base)); in __lpc_set_mac()
460 netdev_dbg(pldat->ndev, "Ethernet MAC address %pM\n", mac); in __lpc_set_mac()
463 static void __lpc_get_mac(struct netdata_local *pldat, u8 *mac) in __lpc_get_mac() argument
468 tmp = readl(LPC_ENET_SA2(pldat->net_base)); in __lpc_get_mac()
471 tmp = readl(LPC_ENET_SA1(pldat->net_base)); in __lpc_get_mac()
474 tmp = readl(LPC_ENET_SA0(pldat->net_base)); in __lpc_get_mac()
479 static void __lpc_eth_clock_enable(struct netdata_local *pldat, bool enable) in __lpc_eth_clock_enable() argument
482 clk_prepare_enable(pldat->clk); in __lpc_eth_clock_enable()
484 clk_disable_unprepare(pldat->clk); in __lpc_eth_clock_enable()
487 static void __lpc_params_setup(struct netdata_local *pldat) in __lpc_params_setup() argument
491 if (pldat->duplex == DUPLEX_FULL) { in __lpc_params_setup()
492 tmp = readl(LPC_ENET_MAC2(pldat->net_base)); in __lpc_params_setup()
494 writel(tmp, LPC_ENET_MAC2(pldat->net_base)); in __lpc_params_setup()
495 tmp = readl(LPC_ENET_COMMAND(pldat->net_base)); in __lpc_params_setup()
497 writel(tmp, LPC_ENET_COMMAND(pldat->net_base)); in __lpc_params_setup()
498 writel(LPC_IPGT_LOAD(0x15), LPC_ENET_IPGT(pldat->net_base)); in __lpc_params_setup()
500 tmp = readl(LPC_ENET_MAC2(pldat->net_base)); in __lpc_params_setup()
502 writel(tmp, LPC_ENET_MAC2(pldat->net_base)); in __lpc_params_setup()
503 tmp = readl(LPC_ENET_COMMAND(pldat->net_base)); in __lpc_params_setup()
505 writel(tmp, LPC_ENET_COMMAND(pldat->net_base)); in __lpc_params_setup()
506 writel(LPC_IPGT_LOAD(0x12), LPC_ENET_IPGT(pldat->net_base)); in __lpc_params_setup()
509 if (pldat->speed == SPEED_100) in __lpc_params_setup()
510 writel(LPC_SUPP_SPEED, LPC_ENET_SUPP(pldat->net_base)); in __lpc_params_setup()
512 writel(0, LPC_ENET_SUPP(pldat->net_base)); in __lpc_params_setup()
515 static void __lpc_eth_reset(struct netdata_local *pldat) in __lpc_eth_reset() argument
520 LPC_MAC1_SOFT_RESET), LPC_ENET_MAC1(pldat->net_base)); in __lpc_eth_reset()
522 LPC_COMMAND_RXRESET), LPC_ENET_COMMAND(pldat->net_base)); in __lpc_eth_reset()
525 static int __lpc_mii_mngt_reset(struct netdata_local *pldat) in __lpc_mii_mngt_reset() argument
528 writel(LPC_MCFG_RESET_MII_MGMT, LPC_ENET_MCFG(pldat->net_base)); in __lpc_mii_mngt_reset()
532 LPC_ENET_MCFG(pldat->net_base)); in __lpc_mii_mngt_reset()
537 static inline phys_addr_t __va_to_pa(void *addr, struct netdata_local *pldat) in __va_to_pa() argument
541 phaddr = addr - pldat->dma_buff_base_v; in __va_to_pa()
542 phaddr += pldat->dma_buff_base_p; in __va_to_pa()
559 static void __lpc_txrx_desc_setup(struct netdata_local *pldat) in __lpc_txrx_desc_setup() argument
567 tbuff = PTR_ALIGN(pldat->dma_buff_base_v, 16); in __lpc_txrx_desc_setup()
570 pldat->tx_desc_v = tbuff; in __lpc_txrx_desc_setup()
573 pldat->tx_stat_v = tbuff; in __lpc_txrx_desc_setup()
577 pldat->tx_buff_v = tbuff; in __lpc_txrx_desc_setup()
581 pldat->rx_desc_v = tbuff; in __lpc_txrx_desc_setup()
585 pldat->rx_stat_v = tbuff; in __lpc_txrx_desc_setup()
589 pldat->rx_buff_v = tbuff; in __lpc_txrx_desc_setup()
594 ptxstat = &pldat->tx_stat_v[i]; in __lpc_txrx_desc_setup()
595 ptxrxdesc = &pldat->tx_desc_v[i]; in __lpc_txrx_desc_setup()
598 pldat->tx_buff_v + i * ENET_MAXF_SIZE, pldat); in __lpc_txrx_desc_setup()
605 prxstat = &pldat->rx_stat_v[i]; in __lpc_txrx_desc_setup()
606 ptxrxdesc = &pldat->rx_desc_v[i]; in __lpc_txrx_desc_setup()
609 pldat->rx_buff_v + i * ENET_MAXF_SIZE, pldat); in __lpc_txrx_desc_setup()
619 LPC_ENET_TXDESCRIPTORNUMBER(pldat->net_base)); in __lpc_txrx_desc_setup()
620 writel(__va_to_pa(pldat->tx_desc_v, pldat), in __lpc_txrx_desc_setup()
621 LPC_ENET_TXDESCRIPTOR(pldat->net_base)); in __lpc_txrx_desc_setup()
622 writel(__va_to_pa(pldat->tx_stat_v, pldat), in __lpc_txrx_desc_setup()
623 LPC_ENET_TXSTATUS(pldat->net_base)); in __lpc_txrx_desc_setup()
625 LPC_ENET_RXDESCRIPTORNUMBER(pldat->net_base)); in __lpc_txrx_desc_setup()
626 writel(__va_to_pa(pldat->rx_desc_v, pldat), in __lpc_txrx_desc_setup()
627 LPC_ENET_RXDESCRIPTOR(pldat->net_base)); in __lpc_txrx_desc_setup()
628 writel(__va_to_pa(pldat->rx_stat_v, pldat), in __lpc_txrx_desc_setup()
629 LPC_ENET_RXSTATUS(pldat->net_base)); in __lpc_txrx_desc_setup()
632 static void __lpc_eth_init(struct netdata_local *pldat) in __lpc_eth_init() argument
637 tmp = readl(LPC_ENET_COMMAND(pldat->net_base)); in __lpc_eth_init()
639 writel(tmp, LPC_ENET_COMMAND(pldat->net_base)); in __lpc_eth_init()
640 tmp = readl(LPC_ENET_MAC1(pldat->net_base)); in __lpc_eth_init()
642 writel(tmp, LPC_ENET_MAC1(pldat->net_base)); in __lpc_eth_init()
645 writel(LPC_MAC1_PASS_ALL_RX_FRAMES, LPC_ENET_MAC1(pldat->net_base)); in __lpc_eth_init()
647 LPC_ENET_MAC2(pldat->net_base)); in __lpc_eth_init()
648 writel(ENET_MAXF_SIZE, LPC_ENET_MAXF(pldat->net_base)); in __lpc_eth_init()
653 LPC_ENET_CLRT(pldat->net_base)); in __lpc_eth_init()
654 writel(LPC_IPGR_LOAD_PART2(0x12), LPC_ENET_IPGR(pldat->net_base)); in __lpc_eth_init()
656 if (lpc_phy_interface_mode(&pldat->pdev->dev) == PHY_INTERFACE_MODE_MII) in __lpc_eth_init()
658 LPC_ENET_COMMAND(pldat->net_base)); in __lpc_eth_init()
661 LPC_ENET_COMMAND(pldat->net_base)); in __lpc_eth_init()
662 writel(LPC_SUPP_RESET_RMII, LPC_ENET_SUPP(pldat->net_base)); in __lpc_eth_init()
665 __lpc_params_setup(pldat); in __lpc_eth_init()
668 __lpc_txrx_desc_setup(pldat); in __lpc_eth_init()
672 LPC_ENET_RXFILTER_CTRL(pldat->net_base)); in __lpc_eth_init()
675 pldat->num_used_tx_buffs = 0; in __lpc_eth_init()
676 pldat->last_tx_idx = in __lpc_eth_init()
677 readl(LPC_ENET_TXCONSUMEINDEX(pldat->net_base)); in __lpc_eth_init()
680 writel(0xFFFF, LPC_ENET_INTCLEAR(pldat->net_base)); in __lpc_eth_init()
682 lpc_eth_enable_int(pldat->net_base); in __lpc_eth_init()
685 tmp = readl(LPC_ENET_COMMAND(pldat->net_base)); in __lpc_eth_init()
687 writel(tmp, LPC_ENET_COMMAND(pldat->net_base)); in __lpc_eth_init()
688 tmp = readl(LPC_ENET_MAC1(pldat->net_base)); in __lpc_eth_init()
690 writel(tmp, LPC_ENET_MAC1(pldat->net_base)); in __lpc_eth_init()
693 static void __lpc_eth_shutdown(struct netdata_local *pldat) in __lpc_eth_shutdown() argument
696 __lpc_eth_reset(pldat); in __lpc_eth_shutdown()
697 writel(0, LPC_ENET_MAC1(pldat->net_base)); in __lpc_eth_shutdown()
698 writel(0, LPC_ENET_MAC2(pldat->net_base)); in __lpc_eth_shutdown()
706 struct netdata_local *pldat = bus->priv; in lpc_mdio_read() local
710 writel(((phy_id << 8) | phyreg), LPC_ENET_MADR(pldat->net_base)); in lpc_mdio_read()
711 writel(LPC_MCMD_READ, LPC_ENET_MCMD(pldat->net_base)); in lpc_mdio_read()
714 while (readl(LPC_ENET_MIND(pldat->net_base)) & LPC_MIND_BUSY) { in lpc_mdio_read()
720 lps = readl(LPC_ENET_MRDD(pldat->net_base)); in lpc_mdio_read()
721 writel(0, LPC_ENET_MCMD(pldat->net_base)); in lpc_mdio_read()
729 struct netdata_local *pldat = bus->priv; in lpc_mdio_write() local
732 writel(((phy_id << 8) | phyreg), LPC_ENET_MADR(pldat->net_base)); in lpc_mdio_write()
733 writel(phydata, LPC_ENET_MWTD(pldat->net_base)); in lpc_mdio_write()
736 while (readl(LPC_ENET_MIND(pldat->net_base)) & LPC_MIND_BUSY) { in lpc_mdio_write()
752 struct netdata_local *pldat = netdev_priv(ndev); in lpc_handle_link_change() local
753 struct phy_device *phydev = pldat->phy_dev; in lpc_handle_link_change()
758 spin_lock_irqsave(&pldat->lock, flags); in lpc_handle_link_change()
761 if ((pldat->speed != phydev->speed) || in lpc_handle_link_change()
762 (pldat->duplex != phydev->duplex)) { in lpc_handle_link_change()
763 pldat->speed = phydev->speed; in lpc_handle_link_change()
764 pldat->duplex = phydev->duplex; in lpc_handle_link_change()
769 if (phydev->link != pldat->link) { in lpc_handle_link_change()
771 pldat->speed = 0; in lpc_handle_link_change()
772 pldat->duplex = -1; in lpc_handle_link_change()
774 pldat->link = phydev->link; in lpc_handle_link_change()
779 spin_unlock_irqrestore(&pldat->lock, flags); in lpc_handle_link_change()
782 __lpc_params_setup(pldat); in lpc_handle_link_change()
787 struct netdata_local *pldat = netdev_priv(ndev); in lpc_mii_probe() local
788 struct phy_device *phydev = phy_find_first(pldat->mii_bus); in lpc_mii_probe()
796 if (lpc_phy_interface_mode(&pldat->pdev->dev) == PHY_INTERFACE_MODE_MII) in lpc_mii_probe()
802 lpc_phy_interface_mode(&pldat->pdev->dev)); in lpc_mii_probe()
814 pldat->link = 0; in lpc_mii_probe()
815 pldat->speed = 0; in lpc_mii_probe()
816 pldat->duplex = -1; in lpc_mii_probe()
817 pldat->phy_dev = phydev; in lpc_mii_probe()
825 static int lpc_mii_init(struct netdata_local *pldat) in lpc_mii_init() argument
829 pldat->mii_bus = mdiobus_alloc(); in lpc_mii_init()
830 if (!pldat->mii_bus) { in lpc_mii_init()
836 if (lpc_phy_interface_mode(&pldat->pdev->dev) == PHY_INTERFACE_MODE_MII) in lpc_mii_init()
838 LPC_ENET_COMMAND(pldat->net_base)); in lpc_mii_init()
841 LPC_ENET_COMMAND(pldat->net_base)); in lpc_mii_init()
842 writel(LPC_SUPP_RESET_RMII, LPC_ENET_SUPP(pldat->net_base)); in lpc_mii_init()
845 pldat->mii_bus->name = "lpc_mii_bus"; in lpc_mii_init()
846 pldat->mii_bus->read = &lpc_mdio_read; in lpc_mii_init()
847 pldat->mii_bus->write = &lpc_mdio_write; in lpc_mii_init()
848 pldat->mii_bus->reset = &lpc_mdio_reset; in lpc_mii_init()
849 snprintf(pldat->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x", in lpc_mii_init()
850 pldat->pdev->name, pldat->pdev->id); in lpc_mii_init()
851 pldat->mii_bus->priv = pldat; in lpc_mii_init()
852 pldat->mii_bus->parent = &pldat->pdev->dev; in lpc_mii_init()
854 pldat->mii_bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL); in lpc_mii_init()
855 if (!pldat->mii_bus->irq) { in lpc_mii_init()
861 pldat->mii_bus->irq[i] = PHY_POLL; in lpc_mii_init()
863 platform_set_drvdata(pldat->pdev, pldat->mii_bus); in lpc_mii_init()
865 if (mdiobus_register(pldat->mii_bus)) in lpc_mii_init()
868 if (lpc_mii_probe(pldat->ndev) != 0) in lpc_mii_init()
874 mdiobus_unregister(pldat->mii_bus); in lpc_mii_init()
876 kfree(pldat->mii_bus->irq); in lpc_mii_init()
878 mdiobus_free(pldat->mii_bus); in lpc_mii_init()
885 struct netdata_local *pldat = netdev_priv(ndev); in __lpc_handle_xmit() local
888 txcidx = readl(LPC_ENET_TXCONSUMEINDEX(pldat->net_base)); in __lpc_handle_xmit()
889 while (pldat->last_tx_idx != txcidx) { in __lpc_handle_xmit()
890 unsigned int skblen = pldat->skblen[pldat->last_tx_idx]; in __lpc_handle_xmit()
893 ptxstat = &pldat->tx_stat_v[pldat->last_tx_idx]; in __lpc_handle_xmit()
897 pldat->num_used_tx_buffs--; in __lpc_handle_xmit()
898 pldat->last_tx_idx++; in __lpc_handle_xmit()
899 if (pldat->last_tx_idx >= ENET_TX_DESC) in __lpc_handle_xmit()
900 pldat->last_tx_idx = 0; in __lpc_handle_xmit()
930 txcidx = readl(LPC_ENET_TXCONSUMEINDEX(pldat->net_base)); in __lpc_handle_xmit()
933 if (pldat->num_used_tx_buffs <= ENET_TX_DESC/2) { in __lpc_handle_xmit()
941 struct netdata_local *pldat = netdev_priv(ndev); in __lpc_handle_recv() local
949 rxconsidx = readl(LPC_ENET_RXCONSUMEINDEX(pldat->net_base)); in __lpc_handle_recv()
951 readl(LPC_ENET_RXPRODUCEINDEX(pldat->net_base))) { in __lpc_handle_recv()
953 prxstat = &pldat->rx_stat_v[rxconsidx]; in __lpc_handle_recv()
988 memcpy(prdbuf, pldat->rx_buff_v + in __lpc_handle_recv()
1004 LPC_ENET_RXCONSUMEINDEX(pldat->net_base)); in __lpc_handle_recv()
1013 struct netdata_local *pldat = container_of(napi, in lpc_eth_poll() local
1015 struct net_device *ndev = pldat->ndev; in lpc_eth_poll()
1026 lpc_eth_enable_int(pldat->net_base); in lpc_eth_poll()
1035 struct netdata_local *pldat = netdev_priv(ndev); in __lpc_eth_interrupt() local
1038 spin_lock(&pldat->lock); in __lpc_eth_interrupt()
1040 tmp = readl(LPC_ENET_INTSTATUS(pldat->net_base)); in __lpc_eth_interrupt()
1042 writel(tmp, LPC_ENET_INTCLEAR(pldat->net_base)); in __lpc_eth_interrupt()
1044 lpc_eth_disable_int(pldat->net_base); in __lpc_eth_interrupt()
1045 if (likely(napi_schedule_prep(&pldat->napi))) in __lpc_eth_interrupt()
1046 __napi_schedule(&pldat->napi); in __lpc_eth_interrupt()
1048 spin_unlock(&pldat->lock); in __lpc_eth_interrupt()
1056 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_close() local
1058 if (netif_msg_ifdown(pldat)) in lpc_eth_close()
1059 dev_dbg(&pldat->pdev->dev, "shutting down %s\n", ndev->name); in lpc_eth_close()
1061 napi_disable(&pldat->napi); in lpc_eth_close()
1064 if (pldat->phy_dev) in lpc_eth_close()
1065 phy_stop(pldat->phy_dev); in lpc_eth_close()
1067 spin_lock_irqsave(&pldat->lock, flags); in lpc_eth_close()
1068 __lpc_eth_reset(pldat); in lpc_eth_close()
1070 writel(0, LPC_ENET_MAC1(pldat->net_base)); in lpc_eth_close()
1071 writel(0, LPC_ENET_MAC2(pldat->net_base)); in lpc_eth_close()
1072 spin_unlock_irqrestore(&pldat->lock, flags); in lpc_eth_close()
1074 __lpc_eth_clock_enable(pldat, false); in lpc_eth_close()
1081 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_hard_start_xmit() local
1088 spin_lock_irq(&pldat->lock); in lpc_eth_hard_start_xmit()
1090 if (pldat->num_used_tx_buffs >= (ENET_TX_DESC - 1)) { in lpc_eth_hard_start_xmit()
1094 spin_unlock_irq(&pldat->lock); in lpc_eth_hard_start_xmit()
1100 txidx = readl(LPC_ENET_TXPRODUCEINDEX(pldat->net_base)); in lpc_eth_hard_start_xmit()
1103 ptxstat = &pldat->tx_stat_v[txidx]; in lpc_eth_hard_start_xmit()
1105 ptxrxdesc = &pldat->tx_desc_v[txidx]; in lpc_eth_hard_start_xmit()
1110 memcpy(pldat->tx_buff_v + txidx * ENET_MAXF_SIZE, skb->data, len); in lpc_eth_hard_start_xmit()
1113 pldat->skblen[txidx] = len; in lpc_eth_hard_start_xmit()
1114 pldat->num_used_tx_buffs++; in lpc_eth_hard_start_xmit()
1120 writel(txidx, LPC_ENET_TXPRODUCEINDEX(pldat->net_base)); in lpc_eth_hard_start_xmit()
1123 if (pldat->num_used_tx_buffs >= (ENET_TX_DESC - 1)) in lpc_eth_hard_start_xmit()
1126 spin_unlock_irq(&pldat->lock); in lpc_eth_hard_start_xmit()
1135 struct netdata_local *pldat = netdev_priv(ndev); in lpc_set_mac_address() local
1142 spin_lock_irqsave(&pldat->lock, flags); in lpc_set_mac_address()
1145 __lpc_set_mac(pldat, ndev->dev_addr); in lpc_set_mac_address()
1147 spin_unlock_irqrestore(&pldat->lock, flags); in lpc_set_mac_address()
1154 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_set_multicast_list() local
1160 spin_lock_irqsave(&pldat->lock, flags); in lpc_eth_set_multicast_list()
1163 __lpc_set_mac(pldat, ndev->dev_addr); in lpc_eth_set_multicast_list()
1176 writel(tmp32, LPC_ENET_RXFILTER_CTRL(pldat->net_base)); in lpc_eth_set_multicast_list()
1193 writel(hashlo, LPC_ENET_HASHFILTERL(pldat->net_base)); in lpc_eth_set_multicast_list()
1194 writel(hashhi, LPC_ENET_HASHFILTERH(pldat->net_base)); in lpc_eth_set_multicast_list()
1196 spin_unlock_irqrestore(&pldat->lock, flags); in lpc_eth_set_multicast_list()
1201 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_ioctl() local
1202 struct phy_device *phydev = pldat->phy_dev; in lpc_eth_ioctl()
1215 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_open() local
1217 if (netif_msg_ifup(pldat)) in lpc_eth_open()
1218 dev_dbg(&pldat->pdev->dev, "enabling %s\n", ndev->name); in lpc_eth_open()
1220 __lpc_eth_clock_enable(pldat, true); in lpc_eth_open()
1223 phy_resume(pldat->phy_dev); in lpc_eth_open()
1226 __lpc_eth_reset(pldat); in lpc_eth_open()
1227 __lpc_eth_init(pldat); in lpc_eth_open()
1230 phy_start(pldat->phy_dev); in lpc_eth_open()
1232 napi_enable(&pldat->napi); in lpc_eth_open()
1251 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_ethtool_getmsglevel() local
1253 return pldat->msg_enable; in lpc_eth_ethtool_getmsglevel()
1258 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_ethtool_setmsglevel() local
1260 pldat->msg_enable = level; in lpc_eth_ethtool_setmsglevel()
1266 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_ethtool_getsettings() local
1267 struct phy_device *phydev = pldat->phy_dev; in lpc_eth_ethtool_getsettings()
1278 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_ethtool_setsettings() local
1279 struct phy_device *phydev = pldat->phy_dev; in lpc_eth_ethtool_setsettings()
1311 struct netdata_local *pldat; in lpc_eth_drv_probe() local
1345 pldat = netdev_priv(ndev); in lpc_eth_drv_probe()
1346 pldat->pdev = pdev; in lpc_eth_drv_probe()
1347 pldat->ndev = ndev; in lpc_eth_drv_probe()
1349 spin_lock_init(&pldat->lock); in lpc_eth_drv_probe()
1355 pldat->clk = clk_get(&pdev->dev, NULL); in lpc_eth_drv_probe()
1356 if (IS_ERR(pldat->clk)) { in lpc_eth_drv_probe()
1358 ret = PTR_ERR(pldat->clk); in lpc_eth_drv_probe()
1363 __lpc_eth_clock_enable(pldat, true); in lpc_eth_drv_probe()
1366 pldat->net_base = ioremap(res->start, resource_size(res)); in lpc_eth_drv_probe()
1367 if (!pldat->net_base) { in lpc_eth_drv_probe()
1385 pldat->dma_buff_size = (ENET_TX_DESC + ENET_RX_DESC) * (ENET_MAXF_SIZE + in lpc_eth_drv_probe()
1387 pldat->dma_buff_base_v = 0; in lpc_eth_drv_probe()
1389 if (use_iram_for_net(&pldat->pdev->dev)) { in lpc_eth_drv_probe()
1391 if (pldat->dma_buff_size <= lpc32xx_return_iram_size()) in lpc_eth_drv_probe()
1392 pldat->dma_buff_base_v = in lpc_eth_drv_probe()
1399 if (pldat->dma_buff_base_v == 0) { in lpc_eth_drv_probe()
1404 pldat->dma_buff_size = PAGE_ALIGN(pldat->dma_buff_size); in lpc_eth_drv_probe()
1408 pldat->dma_buff_base_v = in lpc_eth_drv_probe()
1409 dma_alloc_coherent(&pldat->pdev->dev, in lpc_eth_drv_probe()
1410 pldat->dma_buff_size, &dma_handle, in lpc_eth_drv_probe()
1412 if (pldat->dma_buff_base_v == NULL) { in lpc_eth_drv_probe()
1417 pldat->dma_buff_base_p = dma_handle; in lpc_eth_drv_probe()
1422 pldat->net_base); in lpc_eth_drv_probe()
1424 netdev_dbg(ndev, "DMA buffer size :%d\n", pldat->dma_buff_size); in lpc_eth_drv_probe()
1426 pldat->dma_buff_base_p); in lpc_eth_drv_probe()
1428 pldat->dma_buff_base_v); in lpc_eth_drv_probe()
1431 __lpc_get_mac(pldat, ndev->dev_addr); in lpc_eth_drv_probe()
1442 __lpc_eth_reset(pldat); in lpc_eth_drv_probe()
1445 __lpc_eth_shutdown(pldat); in lpc_eth_drv_probe()
1448 pldat->msg_enable = NETIF_MSG_LINK; in lpc_eth_drv_probe()
1451 __lpc_mii_mngt_reset(pldat); in lpc_eth_drv_probe()
1455 pldat->link = 0; in lpc_eth_drv_probe()
1456 pldat->speed = 100; in lpc_eth_drv_probe()
1457 pldat->duplex = DUPLEX_FULL; in lpc_eth_drv_probe()
1458 __lpc_params_setup(pldat); in lpc_eth_drv_probe()
1460 netif_napi_add(ndev, &pldat->napi, lpc_eth_poll, NAPI_WEIGHT); in lpc_eth_drv_probe()
1469 ret = lpc_mii_init(pldat); in lpc_eth_drv_probe()
1476 phydev = pldat->phy_dev; in lpc_eth_drv_probe()
1486 if (!use_iram_for_net(&pldat->pdev->dev) || in lpc_eth_drv_probe()
1487 pldat->dma_buff_size > lpc32xx_return_iram_size()) in lpc_eth_drv_probe()
1488 dma_free_coherent(&pldat->pdev->dev, pldat->dma_buff_size, in lpc_eth_drv_probe()
1489 pldat->dma_buff_base_v, in lpc_eth_drv_probe()
1490 pldat->dma_buff_base_p); in lpc_eth_drv_probe()
1494 iounmap(pldat->net_base); in lpc_eth_drv_probe()
1496 clk_disable_unprepare(pldat->clk); in lpc_eth_drv_probe()
1497 clk_put(pldat->clk); in lpc_eth_drv_probe()
1508 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_drv_remove() local
1512 if (!use_iram_for_net(&pldat->pdev->dev) || in lpc_eth_drv_remove()
1513 pldat->dma_buff_size > lpc32xx_return_iram_size()) in lpc_eth_drv_remove()
1514 dma_free_coherent(&pldat->pdev->dev, pldat->dma_buff_size, in lpc_eth_drv_remove()
1515 pldat->dma_buff_base_v, in lpc_eth_drv_remove()
1516 pldat->dma_buff_base_p); in lpc_eth_drv_remove()
1518 iounmap(pldat->net_base); in lpc_eth_drv_remove()
1519 mdiobus_unregister(pldat->mii_bus); in lpc_eth_drv_remove()
1520 mdiobus_free(pldat->mii_bus); in lpc_eth_drv_remove()
1521 clk_disable_unprepare(pldat->clk); in lpc_eth_drv_remove()
1522 clk_put(pldat->clk); in lpc_eth_drv_remove()
1533 struct netdata_local *pldat = netdev_priv(ndev); in lpc_eth_drv_suspend() local
1541 __lpc_eth_shutdown(pldat); in lpc_eth_drv_suspend()
1542 clk_disable_unprepare(pldat->clk); in lpc_eth_drv_suspend()
1548 __lpc_eth_reset(pldat); in lpc_eth_drv_suspend()
1558 struct netdata_local *pldat; in lpc_eth_drv_resume() local
1565 pldat = netdev_priv(ndev); in lpc_eth_drv_resume()
1568 clk_enable(pldat->clk); in lpc_eth_drv_resume()
1571 __lpc_eth_reset(pldat); in lpc_eth_drv_resume()
1572 __lpc_eth_init(pldat); in lpc_eth_drv_resume()