Lines Matching refs:nic_dev
259 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_link_ksettings() local
274 err = hinic_port_get_cap(nic_dev, &port_cap); in hinic_get_link_ksettings()
281 err = hinic_port_link_state(nic_dev, &link_state); in hinic_get_link_ksettings()
299 err = hinic_get_link_mode(nic_dev->hwdev, &link_mode); in hinic_get_link_ksettings()
309 if (!HINIC_IS_VF(nic_dev->hwdev->hwif)) { in hinic_get_link_ksettings()
310 err = hinic_get_hw_pause_info(nic_dev->hwdev, &pause_info); in hinic_get_link_ksettings()
365 static bool hinic_is_speed_legal(struct hinic_dev *nic_dev, u32 speed) in hinic_is_speed_legal() argument
368 struct net_device *netdev = nic_dev->netdev; in hinic_is_speed_legal()
372 err = hinic_get_link_mode(nic_dev->hwdev, &link_mode); in hinic_is_speed_legal()
383 netif_err(nic_dev, drv, netdev, in hinic_is_speed_legal()
391 static int get_link_settings_type(struct hinic_dev *nic_dev, in get_link_settings_type() argument
397 err = hinic_port_get_cap(nic_dev, &port_cap); in get_link_settings_type()
407 netif_err(nic_dev, drv, nic_dev->netdev, "Not support autoneg\n"); in get_link_settings_type()
412 if (!hinic_is_speed_legal(nic_dev, speed)) in get_link_settings_type()
416 netif_err(nic_dev, drv, nic_dev->netdev, "Need to set speed when autoneg is off\n"); in get_link_settings_type()
423 static int set_link_settings_separate_cmd(struct hinic_dev *nic_dev, in set_link_settings_separate_cmd() argument
431 err = hinic_set_autoneg(nic_dev->hwdev, in set_link_settings_separate_cmd()
434 netif_err(nic_dev, drv, nic_dev->netdev, "%s autoneg failed\n", in set_link_settings_separate_cmd()
438 netif_info(nic_dev, drv, nic_dev->netdev, "%s autoneg successfully\n", in set_link_settings_separate_cmd()
445 err = hinic_set_speed(nic_dev->hwdev, speed_level); in set_link_settings_separate_cmd()
447 netif_err(nic_dev, drv, nic_dev->netdev, "Set speed %d failed\n", in set_link_settings_separate_cmd()
450 netif_info(nic_dev, drv, nic_dev->netdev, "Set speed %d successfully\n", in set_link_settings_separate_cmd()
457 static int hinic_set_settings_to_hw(struct hinic_dev *nic_dev, in hinic_set_settings_to_hw() argument
463 struct net_device *netdev = nic_dev->netdev; in hinic_set_settings_to_hw()
475 …netif_err(nic_dev, drv, netdev, "Failed to snprintf link speed, function return(%d) and dest_len(%… in hinic_set_settings_to_hw()
481 settings.func_id = HINIC_HWIF_FUNC_IDX(nic_dev->hwdev->hwif); in hinic_set_settings_to_hw()
486 err = hinic_set_link_settings(nic_dev->hwdev, &settings); in hinic_set_settings_to_hw()
489 netif_err(nic_dev, drv, netdev, "Set %s%sfailed\n", in hinic_set_settings_to_hw()
492 netif_info(nic_dev, drv, netdev, "Set %s%ssuccessfully\n", in hinic_set_settings_to_hw()
498 return set_link_settings_separate_cmd(nic_dev, set_settings, autoneg, in hinic_set_settings_to_hw()
504 struct hinic_dev *nic_dev = netdev_priv(netdev); in set_link_settings() local
508 err = get_link_settings_type(nic_dev, autoneg, speed, &set_settings); in set_link_settings()
513 err = hinic_set_settings_to_hw(nic_dev, set_settings, in set_link_settings()
516 netif_info(nic_dev, drv, netdev, "Nothing changed, exit without setting anything\n"); in set_link_settings()
532 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_drvinfo() local
534 struct hinic_hwdev *hwdev = nic_dev->hwdev; in hinic_get_drvinfo()
541 err = hinic_get_mgmt_version(nic_dev, mgmt_ver); in hinic_get_drvinfo()
553 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_ringparam() local
557 ring->rx_pending = nic_dev->rq_depth; in hinic_get_ringparam()
558 ring->tx_pending = nic_dev->sq_depth; in hinic_get_ringparam()
561 static int check_ringparam_valid(struct hinic_dev *nic_dev, in check_ringparam_valid() argument
565 netif_err(nic_dev, drv, nic_dev->netdev, in check_ringparam_valid()
574 netif_err(nic_dev, drv, nic_dev->netdev, in check_ringparam_valid()
588 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_set_ringparam() local
592 err = check_ringparam_valid(nic_dev, ring); in hinic_set_ringparam()
599 if (new_sq_depth == nic_dev->sq_depth && in hinic_set_ringparam()
600 new_rq_depth == nic_dev->rq_depth) in hinic_set_ringparam()
603 netif_info(nic_dev, drv, netdev, in hinic_set_ringparam()
605 nic_dev->sq_depth, nic_dev->rq_depth, in hinic_set_ringparam()
608 nic_dev->sq_depth = new_sq_depth; in hinic_set_ringparam()
609 nic_dev->rq_depth = new_rq_depth; in hinic_set_ringparam()
612 netif_info(nic_dev, drv, netdev, "Restarting netdev\n"); in hinic_set_ringparam()
615 netif_err(nic_dev, drv, netdev, in hinic_set_ringparam()
622 netif_err(nic_dev, drv, netdev, in hinic_set_ringparam()
634 struct hinic_dev *nic_dev = netdev_priv(netdev); in __hinic_get_coalesce() local
640 rx_intr_coal_info = &nic_dev->rx_intr_coalesce[0]; in __hinic_get_coalesce()
641 tx_intr_coal_info = &nic_dev->tx_intr_coalesce[0]; in __hinic_get_coalesce()
643 if (queue >= nic_dev->num_qps) { in __hinic_get_coalesce()
644 netif_err(nic_dev, drv, netdev, in __hinic_get_coalesce()
648 rx_intr_coal_info = &nic_dev->rx_intr_coalesce[queue]; in __hinic_get_coalesce()
649 tx_intr_coal_info = &nic_dev->tx_intr_coalesce[queue]; in __hinic_get_coalesce()
677 static int set_queue_coalesce(struct hinic_dev *nic_dev, u16 q_id, in set_queue_coalesce() argument
683 struct net_device *netdev = nic_dev->netdev; in set_queue_coalesce()
687 intr_coal = set_rx_coal ? &nic_dev->rx_intr_coalesce[q_id] : in set_queue_coalesce()
688 &nic_dev->tx_intr_coalesce[q_id]; in set_queue_coalesce()
696 if (!(nic_dev->flags & HINIC_INTF_UP) || in set_queue_coalesce()
697 q_id >= nic_dev->num_qps) in set_queue_coalesce()
700 msix_idx = set_rx_coal ? nic_dev->rxqs[q_id].rq->msix_entry : in set_queue_coalesce()
701 nic_dev->txqs[q_id].sq->msix_entry; in set_queue_coalesce()
707 err = hinic_set_interrupt_cfg(nic_dev->hwdev, &interrupt_info); in set_queue_coalesce()
709 netif_warn(nic_dev, drv, netdev, in set_queue_coalesce()
716 static int __set_hw_coal_param(struct hinic_dev *nic_dev, in __set_hw_coal_param() argument
724 for (i = 0; i < nic_dev->max_qps; i++) { in __set_hw_coal_param()
725 err = set_queue_coalesce(nic_dev, i, intr_coal, in __set_hw_coal_param()
731 if (queue >= nic_dev->num_qps) { in __set_hw_coal_param()
732 netif_err(nic_dev, drv, nic_dev->netdev, in __set_hw_coal_param()
736 err = set_queue_coalesce(nic_dev, queue, intr_coal, in __set_hw_coal_param()
748 struct hinic_dev *nic_dev = netdev_priv(netdev); in __hinic_set_coalesce() local
780 netif_warn(nic_dev, drv, netdev, "RX coalesce will be disabled\n"); in __hinic_set_coalesce()
783 netif_warn(nic_dev, drv, netdev, "TX coalesce will be disabled\n"); in __hinic_set_coalesce()
786 err = __set_hw_coal_param(nic_dev, &rx_intr_coal, queue, true); in __hinic_set_coalesce()
791 err = __set_hw_coal_param(nic_dev, &tx_intr_coal, queue, false); in __hinic_set_coalesce()
829 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_pauseparam() local
834 nic_cfg = &nic_dev->hwdev->func_to_io.nic_cfg; in hinic_get_pauseparam()
836 err = hinic_get_hw_pause_info(nic_dev->hwdev, &pause_info); in hinic_get_pauseparam()
852 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_set_pauseparam() local
857 err = hinic_port_get_cap(nic_dev, &port_cap); in hinic_set_pauseparam()
868 mutex_lock(&nic_dev->hwdev->func_to_io.nic_cfg.cfg_mutex); in hinic_set_pauseparam()
869 err = hinic_set_hw_pause_info(nic_dev->hwdev, &pause_info); in hinic_set_pauseparam()
871 mutex_unlock(&nic_dev->hwdev->func_to_io.nic_cfg.cfg_mutex); in hinic_set_pauseparam()
874 nic_dev->hwdev->func_to_io.nic_cfg.pause_set = true; in hinic_set_pauseparam()
875 nic_dev->hwdev->func_to_io.nic_cfg.auto_neg = pause->autoneg; in hinic_set_pauseparam()
876 nic_dev->hwdev->func_to_io.nic_cfg.rx_pause = pause->rx_pause; in hinic_set_pauseparam()
877 nic_dev->hwdev->func_to_io.nic_cfg.tx_pause = pause->tx_pause; in hinic_set_pauseparam()
878 mutex_unlock(&nic_dev->hwdev->func_to_io.nic_cfg.cfg_mutex); in hinic_set_pauseparam()
886 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_channels() local
887 struct hinic_hwdev *hwdev = nic_dev->hwdev; in hinic_get_channels()
889 channels->max_combined = nic_dev->max_qps; in hinic_get_channels()
896 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_set_channels() local
900 netif_info(nic_dev, drv, netdev, "Set max combined queue number from %d to %d\n", in hinic_set_channels()
901 hinic_hwdev_num_qps(nic_dev->hwdev), count); in hinic_set_channels()
904 netif_info(nic_dev, drv, netdev, "Restarting netdev\n"); in hinic_set_channels()
907 nic_dev->hwdev->nic_cap.num_qps = count; in hinic_set_channels()
911 netif_err(nic_dev, drv, netdev, in hinic_set_channels()
916 nic_dev->hwdev->nic_cap.num_qps = count; in hinic_set_channels()
925 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_rxfh_fields() local
931 if (!(nic_dev->flags & HINIC_RSS_ENABLE)) in hinic_get_rxfh_fields()
934 err = hinic_get_rss_type(nic_dev, nic_dev->rss_tmpl_idx, in hinic_get_rxfh_fields()
1008 struct hinic_dev *nic_dev = netdev_priv(dev); in hinic_set_rxfh_fields() local
1012 rss_type = &nic_dev->rss_type; in hinic_set_rxfh_fields()
1014 if (!(nic_dev->flags & HINIC_RSS_ENABLE)) in hinic_set_rxfh_fields()
1028 err = hinic_get_rss_type(nic_dev, in hinic_set_rxfh_fields()
1029 nic_dev->rss_tmpl_idx, rss_type); in hinic_set_rxfh_fields()
1052 err = hinic_set_rss_type(nic_dev, nic_dev->rss_tmpl_idx, in hinic_set_rxfh_fields()
1063 struct hinic_dev *nic_dev = netdev_priv(netdev); in __set_rss_rxfh() local
1067 if (!nic_dev->rss_indir_user) { in __set_rss_rxfh()
1068 nic_dev->rss_indir_user = in __set_rss_rxfh()
1071 if (!nic_dev->rss_indir_user) in __set_rss_rxfh()
1075 memcpy(nic_dev->rss_indir_user, indir, in __set_rss_rxfh()
1078 err = hinic_rss_set_indir_tbl(nic_dev, in __set_rss_rxfh()
1079 nic_dev->rss_tmpl_idx, indir); in __set_rss_rxfh()
1085 if (!nic_dev->rss_hkey_user) { in __set_rss_rxfh()
1086 nic_dev->rss_hkey_user = in __set_rss_rxfh()
1089 if (!nic_dev->rss_hkey_user) in __set_rss_rxfh()
1093 memcpy(nic_dev->rss_hkey_user, key, HINIC_RSS_KEY_SIZE); in __set_rss_rxfh()
1095 err = hinic_rss_set_template_tbl(nic_dev, in __set_rss_rxfh()
1096 nic_dev->rss_tmpl_idx, key); in __set_rss_rxfh()
1107 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_rxnfc() local
1112 cmd->data = nic_dev->num_qps; in hinic_get_rxnfc()
1125 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_rxfh() local
1129 if (!(nic_dev->flags & HINIC_RSS_ENABLE)) in hinic_get_rxfh()
1132 err = hinic_rss_get_hash_engine(nic_dev, in hinic_get_rxfh()
1133 nic_dev->rss_tmpl_idx, in hinic_get_rxfh()
1141 err = hinic_rss_get_indir_tbl(nic_dev, in hinic_get_rxfh()
1142 nic_dev->rss_tmpl_idx, in hinic_get_rxfh()
1149 err = hinic_rss_get_template_tbl(nic_dev, in hinic_get_rxfh()
1150 nic_dev->rss_tmpl_idx, in hinic_get_rxfh()
1160 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_set_rxfh() local
1163 if (!(nic_dev->flags & HINIC_RSS_ENABLE)) in hinic_set_rxfh()
1171 nic_dev->rss_hash_engine = (rxfh->hfunc == ETH_RSS_HASH_XOR) ? in hinic_set_rxfh()
1175 (nic_dev, nic_dev->rss_tmpl_idx, in hinic_set_rxfh()
1176 nic_dev->rss_hash_engine); in hinic_set_rxfh()
1351 static void get_drv_queue_stats(struct hinic_dev *nic_dev, u64 *data) in get_drv_queue_stats() argument
1358 for (qid = 0; qid < nic_dev->num_qps; qid++) { in get_drv_queue_stats()
1359 if (!nic_dev->txqs) in get_drv_queue_stats()
1362 hinic_txq_get_stats(&nic_dev->txqs[qid], &txq_stats); in get_drv_queue_stats()
1371 for (qid = 0; qid < nic_dev->num_qps; qid++) { in get_drv_queue_stats()
1372 if (!nic_dev->rxqs) in get_drv_queue_stats()
1375 hinic_rxq_get_stats(&nic_dev->rxqs[qid], &rxq_stats); in get_drv_queue_stats()
1388 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_ethtool_stats() local
1395 err = hinic_get_vport_stats(nic_dev, &vport_stats); in hinic_get_ethtool_stats()
1397 netif_err(nic_dev, drv, netdev, in hinic_get_ethtool_stats()
1414 err = hinic_get_phy_port_stats(nic_dev, port_stats); in hinic_get_ethtool_stats()
1416 netif_err(nic_dev, drv, netdev, in hinic_get_ethtool_stats()
1428 get_drv_queue_stats(nic_dev, data + i); in hinic_get_ethtool_stats()
1433 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_sset_count() local
1440 q_num = nic_dev->num_qps; in hinic_get_sset_count()
1456 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_strings() local
1470 for (i = 0; i < nic_dev->num_qps; i++) in hinic_get_strings()
1474 for (i = 0; i < nic_dev->num_qps; i++) in hinic_get_strings()
1484 static int hinic_run_lp_test(struct hinic_dev *nic_dev, u32 test_time) in hinic_run_lp_test() argument
1486 u8 *lb_test_rx_buf = nic_dev->lb_test_rx_buf; in hinic_run_lp_test()
1487 struct net_device *netdev = nic_dev->netdev; in hinic_run_lp_test()
1514 nic_dev->lb_test_rx_idx = 0; in hinic_run_lp_test()
1521 netif_err(nic_dev, drv, netdev, in hinic_run_lp_test()
1532 netif_err(nic_dev, drv, netdev, in hinic_run_lp_test()
1547 netif_err(nic_dev, drv, netdev, in hinic_run_lp_test()
1562 static int do_lp_test(struct hinic_dev *nic_dev, u32 flags, u32 test_time, in do_lp_test() argument
1565 struct net_device *netdev = nic_dev->netdev; in do_lp_test()
1571 if (hinic_set_loopback_mode(nic_dev->hwdev, in do_lp_test()
1573 netif_err(nic_dev, drv, netdev, in do_lp_test()
1585 nic_dev->lb_test_rx_buf = lb_test_rx_buf; in do_lp_test()
1586 nic_dev->lb_pkt_len = LP_PKT_LEN; in do_lp_test()
1587 nic_dev->flags |= HINIC_LP_TEST; in do_lp_test()
1588 err = hinic_run_lp_test(nic_dev, test_time); in do_lp_test()
1589 nic_dev->flags &= ~HINIC_LP_TEST; in do_lp_test()
1592 nic_dev->lb_test_rx_buf = NULL; in do_lp_test()
1596 if (hinic_set_loopback_mode(nic_dev->hwdev, in do_lp_test()
1598 netif_err(nic_dev, drv, netdev, in do_lp_test()
1610 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_diag_test() local
1618 if (!(nic_dev->flags & HINIC_INTF_UP)) { in hinic_diag_test()
1619 netif_err(nic_dev, drv, netdev, in hinic_diag_test()
1629 err = do_lp_test(nic_dev, eth_test->flags, LP_DEFAULT_TIME, in hinic_diag_test()
1638 err = hinic_port_link_state(nic_dev, &link_state); in hinic_diag_test()
1646 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_set_phys_id() local
1650 port = nic_dev->hwdev->port_id; in hinic_set_phys_id()
1654 err = hinic_set_led_status(nic_dev->hwdev, port, in hinic_set_phys_id()
1658 netif_err(nic_dev, drv, netdev, in hinic_set_phys_id()
1663 err = hinic_reset_led_status(nic_dev->hwdev, port); in hinic_set_phys_id()
1665 netif_err(nic_dev, drv, netdev, in hinic_set_phys_id()
1679 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_module_info() local
1684 err = hinic_get_sfp_type(nic_dev->hwdev, &sfp_type, &sfp_type_ext); in hinic_get_module_info()
1712 netif_warn(nic_dev, drv, netdev, in hinic_get_module_info()
1723 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_module_eeprom() local
1733 err = hinic_get_sfp_eeprom(nic_dev->hwdev, sfp_data, &len); in hinic_get_module_eeprom()
1746 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_link_ext_state() local
1751 if (nic_dev->cable_unplugged) in hinic_get_link_ext_state()
1754 else if (nic_dev->module_unrecognized) in hinic_get_link_ext_state()
1829 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_set_ethtool_ops() local
1831 if (!HINIC_IS_VF(nic_dev->hwdev->hwif)) in hinic_set_ethtool_ops()