Lines Matching refs:netdev
72 static int change_mac_addr(struct net_device *netdev, const u8 *addr);
112 static int hinic_get_link_ksettings(struct net_device *netdev, in hinic_get_link_ksettings() argument
116 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_link_ksettings()
131 netif_err(nic_dev, drv, netdev, in hinic_get_link_ksettings()
138 netif_err(nic_dev, drv, netdev, in hinic_get_link_ksettings()
144 netif_info(nic_dev, drv, netdev, "No link\n"); in hinic_get_link_ksettings()
162 static void hinic_get_drvinfo(struct net_device *netdev, in hinic_get_drvinfo() argument
165 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_drvinfo()
173 static void hinic_get_ringparam(struct net_device *netdev, in hinic_get_ringparam() argument
182 static void hinic_get_channels(struct net_device *netdev, in hinic_get_channels() argument
185 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_channels()
263 struct net_device *netdev = nic_dev->netdev; in create_txqs() local
270 nic_dev->txqs = devm_kzalloc(&netdev->dev, txq_size, GFP_KERNEL); in create_txqs()
277 err = hinic_init_txq(&nic_dev->txqs[i], sq, netdev); in create_txqs()
279 netif_err(nic_dev, drv, netdev, in create_txqs()
291 devm_kfree(&netdev->dev, nic_dev->txqs); in create_txqs()
302 struct net_device *netdev = nic_dev->netdev; in free_txqs() local
310 devm_kfree(&netdev->dev, nic_dev->txqs); in free_txqs()
323 struct net_device *netdev = nic_dev->netdev; in create_rxqs() local
330 nic_dev->rxqs = devm_kzalloc(&netdev->dev, rxq_size, GFP_KERNEL); in create_rxqs()
337 err = hinic_init_rxq(&nic_dev->rxqs[i], rq, netdev); in create_rxqs()
339 netif_err(nic_dev, drv, netdev, in create_rxqs()
351 devm_kfree(&netdev->dev, nic_dev->rxqs); in create_rxqs()
362 struct net_device *netdev = nic_dev->netdev; in free_rxqs() local
370 devm_kfree(&netdev->dev, nic_dev->rxqs); in free_rxqs()
374 static int hinic_open(struct net_device *netdev) in hinic_open() argument
376 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_open()
383 netif_err(nic_dev, drv, netdev, in hinic_open()
391 netif_err(nic_dev, drv, netdev, in hinic_open()
398 netif_err(nic_dev, drv, netdev, in hinic_open()
404 netif_set_real_num_tx_queues(netdev, num_qps); in hinic_open()
405 netif_set_real_num_rx_queues(netdev, num_qps); in hinic_open()
409 netif_err(nic_dev, drv, netdev, in hinic_open()
416 netif_err(nic_dev, drv, netdev, in hinic_open()
428 netif_err(nic_dev, drv, netdev, "Failed to get link state\n"); in hinic_open()
439 netif_info(nic_dev, drv, netdev, "link + intf UP\n"); in hinic_open()
440 netif_carrier_on(netdev); in hinic_open()
441 netif_tx_wake_all_queues(netdev); in hinic_open()
446 netif_info(nic_dev, drv, netdev, "HINIC_INTF is UP\n"); in hinic_open()
453 netif_warn(nic_dev, drv, netdev, in hinic_open()
459 netif_warn(nic_dev, drv, netdev, in hinic_open()
474 static int hinic_close(struct net_device *netdev) in hinic_close() argument
476 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_close()
485 netif_carrier_off(netdev); in hinic_close()
486 netif_tx_disable(netdev); in hinic_close()
494 netif_err(nic_dev, drv, netdev, in hinic_close()
502 netif_err(nic_dev, drv, netdev, "Failed to set port state\n"); in hinic_close()
513 netif_info(nic_dev, drv, netdev, "HINIC_INTF is DOWN\n"); in hinic_close()
517 static int hinic_change_mtu(struct net_device *netdev, int new_mtu) in hinic_change_mtu() argument
519 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_change_mtu()
522 netif_info(nic_dev, drv, netdev, "set_mtu = %d\n", new_mtu); in hinic_change_mtu()
526 netif_err(nic_dev, drv, netdev, "Failed to set port mtu\n"); in hinic_change_mtu()
528 netdev->mtu = new_mtu; in hinic_change_mtu()
540 static int change_mac_addr(struct net_device *netdev, const u8 *addr) in change_mac_addr() argument
542 struct hinic_dev *nic_dev = netdev_priv(netdev); in change_mac_addr()
549 netif_info(nic_dev, drv, netdev, "change mac addr = %02x %02x %02x %02x %02x %02x\n", in change_mac_addr()
555 err = hinic_port_del_mac(nic_dev, netdev->dev_addr, vid); in change_mac_addr()
557 netif_err(nic_dev, drv, netdev, in change_mac_addr()
564 netif_err(nic_dev, drv, netdev, "Failed to add mac\n"); in change_mac_addr()
575 static int hinic_set_mac_addr(struct net_device *netdev, void *addr) in hinic_set_mac_addr() argument
583 err = change_mac_addr(netdev, new_mac); in hinic_set_mac_addr()
585 memcpy(netdev->dev_addr, new_mac, ETH_ALEN); in hinic_set_mac_addr()
597 static int add_mac_addr(struct net_device *netdev, const u8 *addr) in add_mac_addr() argument
599 struct hinic_dev *nic_dev = netdev_priv(netdev); in add_mac_addr()
606 netif_info(nic_dev, drv, netdev, "set mac addr = %02x %02x %02x %02x %02x %02x\n", in add_mac_addr()
614 netif_err(nic_dev, drv, netdev, "Failed to add mac\n"); in add_mac_addr()
632 static int remove_mac_addr(struct net_device *netdev, const u8 *addr) in remove_mac_addr() argument
634 struct hinic_dev *nic_dev = netdev_priv(netdev); in remove_mac_addr()
641 netif_info(nic_dev, drv, netdev, "remove mac addr = %02x %02x %02x %02x %02x %02x\n", in remove_mac_addr()
649 netif_err(nic_dev, drv, netdev, in remove_mac_addr()
661 static int hinic_vlan_rx_add_vid(struct net_device *netdev, in hinic_vlan_rx_add_vid() argument
664 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_vlan_rx_add_vid()
667 netif_info(nic_dev, drv, netdev, "add vid = %d\n", vid); in hinic_vlan_rx_add_vid()
673 netif_err(nic_dev, drv, netdev, "Failed to add vlan\n"); in hinic_vlan_rx_add_vid()
677 err = hinic_port_add_mac(nic_dev, netdev->dev_addr, vid); in hinic_vlan_rx_add_vid()
679 netif_err(nic_dev, drv, netdev, "Failed to set mac\n"); in hinic_vlan_rx_add_vid()
691 netif_err(nic_dev, drv, netdev, in hinic_vlan_rx_add_vid()
699 static int hinic_vlan_rx_kill_vid(struct net_device *netdev, in hinic_vlan_rx_kill_vid() argument
702 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_vlan_rx_kill_vid()
705 netif_info(nic_dev, drv, netdev, "remove vid = %d\n", vid); in hinic_vlan_rx_kill_vid()
711 netif_err(nic_dev, drv, netdev, "Failed to delete vlan\n"); in hinic_vlan_rx_kill_vid()
730 netif_info(nic_dev, drv, nic_dev->netdev, "set rx mode work\n"); in set_rx_mode()
734 __dev_uc_sync(nic_dev->netdev, add_mac_addr, remove_mac_addr); in set_rx_mode()
735 __dev_mc_sync(nic_dev->netdev, add_mac_addr, remove_mac_addr); in set_rx_mode()
738 static void hinic_set_rx_mode(struct net_device *netdev) in hinic_set_rx_mode() argument
740 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_set_rx_mode()
750 if (netdev->flags & IFF_PROMISC) in hinic_set_rx_mode()
752 else if (netdev->flags & IFF_ALLMULTI) in hinic_set_rx_mode()
760 static void hinic_tx_timeout(struct net_device *netdev) in hinic_tx_timeout() argument
762 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_tx_timeout()
764 netif_err(nic_dev, drv, netdev, "Tx timeout\n"); in hinic_tx_timeout()
767 static void hinic_get_stats64(struct net_device *netdev, in hinic_get_stats64() argument
770 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_stats64()
806 static void netdev_features_init(struct net_device *netdev) in netdev_features_init() argument
808 netdev->hw_features = NETIF_F_SG | NETIF_F_HIGHDMA; in netdev_features_init()
810 netdev->vlan_features = netdev->hw_features; in netdev_features_init()
812 netdev->features = netdev->hw_features | NETIF_F_HW_VLAN_CTAG_FILTER; in netdev_features_init()
840 netif_carrier_on(nic_dev->netdev); in link_status_event_handler()
841 netif_tx_wake_all_queues(nic_dev->netdev); in link_status_event_handler()
846 netif_info(nic_dev, drv, nic_dev->netdev, "HINIC_Link is UP\n"); in link_status_event_handler()
852 netif_carrier_off(nic_dev->netdev); in link_status_event_handler()
853 netif_tx_disable(nic_dev->netdev); in link_status_event_handler()
857 netif_info(nic_dev, drv, nic_dev->netdev, "HINIC_Link is DOWN\n"); in link_status_event_handler()
878 struct net_device *netdev; in nic_dev_init() local
895 netdev = alloc_etherdev_mq(sizeof(*nic_dev), num_qps); in nic_dev_init()
896 if (!netdev) { in nic_dev_init()
902 netdev->netdev_ops = &hinic_netdev_ops; in nic_dev_init()
903 netdev->ethtool_ops = &hinic_ethtool_ops; in nic_dev_init()
904 netdev->max_mtu = ETH_MAX_MTU; in nic_dev_init()
906 nic_dev = netdev_priv(netdev); in nic_dev_init()
907 nic_dev->netdev = netdev; in nic_dev_init()
938 pci_set_drvdata(pdev, netdev); in nic_dev_init()
940 err = hinic_port_get_mac(nic_dev, netdev->dev_addr); in nic_dev_init()
944 err = hinic_port_add_mac(nic_dev, netdev->dev_addr, 0); in nic_dev_init()
950 err = hinic_port_set_mtu(nic_dev, netdev->mtu); in nic_dev_init()
959 netdev_features_init(netdev); in nic_dev_init()
961 netif_carrier_off(netdev); in nic_dev_init()
966 SET_NETDEV_DEV(netdev, &pdev->dev); in nic_dev_init()
967 err = register_netdev(netdev); in nic_dev_init()
987 free_netdev(netdev); in nic_dev_init()
1056 struct net_device *netdev = pci_get_drvdata(pdev); in hinic_remove() local
1057 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_remove()
1060 unregister_netdev(netdev); in hinic_remove()
1074 free_netdev(netdev); in hinic_remove()