Lines Matching refs:netdev
119 struct net_device *netdev; member
213 static void octeon_mgmt_rx_fill_ring(struct net_device *netdev) in octeon_mgmt_rx_fill_ring() argument
215 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_rx_fill_ring()
223 size = netdev->mtu + OCTEON_MGMT_RX_HEADROOM + 8 + NET_IP_ALIGN; in octeon_mgmt_rx_fill_ring()
225 skb = netdev_alloc_skb(netdev, size); in octeon_mgmt_rx_fill_ring()
311 if (cleaned && netif_queue_stopped(p->netdev)) in octeon_mgmt_clean_tx_buffers()
312 netif_wake_queue(p->netdev); in octeon_mgmt_clean_tx_buffers()
322 static void octeon_mgmt_update_rx_stats(struct net_device *netdev) in octeon_mgmt_update_rx_stats() argument
324 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_update_rx_stats()
335 netdev->stats.rx_errors += bad; in octeon_mgmt_update_rx_stats()
336 netdev->stats.rx_dropped += drop; in octeon_mgmt_update_rx_stats()
341 static void octeon_mgmt_update_tx_stats(struct net_device *netdev) in octeon_mgmt_update_tx_stats() argument
343 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_update_tx_stats()
356 netdev->stats.tx_errors += s0.s.xsdef + s0.s.xscol; in octeon_mgmt_update_tx_stats()
357 netdev->stats.collisions += s1.s.scol + s1.s.mcol; in octeon_mgmt_update_tx_stats()
390 struct net_device *netdev = p->netdev; in octeon_mgmt_receive_one() local
414 skb->protocol = eth_type_trans(skb, netdev); in octeon_mgmt_receive_one()
415 netdev->stats.rx_packets++; in octeon_mgmt_receive_one()
416 netdev->stats.rx_bytes += skb->len; in octeon_mgmt_receive_one()
463 netdev->stats.rx_errors++; in octeon_mgmt_receive_one()
490 octeon_mgmt_rx_fill_ring(p->netdev); in octeon_mgmt_receive_packets()
498 struct net_device *netdev = p->netdev; in octeon_mgmt_napi_poll() local
508 octeon_mgmt_update_rx_stats(netdev); in octeon_mgmt_napi_poll()
558 static void octeon_mgmt_set_rx_filtering(struct net_device *netdev) in octeon_mgmt_set_rx_filtering() argument
560 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_set_rx_filtering()
573 if ((netdev->flags & IFF_PROMISC) || netdev->uc.count > 7) { in octeon_mgmt_set_rx_filtering()
580 available_cam_entries = 7 - netdev->uc.count; in octeon_mgmt_set_rx_filtering()
583 if (netdev->flags & IFF_MULTICAST) { in octeon_mgmt_set_rx_filtering()
584 if (cam_mode == 0 || (netdev->flags & IFF_ALLMULTI) || in octeon_mgmt_set_rx_filtering()
585 netdev_mc_count(netdev) > available_cam_entries) in octeon_mgmt_set_rx_filtering()
593 octeon_mgmt_cam_state_add(&cam_state, netdev->dev_addr); in octeon_mgmt_set_rx_filtering()
594 netdev_for_each_uc_addr(ha, netdev) in octeon_mgmt_set_rx_filtering()
598 netdev_for_each_mc_addr(ha, netdev) in octeon_mgmt_set_rx_filtering()
632 static int octeon_mgmt_set_mac_address(struct net_device *netdev, void *addr) in octeon_mgmt_set_mac_address() argument
634 int r = eth_mac_addr(netdev, addr); in octeon_mgmt_set_mac_address()
639 octeon_mgmt_set_rx_filtering(netdev); in octeon_mgmt_set_mac_address()
644 static int octeon_mgmt_change_mtu(struct net_device *netdev, int new_mtu) in octeon_mgmt_change_mtu() argument
646 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_change_mtu()
659 netdev->mtu = new_mtu; in octeon_mgmt_change_mtu()
670 struct net_device *netdev = dev_id; in octeon_mgmt_interrupt() local
671 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_interrupt()
692 static int octeon_mgmt_ioctl_hwtstamp(struct net_device *netdev, in octeon_mgmt_ioctl_hwtstamp() argument
695 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_ioctl_hwtstamp()
787 static int octeon_mgmt_ioctl(struct net_device *netdev, in octeon_mgmt_ioctl() argument
790 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_ioctl()
794 return octeon_mgmt_ioctl_hwtstamp(netdev, rq, cmd); in octeon_mgmt_ioctl()
906 static void octeon_mgmt_adjust_link(struct net_device *netdev) in octeon_mgmt_adjust_link() argument
908 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_adjust_link()
939 pr_info("%s: Link is up - %d/%s\n", netdev->name, in octeon_mgmt_adjust_link()
944 pr_info("%s: Link is down\n", netdev->name); in octeon_mgmt_adjust_link()
949 static int octeon_mgmt_init_phy(struct net_device *netdev) in octeon_mgmt_init_phy() argument
951 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_init_phy()
955 netif_carrier_on(netdev); in octeon_mgmt_init_phy()
959 p->phydev = of_phy_connect(netdev, p->phy_np, in octeon_mgmt_init_phy()
969 static int octeon_mgmt_open(struct net_device *netdev) in octeon_mgmt_open() argument
971 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_open()
1057 memcpy(sa.sa_data, netdev->dev_addr, ETH_ALEN); in octeon_mgmt_open()
1058 octeon_mgmt_set_mac_address(netdev, &sa); in octeon_mgmt_open()
1060 octeon_mgmt_change_mtu(netdev, netdev->mtu); in octeon_mgmt_open()
1077 if (octeon_mgmt_init_phy(netdev)) { in octeon_mgmt_open()
1140 octeon_mgmt_rx_fill_ring(netdev); in octeon_mgmt_open()
1155 if (request_irq(p->irq, octeon_mgmt_interrupt, 0, netdev->name, in octeon_mgmt_open()
1156 netdev)) { in octeon_mgmt_open()
1218 netif_carrier_off(netdev); in octeon_mgmt_open()
1222 netif_wake_queue(netdev); in octeon_mgmt_open()
1240 static int octeon_mgmt_stop(struct net_device *netdev) in octeon_mgmt_stop() argument
1242 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_stop()
1245 netif_stop_queue(netdev); in octeon_mgmt_stop()
1251 netif_carrier_off(netdev); in octeon_mgmt_stop()
1255 free_irq(p->irq, netdev); in octeon_mgmt_stop()
1274 static int octeon_mgmt_xmit(struct sk_buff *skb, struct net_device *netdev) in octeon_mgmt_xmit() argument
1276 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_xmit()
1292 netif_stop_queue(netdev); in octeon_mgmt_xmit()
1317 netdev->stats.tx_packets++; in octeon_mgmt_xmit()
1318 netdev->stats.tx_bytes += skb->len; in octeon_mgmt_xmit()
1323 netdev->trans_start = jiffies; in octeon_mgmt_xmit()
1326 octeon_mgmt_update_tx_stats(netdev); in octeon_mgmt_xmit()
1331 static void octeon_mgmt_poll_controller(struct net_device *netdev) in octeon_mgmt_poll_controller() argument
1333 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_poll_controller()
1336 octeon_mgmt_update_rx_stats(netdev); in octeon_mgmt_poll_controller()
1340 static void octeon_mgmt_get_drvinfo(struct net_device *netdev, in octeon_mgmt_get_drvinfo() argument
1349 static int octeon_mgmt_get_settings(struct net_device *netdev, in octeon_mgmt_get_settings() argument
1352 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_get_settings()
1360 static int octeon_mgmt_set_settings(struct net_device *netdev, in octeon_mgmt_set_settings() argument
1363 struct octeon_mgmt *p = netdev_priv(netdev); in octeon_mgmt_set_settings()
1410 struct net_device *netdev; in octeon_mgmt_probe() local
1420 netdev = alloc_etherdev(sizeof(struct octeon_mgmt)); in octeon_mgmt_probe()
1421 if (netdev == NULL) in octeon_mgmt_probe()
1424 SET_NETDEV_DEV(netdev, &pdev->dev); in octeon_mgmt_probe()
1426 platform_set_drvdata(pdev, netdev); in octeon_mgmt_probe()
1427 p = netdev_priv(netdev); in octeon_mgmt_probe()
1428 netif_napi_add(netdev, &p->napi, octeon_mgmt_napi_poll, in octeon_mgmt_probe()
1431 p->netdev = netdev; in octeon_mgmt_probe()
1444 snprintf(netdev->name, IFNAMSIZ, "mgmt%d", p->port); in octeon_mgmt_probe()
1516 netdev->priv_flags |= IFF_UNICAST_FLT; in octeon_mgmt_probe()
1518 netdev->netdev_ops = &octeon_mgmt_ops; in octeon_mgmt_probe()
1519 netdev->ethtool_ops = &octeon_mgmt_ethtool_ops; in octeon_mgmt_probe()
1524 memcpy(netdev->dev_addr, mac, ETH_ALEN); in octeon_mgmt_probe()
1526 eth_hw_addr_random(netdev); in octeon_mgmt_probe()
1534 netif_carrier_off(netdev); in octeon_mgmt_probe()
1535 result = register_netdev(netdev); in octeon_mgmt_probe()
1543 free_netdev(netdev); in octeon_mgmt_probe()
1549 struct net_device *netdev = platform_get_drvdata(pdev); in octeon_mgmt_remove() local
1551 unregister_netdev(netdev); in octeon_mgmt_remove()
1552 free_netdev(netdev); in octeon_mgmt_remove()