Lines Matching refs:netdev
647 static inline void txqs_stop(struct net_device *netdev) in txqs_stop() argument
649 if (netif_is_multiqueue(netdev)) { in txqs_stop()
652 for (i = 0; i < netdev->num_tx_queues; i++) in txqs_stop()
653 netif_stop_subqueue(netdev, i); in txqs_stop()
655 netif_stop_queue(netdev); in txqs_stop()
663 static inline void txqs_start(struct net_device *netdev) in txqs_start() argument
665 if (netif_is_multiqueue(netdev)) { in txqs_start()
668 for (i = 0; i < netdev->num_tx_queues; i++) in txqs_start()
669 netif_start_subqueue(netdev, i); in txqs_start()
671 netif_start_queue(netdev); in txqs_start()
679 static inline void txqs_wake(struct net_device *netdev) in txqs_wake() argument
681 if (netif_is_multiqueue(netdev)) { in txqs_wake()
684 for (i = 0; i < netdev->num_tx_queues; i++) in txqs_wake()
685 netif_wake_subqueue(netdev, i); in txqs_wake()
687 netif_wake_queue(netdev); in txqs_wake()
695 static void stop_txq(struct net_device *netdev) in stop_txq() argument
697 txqs_stop(netdev); in stop_txq()
704 static void start_txq(struct net_device *netdev) in start_txq() argument
706 struct lio *lio = GET_LIO(netdev); in start_txq()
709 txqs_start(netdev); in start_txq()
719 static inline void wake_q(struct net_device *netdev, int q) in wake_q() argument
721 if (netif_is_multiqueue(netdev)) in wake_q()
722 netif_wake_subqueue(netdev, q); in wake_q()
724 netif_wake_queue(netdev); in wake_q()
732 static inline void stop_q(struct net_device *netdev, int q) in stop_q() argument
734 if (netif_is_multiqueue(netdev)) in stop_q()
735 netif_stop_subqueue(netdev, q); in stop_q()
737 netif_stop_queue(netdev); in stop_q()
749 if (netif_is_multiqueue(lio->netdev)) { in check_txq_status()
750 int numqs = lio->netdev->num_tx_queues; in check_txq_status()
758 wake_q(lio->netdev, q); in check_txq_status()
764 wake_q(lio->netdev, lio->txq); in check_txq_status()
854 static void print_link_info(struct net_device *netdev) in print_link_info() argument
856 struct lio *lio = GET_LIO(netdev); in print_link_info()
862 netif_info(lio, link, lio->netdev, "%d Mbps %s Duplex UP\n", in print_link_info()
866 netif_info(lio, link, lio->netdev, "Link Down\n"); in print_link_info()
879 static inline void update_link_status(struct net_device *netdev, in update_link_status() argument
882 struct lio *lio = GET_LIO(netdev); in update_link_status()
887 print_link_info(netdev); in update_link_status()
890 netif_carrier_on(netdev); in update_link_status()
892 txqs_wake(netdev); in update_link_status()
894 netif_carrier_off(netdev); in update_link_status()
895 stop_txq(netdev); in update_link_status()
1169 nctrl.netpndev = (u64)lio->netdev; in send_rx_ctrl_cmd()
1174 netif_info(lio, rx_err, lio->netdev, "Failed to send RX Control message\n"); in send_rx_ctrl_cmd()
1187 struct net_device *netdev = oct->props[ifidx].netdev; in liquidio_destroy_nic_device() local
1190 if (!netdev) { in liquidio_destroy_nic_device()
1196 lio = GET_LIO(netdev); in liquidio_destroy_nic_device()
1203 txqs_stop(netdev); in liquidio_destroy_nic_device()
1206 unregister_netdev(netdev); in liquidio_destroy_nic_device()
1210 free_netdev(netdev); in liquidio_destroy_nic_device()
1212 oct->props[ifidx].netdev = NULL; in liquidio_destroy_nic_device()
1231 lio = GET_LIO(oct->props[i].netdev); in liquidio_stop_nic_module()
1338 if (netif_is_multiqueue(lio->netdev)) { in check_txq_state()
1347 wake_q(lio->netdev, q); in check_txq_state()
1584 static void oct_ptp_open(struct net_device *netdev) in oct_ptp_open() argument
1586 struct lio *lio = GET_LIO(netdev); in oct_ptp_open()
1591 snprintf(lio->ptp_info.name, 16, "%s", netdev->name); in oct_ptp_open()
1777 struct net_device *netdev = in liquidio_push_packet() local
1778 (struct net_device *)oct->props[rh->r_dh.link].netdev; in liquidio_push_packet()
1781 if (netdev) { in liquidio_push_packet()
1783 struct lio *lio = GET_LIO(netdev); in liquidio_push_packet()
1792 skb->dev = netdev; in liquidio_push_packet()
1813 if ((netdev->features & NETIF_F_RXCSUM) && in liquidio_push_packet()
1825 netdev->last_rx = jiffies; in liquidio_push_packet()
1828 netif_info(lio, rx_err, lio->netdev, in liquidio_push_packet()
1888 netif_info(lio, rx_err, lio->netdev, in liquidio_napi_do_rx()
2036 static inline void setup_tx_poll_fn(struct net_device *netdev) in setup_tx_poll_fn() argument
2038 struct lio *lio = GET_LIO(netdev); in setup_tx_poll_fn()
2057 static int liquidio_open(struct net_device *netdev) in liquidio_open() argument
2059 struct lio *lio = GET_LIO(netdev); in liquidio_open()
2063 list_for_each_entry_safe(napi, n, &netdev->napi_list, dev_list) in liquidio_open()
2066 oct_ptp_open(netdev); in liquidio_open()
2069 setup_tx_poll_fn(netdev); in liquidio_open()
2070 start_txq(netdev); in liquidio_open()
2072 netif_info(lio, ifup, lio->netdev, "Interface Open, ready for traffic\n"); in liquidio_open()
2082 netdev->name); in liquidio_open()
2091 static int liquidio_stop(struct net_device *netdev) in liquidio_stop() argument
2094 struct lio *lio = GET_LIO(netdev); in liquidio_stop()
2097 netif_info(lio, ifdown, lio->netdev, "Stopping interface!\n"); in liquidio_stop()
2102 netif_carrier_off(netdev); in liquidio_stop()
2119 set_bit(__LINK_STATE_START, &lio->netdev->state); in liquidio_stop()
2121 list_for_each_entry_safe(napi, n, &netdev->napi_list, dev_list) in liquidio_stop()
2124 txqs_stop(netdev); in liquidio_stop()
2126 dev_info(&oct->pci_dev->dev, "%s interface is stopped\n", netdev->name); in liquidio_stop()
2135 struct net_device *netdev = (struct net_device *)nctrl->netpndev; in liquidio_link_ctrl_cmd_completion() local
2136 struct lio *lio = GET_LIO(netdev); in liquidio_link_ctrl_cmd_completion()
2146 netif_info(lio, probe, lio->netdev, " MACAddr changed to 0x%llx\n", in liquidio_link_ctrl_cmd_completion()
2149 netdev->name, CVM_CAST64(nctrl->udd[0])); in liquidio_link_ctrl_cmd_completion()
2150 memcpy(netdev->dev_addr, ((u8 *)&nctrl->udd[0]) + 2, ETH_ALEN); in liquidio_link_ctrl_cmd_completion()
2155 netif_info(lio, probe, lio->netdev, " MTU Changed from %d to %d\n", in liquidio_link_ctrl_cmd_completion()
2156 netdev->mtu, nctrl->ncmd.s.param2); in liquidio_link_ctrl_cmd_completion()
2158 netdev->name, netdev->mtu, in liquidio_link_ctrl_cmd_completion()
2160 netdev->mtu = nctrl->ncmd.s.param2; in liquidio_link_ctrl_cmd_completion()
2164 netif_info(lio, probe, lio->netdev, "LED Flashing visual identification\n"); in liquidio_link_ctrl_cmd_completion()
2169 dev_info(&oct->pci_dev->dev, "%s LRO Enabled\n", netdev->name); in liquidio_link_ctrl_cmd_completion()
2174 netdev->name); in liquidio_link_ctrl_cmd_completion()
2178 dev_info(&oct->pci_dev->dev, "%s LRO Enabled\n", netdev->name); in liquidio_link_ctrl_cmd_completion()
2183 netdev->name); in liquidio_link_ctrl_cmd_completion()
2188 netdev->name); in liquidio_link_ctrl_cmd_completion()
2205 static inline enum octnet_ifflags get_new_flags(struct net_device *netdev) in get_new_flags() argument
2209 if (netdev->flags & IFF_PROMISC) in get_new_flags()
2212 if (netdev->flags & IFF_ALLMULTI) in get_new_flags()
2215 if (netdev->flags & IFF_MULTICAST) { in get_new_flags()
2221 if (netdev_mc_count(netdev) > MAX_OCTEON_MULTICAST_ADDR) in get_new_flags()
2225 if (netdev->flags & IFF_BROADCAST) in get_new_flags()
2235 static void liquidio_set_mcast_list(struct net_device *netdev) in liquidio_set_mcast_list() argument
2237 struct lio *lio = GET_LIO(netdev); in liquidio_set_mcast_list()
2244 int mc_count = min(netdev_mc_count(netdev), MAX_OCTEON_MULTICAST_ADDR); in liquidio_set_mcast_list()
2252 nctrl.ncmd.s.param2 = get_new_flags(netdev); in liquidio_set_mcast_list()
2255 nctrl.netpndev = (u64)netdev; in liquidio_set_mcast_list()
2261 netdev_for_each_mc_addr(ha, netdev) { in liquidio_set_mcast_list()
2288 static int liquidio_set_mac(struct net_device *netdev, void *p) in liquidio_set_mac() argument
2291 struct lio *lio = GET_LIO(netdev); in liquidio_set_mac()
2308 nctrl.netpndev = (u64)netdev; in liquidio_set_mac()
2323 memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len); in liquidio_set_mac()
2333 static struct net_device_stats *liquidio_get_stats(struct net_device *netdev) in liquidio_get_stats() argument
2335 struct lio *lio = GET_LIO(netdev); in liquidio_get_stats()
2336 struct net_device_stats *stats = &netdev->stats; in liquidio_get_stats()
2383 static int liquidio_change_mtu(struct net_device *netdev, int new_mtu) in liquidio_change_mtu() argument
2385 struct lio *lio = GET_LIO(netdev); in liquidio_change_mtu()
2411 nctrl.netpndev = (u64)netdev; in liquidio_change_mtu()
2433 static int hwtstamp_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) in hwtstamp_ioctl() argument
2436 struct lio *lio = GET_LIO(netdev); in hwtstamp_ioctl()
2490 static int liquidio_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) in liquidio_ioctl() argument
2494 return hwtstamp_ioctl(netdev, ifr, cmd); in liquidio_ioctl()
2533 netif_info(lio, tx_done, lio->netdev, in handle_timestamp()
2593 netif_info(lio, tx_queued, lio->netdev, "Queued timestamp packet\n"); in send_nic_timestamp_pkt()
2667 static int liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) in liquidio_xmit() argument
2680 lio = GET_LIO(netdev); in liquidio_xmit()
2683 if (netif_is_multiqueue(netdev)) { in liquidio_xmit()
2699 netif_info(lio, tx_err, lio->netdev, in liquidio_xmit()
2720 if (netif_is_multiqueue(netdev)) { in liquidio_xmit()
2723 netif_info(lio, tx_err, lio->netdev, "Transmit failed iq:%d full\n", in liquidio_xmit()
2732 netif_info(lio, tx_err, lio->netdev, "Transmit failed iq:%d full\n", in liquidio_xmit()
2824 netif_info(lio, tx_err, lio->netdev, in liquidio_xmit()
2899 netif_info(lio, tx_queued, lio->netdev, "Transmit queued successfully\n"); in liquidio_xmit()
2902 stop_q(lio->netdev, q_idx); in liquidio_xmit()
2904 netdev->trans_start = jiffies; in liquidio_xmit()
2913 netif_info(lio, tx_err, lio->netdev, "IQ%d Transmit dropped:%llu\n", in liquidio_xmit()
2924 static void liquidio_tx_timeout(struct net_device *netdev) in liquidio_tx_timeout() argument
2928 lio = GET_LIO(netdev); in liquidio_tx_timeout()
2930 netif_info(lio, tx_err, lio->netdev, in liquidio_tx_timeout()
2932 netdev->stats.tx_dropped); in liquidio_tx_timeout()
2933 netdev->trans_start = jiffies; in liquidio_tx_timeout()
2934 txqs_wake(netdev); in liquidio_tx_timeout()
2937 int liquidio_set_feature(struct net_device *netdev, int cmd) in liquidio_set_feature() argument
2939 struct lio *lio = GET_LIO(netdev); in liquidio_set_feature()
2952 nctrl.netpndev = (u64)netdev; in liquidio_set_feature()
2970 static netdev_features_t liquidio_fix_features(struct net_device *netdev, in liquidio_fix_features() argument
2973 struct lio *lio = netdev_priv(netdev); in liquidio_fix_features()
2993 if (!(request & NETIF_F_RXCSUM) && (netdev->features & NETIF_F_LRO) && in liquidio_fix_features()
3004 static int liquidio_set_features(struct net_device *netdev, in liquidio_set_features() argument
3007 struct lio *lio = netdev_priv(netdev); in liquidio_set_features()
3009 if (!((netdev->features ^ features) & NETIF_F_LRO)) in liquidio_set_features()
3013 liquidio_set_feature(netdev, OCTNET_CMD_LRO_ENABLE); in liquidio_set_features()
3016 liquidio_set_feature(netdev, OCTNET_CMD_LRO_DISABLE); in liquidio_set_features()
3104 update_link_status(oct->props[ifidx].netdev, ls); in lio_nic_info()
3124 struct net_device *netdev; in setup_nic_devices() local
3232 netdev = alloc_etherdev_mq(LIO_SIZE, num_iqueues); in setup_nic_devices()
3234 if (!netdev) { in setup_nic_devices()
3240 props->netdev = netdev; in setup_nic_devices()
3248 netdev->netdev_ops = &lionetdevops; in setup_nic_devices()
3250 lio = GET_LIO(netdev); in setup_nic_devices()
3283 netif_set_gso_max_size(netdev, OCTNIC_GSO_MAX_SIZE); in setup_nic_devices()
3285 netdev->features = lio->dev_capability; in setup_nic_devices()
3286 netdev->vlan_features = lio->dev_capability; in setup_nic_devices()
3288 netdev->hw_features = lio->dev_capability; in setup_nic_devices()
3295 lio->netdev = netdev; in setup_nic_devices()
3309 ether_addr_copy(netdev->dev_addr, mac); in setup_nic_devices()
3311 if (setup_io_queues(octeon_dev, netdev)) { in setup_nic_devices()
3334 liquidio_set_ethtool_ops(netdev); in setup_nic_devices()
3336 liquidio_set_feature(netdev, OCTNET_CMD_LRO_ENABLE); in setup_nic_devices()
3339 liquidio_set_feature(netdev, OCTNET_CMD_VERBOSE_ENABLE); in setup_nic_devices()
3342 if (register_netdev(netdev)) { in setup_nic_devices()
3350 netif_carrier_off(netdev); in setup_nic_devices()
3353 netif_carrier_on(netdev); in setup_nic_devices()
3354 start_txq(netdev); in setup_nic_devices()
3356 netif_carrier_off(netdev); in setup_nic_devices()