Lines Matching defs:lp
502 struct net_local *lp = netdev_priv(dev);
509 xemaclite_update_address(lp, dev->dev_addr);
522 struct net_local *lp = netdev_priv(dev);
525 dev_err(&lp->ndev->dev, "Exceeded transmit timeout of %lu ms\n",
531 spin_lock_irqsave(&lp->reset_lock, flags);
536 xemaclite_disable_interrupts(lp);
537 xemaclite_enable_interrupts(lp);
539 if (lp->deferred_skb) {
540 dev_kfree_skb_irq(lp->deferred_skb);
541 lp->deferred_skb = NULL;
550 spin_unlock_irqrestore(&lp->reset_lock, flags);
566 struct net_local *lp = netdev_priv(dev);
570 if (!lp->deferred_skb)
573 if (xemaclite_send_data(lp, (u8 *)lp->deferred_skb->data,
574 lp->deferred_skb->len))
577 dev->stats.tx_bytes += lp->deferred_skb->len;
578 dev_consume_skb_irq(lp->deferred_skb);
579 lp->deferred_skb = NULL;
593 struct net_local *lp = netdev_priv(dev);
602 dev_err(&lp->ndev->dev, "Could not allocate receive buffer\n");
608 len = xemaclite_recv_data(lp, (u8 *)skb->data, len);
642 struct net_local *lp = netdev_priv(dev);
643 void __iomem *base_addr = lp->base_addr;
688 * @lp: Pointer to the Emaclite device private data
696 static int xemaclite_mdio_wait(struct net_local *lp)
704 lp->base_addr + XEL_MDIOCTRL_OFFSET,
723 struct net_local *lp = bus->priv;
727 if (xemaclite_mdio_wait(lp))
734 ctrl_reg = xemaclite_readl(lp->base_addr + XEL_MDIOCTRL_OFFSET);
737 lp->base_addr + XEL_MDIOADDR_OFFSET);
739 lp->base_addr + XEL_MDIOCTRL_OFFSET);
741 if (xemaclite_mdio_wait(lp))
744 rc = xemaclite_readl(lp->base_addr + XEL_MDIORD_OFFSET);
746 dev_dbg(&lp->ndev->dev,
768 struct net_local *lp = bus->priv;
771 dev_dbg(&lp->ndev->dev,
775 if (xemaclite_mdio_wait(lp))
783 ctrl_reg = xemaclite_readl(lp->base_addr + XEL_MDIOCTRL_OFFSET);
786 lp->base_addr + XEL_MDIOADDR_OFFSET);
787 xemaclite_writel(val, lp->base_addr + XEL_MDIOWR_OFFSET);
789 lp->base_addr + XEL_MDIOCTRL_OFFSET);
796 * @lp: Pointer to the Emaclite device private data
804 static int xemaclite_mdio_setup(struct net_local *lp, struct device *dev)
808 struct device_node *np = of_get_parent(lp->phy_node);
828 if (lp->ndev->mem_start != res.start) {
831 phydev = of_phy_find_device(lp->phy_node);
845 lp->base_addr + XEL_MDIOCTRL_OFFSET);
856 bus->priv = lp;
869 lp->mii_bus = bus;
887 struct net_local *lp = netdev_priv(ndev);
888 struct phy_device *phy = lp->phy_dev;
894 if (lp->last_link != link_state) {
895 lp->last_link = link_state;
913 struct net_local *lp = netdev_priv(dev);
917 xemaclite_disable_interrupts(lp);
919 if (lp->phy_node) {
920 lp->phy_dev = of_phy_connect(lp->ndev, lp->phy_node,
923 if (!lp->phy_dev) {
924 dev_err(&lp->ndev->dev, "of_phy_connect() failed\n");
929 phy_set_max_speed(lp->phy_dev, SPEED_100);
930 phy_start(lp->phy_dev);
934 xemaclite_update_address(lp, dev->dev_addr);
939 dev_err(&lp->ndev->dev, "Could not allocate interrupt %d\n",
941 if (lp->phy_dev)
942 phy_disconnect(lp->phy_dev);
943 lp->phy_dev = NULL;
949 xemaclite_enable_interrupts(lp);
969 struct net_local *lp = netdev_priv(dev);
972 xemaclite_disable_interrupts(lp);
975 if (lp->phy_dev)
976 phy_disconnect(lp->phy_dev);
977 lp->phy_dev = NULL;
999 struct net_local *lp = netdev_priv(dev);
1008 spin_lock_irqsave(&lp->reset_lock, flags);
1009 if (xemaclite_send_data(lp, (u8 *)new_skb->data, len) != 0) {
1015 lp->deferred_skb = new_skb;
1018 spin_unlock_irqrestore(&lp->reset_lock, flags);
1021 spin_unlock_irqrestore(&lp->reset_lock, flags);
1093 struct net_local *lp = NULL;
1109 lp = netdev_priv(ndev);
1110 lp->ndev = ndev;
1119 lp->base_addr = devm_platform_get_and_ioremap_resource(ofdev, 0, &res);
1120 if (IS_ERR(lp->base_addr))
1121 return PTR_ERR(lp->base_addr);
1126 spin_lock_init(&lp->reset_lock);
1127 lp->next_tx_buf_to_use = 0x0;
1128 lp->next_rx_buf_to_use = 0x0;
1129 lp->tx_ping_pong = get_bool(ofdev, "xlnx,tx-ping-pong");
1130 lp->rx_ping_pong = get_bool(ofdev, "xlnx,rx-ping-pong");
1144 xemaclite_writel(0, lp->base_addr + XEL_TSR_OFFSET);
1145 xemaclite_writel(0, lp->base_addr + XEL_BUFFER_OFFSET + XEL_TSR_OFFSET);
1148 xemaclite_update_address(lp, ndev->dev_addr);
1150 lp->phy_node = of_parse_phandle(ofdev->dev.of_node, "phy-handle", 0);
1151 xemaclite_mdio_setup(lp, &ofdev->dev);
1170 (unsigned long __force)ndev->mem_start, lp->base_addr, ndev->irq);
1174 of_node_put(lp->phy_node);
1190 struct net_local *lp = netdev_priv(ndev);
1193 if (lp->mii_bus) {
1194 mdiobus_unregister(lp->mii_bus);
1195 mdiobus_free(lp->mii_bus);
1196 lp->mii_bus = NULL;
1201 of_node_put(lp->phy_node);
1202 lp->phy_node = NULL;