Lines Matching refs:lp
312 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_adjust_link() local
313 struct phy_device *phydev = lp->phydev; in bfin_mac_adjust_link()
317 spin_lock_irqsave(&lp->lock, flags); in bfin_mac_adjust_link()
321 if (phydev->duplex != lp->old_duplex) { in bfin_mac_adjust_link()
331 lp->old_duplex = phydev->duplex; in bfin_mac_adjust_link()
334 if (phydev->speed != lp->old_speed) { in bfin_mac_adjust_link()
354 lp->old_speed = phydev->speed; in bfin_mac_adjust_link()
357 if (!lp->old_link) { in bfin_mac_adjust_link()
359 lp->old_link = 1; in bfin_mac_adjust_link()
361 } else if (lp->old_link) { in bfin_mac_adjust_link()
363 lp->old_link = 0; in bfin_mac_adjust_link()
364 lp->old_speed = 0; in bfin_mac_adjust_link()
365 lp->old_duplex = -1; in bfin_mac_adjust_link()
374 spin_unlock_irqrestore(&lp->lock, flags); in bfin_mac_adjust_link()
382 struct bfin_mac_local *lp = netdev_priv(dev); in mii_probe() local
401 struct phy_device *const tmp_phydev = lp->mii_bus->phy_map[i]; in mii_probe()
442 lp->old_link = 0; in mii_probe()
443 lp->old_speed = 0; in mii_probe()
444 lp->old_duplex = -1; in mii_probe()
445 lp->phydev = phydev; in mii_probe()
470 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_ethtool_getsettings() local
472 if (lp->phydev) in bfin_mac_ethtool_getsettings()
473 return phy_ethtool_gset(lp->phydev, cmd); in bfin_mac_ethtool_getsettings()
481 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_ethtool_setsettings() local
486 if (lp->phydev) in bfin_mac_ethtool_setsettings()
487 return phy_ethtool_sset(lp->phydev, cmd); in bfin_mac_ethtool_setsettings()
504 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_ethtool_getwol() local
507 wolinfo->wolopts = lp->wol; in bfin_mac_ethtool_getwol()
513 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_ethtool_setwol() local
523 lp->wol = wolinfo->wolopts; in bfin_mac_ethtool_setwol()
525 if (lp->wol && !lp->irq_wake_requested) { in bfin_mac_ethtool_setwol()
531 lp->irq_wake_requested = true; in bfin_mac_ethtool_setwol()
534 if (!lp->wol && lp->irq_wake_requested) { in bfin_mac_ethtool_setwol()
536 lp->irq_wake_requested = false; in bfin_mac_ethtool_setwol()
540 device_init_wakeup(&dev->dev, lp->wol); in bfin_mac_ethtool_setwol()
549 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_ethtool_get_ts_info() local
555 info->phc_index = lp->phc_index; in bfin_mac_ethtool_get_ts_info()
583 struct bfin_mac_local *lp = netdev_priv(dev); in setup_system_regs() local
597 if (lp->mii_bus->irq[i] != PHY_POLL) in setup_system_regs()
612 bfin_write_EMAC_VLAN1(lp->vlan1_mask); in setup_system_regs()
613 bfin_write_EMAC_VLAN2(lp->vlan2_mask); in setup_system_regs()
669 struct bfin_mac_local *lp = netdev_priv(netdev); in bfin_mac_hwtstamp_set() local
817 lp->stamp_cfg = config; in bfin_mac_hwtstamp_set()
825 struct bfin_mac_local *lp = netdev_priv(netdev); in bfin_mac_hwtstamp_get() local
827 return copy_to_user(ifr->ifr_data, &lp->stamp_cfg, in bfin_mac_hwtstamp_get()
828 sizeof(lp->stamp_cfg)) ? in bfin_mac_hwtstamp_get()
834 struct bfin_mac_local *lp = netdev_priv(netdev); in bfin_tx_hwtstamp() local
862 ns = regval << lp->shift; in bfin_tx_hwtstamp()
871 struct bfin_mac_local *lp = netdev_priv(netdev); in bfin_rx_hwtstamp() local
876 if (bfin_mac_hwtstamp_is_none(lp->stamp_cfg.rx_filter)) in bfin_rx_hwtstamp()
887 ns = regval << lp->shift; in bfin_rx_hwtstamp()
894 struct bfin_mac_local *lp = netdev_priv(netdev); in bfin_mac_hwtstamp_init() local
900 phc_clk = bfin_select_phc_clock(input_clk, &lp->shift); in bfin_mac_hwtstamp_init()
905 lp->addend = addend; in bfin_mac_hwtstamp_init()
908 lp->max_ppb = ppb - 1000000000ULL - 1ULL; in bfin_mac_hwtstamp_init()
911 lp->stamp_cfg.rx_filter = HWTSTAMP_FILTER_NONE; in bfin_mac_hwtstamp_init()
912 lp->stamp_cfg.tx_type = HWTSTAMP_TX_OFF; in bfin_mac_hwtstamp_init()
915 static u64 bfin_ptp_time_read(struct bfin_mac_local *lp) in bfin_ptp_time_read() argument
925 ns <<= lp->shift; in bfin_ptp_time_read()
930 static void bfin_ptp_time_write(struct bfin_mac_local *lp, u64 ns) in bfin_ptp_time_write() argument
934 ns >>= lp->shift; in bfin_ptp_time_write()
949 struct bfin_mac_local *lp = in bfin_ptp_adjfreq() local
956 addend = lp->addend; in bfin_ptp_adjfreq()
972 struct bfin_mac_local *lp = in bfin_ptp_adjtime() local
975 spin_lock_irqsave(&lp->phc_lock, flags); in bfin_ptp_adjtime()
977 now = bfin_ptp_time_read(lp); in bfin_ptp_adjtime()
979 bfin_ptp_time_write(lp, now); in bfin_ptp_adjtime()
981 spin_unlock_irqrestore(&lp->phc_lock, flags); in bfin_ptp_adjtime()
990 struct bfin_mac_local *lp = in bfin_ptp_gettime() local
993 spin_lock_irqsave(&lp->phc_lock, flags); in bfin_ptp_gettime()
995 ns = bfin_ptp_time_read(lp); in bfin_ptp_gettime()
997 spin_unlock_irqrestore(&lp->phc_lock, flags); in bfin_ptp_gettime()
1009 struct bfin_mac_local *lp = in bfin_ptp_settime() local
1014 spin_lock_irqsave(&lp->phc_lock, flags); in bfin_ptp_settime()
1016 bfin_ptp_time_write(lp, ns); in bfin_ptp_settime()
1018 spin_unlock_irqrestore(&lp->phc_lock, flags); in bfin_ptp_settime()
1047 struct bfin_mac_local *lp = netdev_priv(netdev); in bfin_phc_init() local
1049 lp->caps = bfin_ptp_caps; in bfin_phc_init()
1050 lp->caps.max_adj = lp->max_ppb; in bfin_phc_init()
1051 lp->clock = ptp_clock_register(&lp->caps, dev); in bfin_phc_init()
1052 if (IS_ERR(lp->clock)) in bfin_phc_init()
1053 return PTR_ERR(lp->clock); in bfin_phc_init()
1055 lp->phc_index = ptp_clock_index(lp->clock); in bfin_phc_init()
1056 spin_lock_init(&lp->phc_lock); in bfin_phc_init()
1061 static void bfin_phc_release(struct bfin_mac_local *lp) in bfin_phc_release() argument
1063 ptp_clock_unregister(lp->clock); in bfin_phc_release()
1074 # define bfin_phc_release(lp) argument
1091 static void tx_reclaim_skb(struct bfin_mac_local *lp) in tx_reclaim_skb() argument
1112 netif_stop_queue(lp->ndev); in tx_reclaim_skb()
1116 netif_queue_stopped(lp->ndev)) in tx_reclaim_skb()
1117 netif_wake_queue(lp->ndev); in tx_reclaim_skb()
1121 if (netif_queue_stopped(lp->ndev)) in tx_reclaim_skb()
1122 lp->tx_reclaim_timer.expires = in tx_reclaim_skb()
1125 lp->tx_reclaim_timer.expires = in tx_reclaim_skb()
1128 mod_timer(&lp->tx_reclaim_timer, in tx_reclaim_skb()
1129 lp->tx_reclaim_timer.expires); in tx_reclaim_skb()
1135 static void tx_reclaim_skb_timeout(unsigned long lp) in tx_reclaim_skb_timeout() argument
1137 tx_reclaim_skb((struct bfin_mac_local *)lp); in tx_reclaim_skb_timeout()
1143 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_hard_start_xmit() local
1210 tx_reclaim_skb(lp); in bfin_mac_hard_start_xmit()
1219 static void bfin_mac_rx(struct bfin_mac_local *lp) in bfin_mac_rx() argument
1221 struct net_device *dev = lp->ndev; in bfin_mac_rx()
1295 napi_gro_receive(&lp->napi, skb); in bfin_mac_rx()
1307 struct bfin_mac_local *lp = container_of(napi, in bfin_mac_poll() local
1312 bfin_mac_rx(lp); in bfin_mac_poll()
1318 if (test_and_clear_bit(BFIN_MAC_RX_IRQ_DISABLED, &lp->flags)) in bfin_mac_poll()
1328 struct bfin_mac_local *lp = netdev_priv(dev_id); in bfin_mac_interrupt() local
1336 set_bit(BFIN_MAC_RX_IRQ_DISABLED, &lp->flags); in bfin_mac_interrupt()
1337 napi_schedule(&lp->napi); in bfin_mac_interrupt()
1346 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_poll_controller() local
1349 tx_reclaim_skb(lp); in bfin_mac_poll_controller()
1422 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_timeout() local
1428 del_timer(&lp->tx_reclaim_timer); in bfin_mac_timeout()
1444 bfin_mac_enable(lp->phydev); in bfin_mac_timeout()
1508 struct bfin_mac_local *lp = netdev_priv(netdev); in bfin_mac_ioctl() local
1519 if (lp->phydev) in bfin_mac_ioctl()
1520 return phy_mii_ioctl(lp->phydev, ifr, cmd); in bfin_mac_ioctl()
1545 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_open() local
1564 phy_start(lp->phydev); in bfin_mac_open()
1569 ret = bfin_mac_enable(lp->phydev); in bfin_mac_open()
1574 napi_enable(&lp->napi); in bfin_mac_open()
1588 struct bfin_mac_local *lp = netdev_priv(dev); in bfin_mac_close() local
1592 napi_disable(&lp->napi); in bfin_mac_close()
1595 phy_stop(lp->phydev); in bfin_mac_close()
1596 phy_write(lp->phydev, MII_BMCR, BMCR_PDOWN); in bfin_mac_close()
1625 struct bfin_mac_local *lp; in bfin_mac_probe() local
1636 lp = netdev_priv(ndev); in bfin_mac_probe()
1637 lp->ndev = ndev; in bfin_mac_probe()
1675 lp->mii_bus = platform_get_drvdata(pd); in bfin_mac_probe()
1676 if (!lp->mii_bus) { in bfin_mac_probe()
1681 lp->mii_bus->priv = ndev; in bfin_mac_probe()
1690 lp->vlan1_mask = ETH_P_8021Q | mii_bus_data->vlan1_mask; in bfin_mac_probe()
1691 lp->vlan2_mask = ETH_P_8021Q | mii_bus_data->vlan2_mask; in bfin_mac_probe()
1696 init_timer(&lp->tx_reclaim_timer); in bfin_mac_probe()
1697 lp->tx_reclaim_timer.data = (unsigned long)lp; in bfin_mac_probe()
1698 lp->tx_reclaim_timer.function = tx_reclaim_skb_timeout; in bfin_mac_probe()
1700 lp->flags = 0; in bfin_mac_probe()
1701 netif_napi_add(ndev, &lp->napi, bfin_mac_poll, CONFIG_BFIN_RX_DESC_NUM); in bfin_mac_probe()
1703 spin_lock_init(&lp->lock); in bfin_mac_probe()
1737 netif_napi_del(&lp->napi); in bfin_mac_probe()
1739 mdiobus_unregister(lp->mii_bus); in bfin_mac_probe()
1740 mdiobus_free(lp->mii_bus); in bfin_mac_probe()
1750 struct bfin_mac_local *lp = netdev_priv(ndev); in bfin_mac_remove() local
1752 bfin_phc_release(lp); in bfin_mac_remove()
1754 lp->mii_bus->priv = NULL; in bfin_mac_remove()
1758 netif_napi_del(&lp->napi); in bfin_mac_remove()
1771 struct bfin_mac_local *lp = netdev_priv(net_dev); in bfin_mac_suspend() local
1773 if (lp->wol) { in bfin_mac_suspend()
1788 struct bfin_mac_local *lp = netdev_priv(net_dev); in bfin_mac_resume() local
1790 if (lp->wol) { in bfin_mac_resume()