Lines Matching refs:pf

209 ixl_print_nvm_version(struct ixl_pf *pf)
211 struct i40e_hw *hw = &pf->hw;
212 device_t dev = pf->dev;
233 ixl_get_fw_mode(struct ixl_pf *pf)
235 struct i40e_hw *hw = &pf->hw;
240 if (pf->recovery_mode)
261 * @pf: PF structure
269 ixl_pf_reset(struct ixl_pf *pf)
271 struct i40e_hw *hw = &pf->hw;
275 fw_mode = ixl_get_fw_mode(pf);
276 ixl_dbg_info(pf, "%s: before PF reset FW mode: 0x%08x\n", __func__, fw_mode);
278 ixl_set_state(&pf->state, IXL_STATE_RECOVERY_MODE);
289 fw_mode = ixl_get_fw_mode(pf);
290 ixl_dbg_info(pf, "%s: after PF reset FW mode: 0x%08x\n", __func__, fw_mode);
292 ixl_set_state(&pf->state, IXL_STATE_RECOVERY_MODE);
297 device_printf(pf->dev,
300 device_printf(pf->dev, "PF reset failure %s\n",
307 * @pf: PF structure
314 ixl_setup_hmc(struct ixl_pf *pf)
316 struct i40e_hw *hw = &pf->hw;
322 device_printf(pf->dev, "init_lan_hmc failed: %s\n",
329 device_printf(pf->dev, "configure_lan_hmc failed: %s\n",
339 * @pf: PF structure
345 ixl_shutdown_hmc(struct ixl_pf *pf)
347 struct i40e_hw *hw = &pf->hw;
356 device_printf(pf->dev,
364 ixl_configure_itr(struct ixl_pf *pf)
366 ixl_configure_tx_itr(pf);
367 ixl_configure_rx_itr(pf);
377 ixl_get_hw_capabilities(struct ixl_pf *pf)
380 struct i40e_hw *hw = &pf->hw;
381 device_t dev = pf->dev;
387 if (IXL_PF_IN_RECOVERY_MODE(pf)) {
404 if ((pf->hw.aq.asq_last_status == I40E_AQ_RC_ENOMEM) &&
420 i2c_intfc_num = ixl_find_i2c_interface(pf);
422 pf->has_i2c = true;
425 switch (pf->i2c_access_method) {
428 pf->read_i2c_byte = ixl_read_i2c_byte_aq;
429 pf->write_i2c_byte = ixl_write_i2c_byte_aq;
431 pf->read_i2c_byte = ixl_read_i2c_byte_reg;
432 pf->write_i2c_byte = ixl_write_i2c_byte_reg;
437 pf->read_i2c_byte = ixl_read_i2c_byte_aq;
438 pf->write_i2c_byte = ixl_write_i2c_byte_aq;
441 pf->read_i2c_byte = ixl_read_i2c_byte_reg;
442 pf->write_i2c_byte = ixl_write_i2c_byte_reg;
445 pf->read_i2c_byte = ixl_read_i2c_byte_bb;
446 pf->write_i2c_byte = ixl_write_i2c_byte_bb;
455 ixl_set_state(&pf->state, IXL_STATE_LINK_ACTIVE_ON_DOWN);
463 (hw->func_caps.mdio_port_mode == 1 && pf->has_i2c) ? "MDIO & I2C" :
472 ixl_set_initial_advertised_speeds(struct ixl_pf *pf)
474 device_t dev = pf->dev;
481 err = ixl_set_advertised_speeds(pf, pf->supported_speeds, true);
489 pf->advertised_speed =
490 ixl_convert_sysctl_aq_link_speed(pf->supported_speeds, false);
494 ixl_teardown_hw_structs(struct ixl_pf *pf)
497 struct i40e_hw *hw = &pf->hw;
498 device_t dev = pf->dev;
519 ixl_pf_qmgr_release(&pf->qmgr, &pf->qtag);
739 ixl_link_up_msg(struct ixl_pf *pf)
741 struct i40e_hw *hw = &pf->hw;
742 if_t ifp = pf->vsi.ifp;
778 ixl_configure_intr0_msix(struct ixl_pf *pf)
780 struct i40e_hw *hw = &pf->hw;
901 ixl_switch_config(struct ixl_pf *pf)
903 struct i40e_hw *hw = &pf->hw;
904 struct ixl_vsi *vsi = &pf->vsi;
917 " aq_error %d\n", ret, pf->hw.aq.asq_last_status);
920 if (pf->dbg_mask & IXL_DBG_SWITCH_INFO) {
973 struct ixl_pf *pf = (struct ixl_pf *)arg1;
974 device_t dev = pf->dev;
978 requested_tx_itr = pf->tx_itr;
982 if (pf->dynamic_tx_itr) {
994 pf->tx_itr = requested_tx_itr;
995 ixl_configure_tx_itr(pf);
1007 struct ixl_pf *pf = (struct ixl_pf *)arg1;
1008 device_t dev = pf->dev;
1012 requested_rx_itr = pf->rx_itr;
1016 if (pf->dynamic_rx_itr) {
1028 pf->rx_itr = requested_rx_itr;
1029 ixl_configure_rx_itr(pf);
1094 ixl_set_rss_key(struct ixl_pf *pf)
1096 struct i40e_hw *hw = &pf->hw;
1097 struct ixl_vsi *vsi = &pf->vsi;
1098 device_t dev = pf->dev;
1128 ixl_set_rss_pctypes(struct ixl_pf *pf)
1130 struct i40e_hw *hw = &pf->hw;
1169 ixl_config_rss(struct ixl_pf *pf)
1171 ixl_set_rss_key(pf);
1172 ixl_set_rss_pctypes(pf);
1173 ixl_set_rss_hlut(pf);
1209 struct ixl_pf *pf = (struct ixl_pf *)vsi->back;
1211 ixl_dbg_filter(pf, "%s: start\n", __func__);
1218 i40e_aq_set_vsi_broadcast(&pf->hw, vsi->seid, TRUE, NULL);
1235 if (pf->enable_tx_fc_filter)
1288 struct ixl_pf *pf;
1293 pf = vsi->back;
1294 dev = pf->dev;
1297 ixl_dbg_filter(pf, "ixl_add_filter: " MAC_FORMAT ", vlan %4d\n",
1506 struct ixl_pf *pf;
1512 pf = vsi->back;
1514 hw = &pf->hw;
1516 ixl_dbg_filter(pf, "ixl_add_hw_filters: cnt: %d\n", cnt);
1519 ixl_dbg_info(pf, "ixl_add_hw_filters: cnt == 0\n");
1546 ixl_dbg_filter(pf, "ADD: " MAC_FORMAT "\n",
1579 ixl_dbg_filter(pf,
1605 struct ixl_pf *pf;
1612 pf = vsi->back;
1613 hw = &pf->hw;
1616 ixl_dbg_filter(pf, "%s: start, cnt: %d\n", __func__, cnt);
1636 ixl_dbg_filter(pf, "DEL: " MAC_FORMAT "\n",
1674 ixl_dbg_filter(pf, "%s: end\n", __func__);
1678 ixl_enable_tx_ring(struct ixl_pf *pf, struct ixl_pf_qtag *qtag, u16 vsi_qidx)
1680 struct i40e_hw *hw = &pf->hw;
1687 ixl_dbg(pf, IXL_DBG_EN_DIS,
1705 device_printf(pf->dev, "TX queue %d still disabled!\n",
1714 ixl_enable_rx_ring(struct ixl_pf *pf, struct ixl_pf_qtag *qtag, u16 vsi_qidx)
1716 struct i40e_hw *hw = &pf->hw;
1723 ixl_dbg(pf, IXL_DBG_EN_DIS,
1739 device_printf(pf->dev, "RX queue %d still disabled!\n",
1748 ixl_enable_ring(struct ixl_pf *pf, struct ixl_pf_qtag *qtag, u16 vsi_qidx)
1752 error = ixl_enable_tx_ring(pf, qtag, vsi_qidx);
1756 error = ixl_enable_rx_ring(pf, qtag, vsi_qidx);
1764 ixl_disable_tx_ring(struct ixl_pf *pf, struct ixl_pf_qtag *qtag, u16 vsi_qidx)
1766 struct i40e_hw *hw = &pf->hw;
1773 ixl_dbg(pf, IXL_DBG_EN_DIS,
1791 device_printf(pf->dev, "TX queue %d still enabled!\n",
1803 ixl_disable_rx_ring(struct ixl_pf *pf, struct ixl_pf_qtag *qtag, u16 vsi_qidx)
1805 struct i40e_hw *hw = &pf->hw;
1812 ixl_dbg(pf, IXL_DBG_EN_DIS,
1827 device_printf(pf->dev, "RX queue %d still enabled!\n",
1836 ixl_disable_ring(struct ixl_pf *pf, struct ixl_pf_qtag *qtag, u16 vsi_qidx)
1840 error = ixl_disable_tx_ring(pf, qtag, vsi_qidx);
1844 error = ixl_disable_rx_ring(pf, qtag, vsi_qidx);
1849 ixl_handle_tx_mdd_event(struct ixl_pf *pf)
1851 struct i40e_hw *hw = &pf->hw;
1852 device_t dev = pf->dev;
1888 for (int i = 0; i < pf->num_vfs; i++) {
1889 vf = &(pf->vfs[i]);
1903 " on TX queue %d, pf number %d (PF-%d), vf number %d (VF-%d)\n",
1908 " on TX queue %d, pf number %d, vf number %d (VF-%d)\n",
1913 " on TX queue %d, pf number %d (PF-%d)\n",
1922 ixl_handle_rx_mdd_event(struct ixl_pf *pf)
1924 struct i40e_hw *hw = &pf->hw;
1925 device_t dev = pf->dev;
1962 for (int i = 0; i < pf->num_vfs; i++) {
1963 vf = &(pf->vfs[i]);
1977 " on RX queue %d, pf number %d (PF-%d), (VF-%d)\n",
1982 " on RX queue %d, pf number %d, (VF-%d)\n",
1987 " on RX queue %d, pf number %d (PF-%d)\n",
2002 ixl_handle_mdd_event(struct ixl_pf *pf)
2004 struct i40e_hw *hw = &pf->hw;
2011 ixl_handle_tx_mdd_event(pf);
2012 ixl_handle_rx_mdd_event(pf);
2014 ixl_clear_state(&pf->state, IXL_STATE_MDD_PENDING);
2066 ixl_handle_empr_reset(struct ixl_pf *pf)
2068 struct ixl_vsi *vsi = &pf->vsi;
2071 ixl_prepare_for_reset(pf, is_up);
2078 ixl_pf_reset(pf);
2080 if (!IXL_PF_IN_RECOVERY_MODE(pf) &&
2081 ixl_get_fw_mode(pf) == IXL_FW_MODE_RECOVERY) {
2082 ixl_set_state(&pf->state, IXL_STATE_RECOVERY_MODE);
2083 device_printf(pf->dev,
2085 pf->link_up = FALSE;
2086 ixl_update_link_status(pf);
2089 ixl_rebuild_hw_structs_after_reset(pf, is_up);
2091 ixl_clear_state(&pf->state, IXL_STATE_RESETTING);
2095 ixl_update_stats_counters(struct ixl_pf *pf)
2097 struct i40e_hw *hw = &pf->hw;
2098 struct ixl_vsi *vsi = &pf->vsi;
2100 u64 prev_link_xoff_rx = pf->stats.link_xoff_rx;
2102 struct i40e_hw_port_stats *nsd = &pf->stats;
2103 struct i40e_hw_port_stats *osd = &pf->stats_offsets;
2107 pf->stat_offsets_loaded,
2110 pf->stat_offsets_loaded,
2114 pf->stat_offsets_loaded,
2118 pf->stat_offsets_loaded,
2121 pf->stat_offsets_loaded,
2126 pf->stat_offsets_loaded,
2131 pf->stat_offsets_loaded,
2136 pf->stat_offsets_loaded,
2141 pf->stat_offsets_loaded,
2146 pf->stat_offsets_loaded,
2151 pf->stat_offsets_loaded,
2156 pf->stat_offsets_loaded,
2160 pf->stat_offsets_loaded,
2164 pf->stat_offsets_loaded,
2168 pf->stat_offsets_loaded,
2174 pf->stat_offsets_loaded,
2177 pf->stat_offsets_loaded,
2180 pf->stat_offsets_loaded,
2183 pf->stat_offsets_loaded,
2190 if (pf->stats.link_xoff_rx != prev_link_xoff_rx)
2196 pf->stat_offsets_loaded,
2200 pf->stat_offsets_loaded,
2204 pf->stat_offsets_loaded,
2208 pf->stat_offsets_loaded,
2212 pf->stat_offsets_loaded,
2216 pf->stat_offsets_loaded,
2220 pf->stat_offsets_loaded,
2226 pf->stat_offsets_loaded,
2230 pf->stat_offsets_loaded,
2234 pf->stat_offsets_loaded,
2238 pf->stat_offsets_loaded,
2242 pf->stat_offsets_loaded,
2246 pf->stat_offsets_loaded,
2250 pf->stat_offsets_loaded,
2254 pf->stat_offsets_loaded,
2257 pf->stat_offsets_loaded,
2260 pf->stat_offsets_loaded,
2263 pf->stat_offsets_loaded,
2268 i40e_lpi_stat_update(hw, pf->stat_offsets_loaded,
2272 pf->stat_offsets_loaded = true;
2278 for (int i = 0; i < pf->num_vfs; i++) {
2279 vf = &pf->vfs[i];
2281 ixl_update_eth_stats(&pf->vfs[i].vsi);
2291 struct ixl_pf *pf = (struct ixl_pf *)vsi->back;
2292 struct i40e_hw *hw = &pf->hw;
2347 struct ixl_pf *pf;
2353 pf = vsi->back;
2355 nsd = &pf->stats;
2390 * Reset all of the stats for the given pf
2393 ixl_pf_reset_stats(struct ixl_pf *pf)
2395 bzero(&pf->stats, sizeof(struct i40e_hw_port_stats));
2396 bzero(&pf->stats_offsets, sizeof(struct i40e_hw_port_stats));
2397 pf->stat_offsets_loaded = false;
2458 ixl_add_sysctls_recovery_mode(struct ixl_pf *pf)
2460 device_t dev = pf->dev;
2471 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, pf, 0,
2483 &pf->hw.debug_mask, 0, "Shared code debug message level");
2487 &pf->dbg_mask, 0, "Non-shared code debug message level");
2492 pf, 0, ixl_sysctl_dump_debug_data, "A", "Dump Debug Data from FW");
2497 pf, 0, ixl_sysctl_do_pf_reset, "I", "Tell HW to initiate a PF reset");
2502 pf, 0, ixl_sysctl_do_core_reset, "I", "Tell HW to initiate a CORE reset");
2507 pf, 0, ixl_sysctl_do_global_reset, "I", "Tell HW to initiate a GLOBAL reset");
2512 pf, 0, ixl_sysctl_queue_interrupt_table, "A", "View MSI-X indices for TX/RX queues");
2516 ixl_add_device_sysctls(struct ixl_pf *pf)
2518 device_t dev = pf->dev;
2519 struct i40e_hw *hw = &pf->hw;
2536 pf, 0, ixl_sysctl_set_flowcntl, "I", IXL_SYSCTL_HELP_FC);
2540 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, pf, 0,
2545 CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, pf, 0,
2550 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, pf, 0,
2555 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, pf, 0,
2560 CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, pf, 0,
2566 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, pf, 0,
2572 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, pf, 0,
2578 &pf->dynamic_rx_itr, 0, "Enable dynamic RX ITR");
2582 &pf->dynamic_tx_itr, 0, "Enable dynamic TX ITR");
2593 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, pf, 0,
2598 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, pf, 0,
2603 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, pf, 0,
2609 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, pf, 0,
2615 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, pf, 0,
2622 pf, 0, ixl_sysctl_fw_lldp, "I", IXL_SYSCTL_HELP_FW_LLDP);
2631 pf, 0, ixl_sysctl_eee_enable, "I",
2635 CTLFLAG_RD | CTLFLAG_MPSAFE, &pf->stats.tx_lpi_status, 0,
2639 CTLFLAG_RD | CTLFLAG_MPSAFE, &pf->stats.rx_lpi_status, 0,
2643 CTLFLAG_RD | CTLFLAG_MPSAFE, &pf->stats.tx_lpi_count,
2647 CTLFLAG_RD | CTLFLAG_MPSAFE, &pf->stats.rx_lpi_count,
2653 pf, 0, ixl_sysctl_set_link_active, "I",
2665 &pf->hw.debug_mask, 0, "Shared code debug message level");
2669 &pf->dbg_mask, 0, "Non-shared code debug message level");
2674 pf, 0, ixl_sysctl_link_status, "A", IXL_SYSCTL_HELP_LINK_STATUS);
2679 pf, 1, ixl_sysctl_phy_abilities, "A", "Initial PHY Abilities");
2684 pf, 0, ixl_sysctl_phy_abilities, "A", "PHY Abilities");
2689 pf, 0, ixl_sysctl_sw_filter_list, "A", "SW Filter List");
2694 pf, 0, ixl_sysctl_hw_res_alloc, "A", "HW Resource Allocation");
2699 pf, 0, ixl_sysctl_switch_config, "A", "HW Switch Configuration");
2704 pf, 0, ixl_sysctl_switch_vlans, "I", "HW Switch VLAN Configuration");
2709 pf, 0, ixl_sysctl_hkey, "A", "View RSS key");
2714 pf, 0, ixl_sysctl_hlut, "A", "View RSS lookup table");
2719 pf, 0, ixl_sysctl_hena, "LU", "View enabled packet types for RSS");
2724 pf, 0, ixl_sysctl_fw_link_management, "I", "Disable FW Link Management");
2729 pf, 0, ixl_sysctl_dump_debug_data, "A", "Dump Debug Data from FW");
2734 pf, 0, ixl_sysctl_do_pf_reset, "I", "Tell HW to initiate a PF reset");
2739 pf, 0, ixl_sysctl_do_core_reset, "I", "Tell HW to initiate a CORE reset");
2744 pf, 0, ixl_sysctl_do_global_reset, "I", "Tell HW to initiate a GLOBAL reset");
2749 pf, 0, ixl_sysctl_queue_interrupt_table, "A", "View MSI-X indices for TX/RX queues");
2753 pf, 0, ixl_sysctl_phy_statistics, "A", "PHY Statistics");
2755 if (pf->has_i2c) {
2759 pf, 0, ixl_sysctl_read_i2c_byte, "I", IXL_SYSCTL_HELP_READ_I2C);
2764 pf, 0, ixl_sysctl_write_i2c_byte, "I", IXL_SYSCTL_HELP_WRITE_I2C);
2769 pf, 0, ixl_sysctl_read_i2c_diag_data, "A", "Dump selected diagnostic data from FW");
2780 struct ixl_pf *pf = (struct ixl_pf *)arg1;
2783 queues = (int)ixl_pf_qmgr_get_num_free(&pf->qmgr);
2841 struct ixl_pf *pf = (struct ixl_pf *)arg1;
2842 struct i40e_hw *hw = &pf->hw;
2845 ixl_update_link_status(pf);
2886 ixl_set_advertised_speeds(struct ixl_pf *pf, int speeds, bool from_aq)
2888 struct i40e_hw *hw = &pf->hw;
2889 device_t dev = pf->dev;
2949 struct ixl_pf *pf = (struct ixl_pf *)arg1;
2950 int supported = ixl_convert_sysctl_aq_link_speed(pf->supported_speeds, false);
2972 struct ixl_pf *pf = (struct ixl_pf *)arg1;
2973 device_t dev = pf->dev;
2979 requested_ls = pf->advertised_speed;
2983 if (IXL_PF_IN_RECOVERY_MODE(pf)) {
2993 ixl_convert_sysctl_aq_link_speed(pf->supported_speeds, false));
2999 if ((converted_speeds | pf->supported_speeds) != pf->supported_speeds) {
3002 ixl_convert_sysctl_aq_link_speed(pf->supported_speeds, false));
3006 error = ixl_set_advertised_speeds(pf, requested_ls, false);
3010 pf->advertised_speed = requested_ls;
3011 ixl_update_link_status(pf);
3047 ixl_get_bus_info(struct ixl_pf *pf)
3049 struct i40e_hw *hw = &pf->hw;
3050 device_t dev = pf->dev;
3086 max_speed = ixl_max_aq_speed_to_value(pf->supported_speeds) / 1000000;
3101 struct ixl_pf *pf = (struct ixl_pf *)arg1;
3102 struct i40e_hw *hw = &pf->hw;
3142 ixl_handle_nvmupd_cmd(struct ixl_pf *pf, struct ifdrv *ifd)
3144 struct i40e_hw *hw = &pf->hw;
3146 device_t dev = pf->dev;
3177 if (pf->dbg_mask & IXL_DBG_NVMUPD)
3180 if (IXL_PF_IS_RESETTING(pf)) {
3184 if (!(IXL_PF_IS_RESETTING(pf)))
3189 if (IXL_PF_IS_RESETTING(pf)) {
3226 // IXL_PF_LOCK(pf);
3228 // IXL_PF_UNLOCK(pf);
3239 if (status != 0 && (pf->dbg_mask & IXL_DBG_NVMUPD) != 0)
3254 ixl_find_i2c_interface(struct ixl_pf *pf)
3256 struct i40e_hw *hw = &pf->hw;
3274 ixl_set_link(struct ixl_pf *pf, bool enable)
3276 struct i40e_hw *hw = &pf->hw;
3277 device_t dev = pf->dev;
3323 switch (pf->fc) {
3419 ixl_aq_get_link_status(struct ixl_pf *pf, struct i40e_aqc_get_link_status *link_status)
3421 device_t dev = pf->dev;
3422 struct i40e_hw *hw = &pf->hw;
3456 struct ixl_pf *pf = (struct ixl_pf *)arg1;
3457 device_t dev = pf->dev;
3468 error = ixl_aq_get_link_status(pf, &link_status);
3506 struct ixl_pf *pf = (struct ixl_pf *)arg1;
3507 struct i40e_hw *hw = &pf->hw;
3508 device_t dev = pf->dev;
3598 struct ixl_pf *pf = (struct ixl_pf *)arg1;
3599 struct i40e_hw *hw = &pf->hw;
3600 device_t dev = pf->dev;
3653 struct ixl_pf *pf = (struct ixl_pf *)arg1;
3654 struct ixl_vsi *vsi = &pf->vsi;
3656 device_t dev = pf->dev;
3690 if (pf->num_vfs > 0) {
3692 for (int i = 0; i < pf->num_vfs; i++) {
3693 vf = &pf->vfs[i];
3773 struct ixl_pf *pf = (struct ixl_pf *)arg1;
3774 struct i40e_hw *hw = &pf->hw;
3775 device_t dev = pf->dev;
3917 struct ixl_pf *pf = (struct ixl_pf *)arg1;
3918 struct i40e_hw *hw = &pf->hw;
3919 device_t dev = pf->dev;
4010 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4011 struct i40e_hw *hw = &pf->hw;
4012 device_t dev = pf->dev;
4044 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4045 struct i40e_hw *hw = &pf->hw;
4046 device_t dev = pf->dev;
4064 status = i40e_aq_get_rss_key(hw, pf->vsi.vsi_num, &key_data);
4134 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4135 struct i40e_hw *hw = &pf->hw;
4136 device_t dev = pf->dev;
4152 status = i40e_aq_get_rss_lut(hw, pf->vsi.vsi_num, TRUE, hlut, sizeof(hlut));
4175 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4176 struct i40e_hw *hw = &pf->hw;
4196 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4197 struct i40e_hw *hw = &pf->hw;
4198 device_t dev = pf->dev;
4238 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4239 device_t dev = pf->dev;
4249 error = pf->read_i2c_byte(pf, 0, 0xA0, &output);
4262 pf->read_i2c_byte(pf, 92, 0xA0, &output);
4271 pf->read_i2c_byte(pf, offset, 0xA2, &output);
4275 pf->read_i2c_byte(pf, offset, 0xA2, &output);
4286 pf->read_i2c_byte(pf, offset, 0xA0, &output);
4290 pf->read_i2c_byte(pf, offset, 0xA0, &output);
4295 pf->read_i2c_byte(pf, offset, 0xA0, &output);
4299 pf->read_i2c_byte(pf, offset, 0xA0, &output);
4325 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4326 device_t dev = pf->dev;
4341 error = pf->read_i2c_byte(pf, offset, dev_addr, &output);
4362 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4363 device_t dev = pf->dev;
4379 error = pf->write_i2c_byte(pf, offset, dev_addr, value);
4388 ixl_get_fec_config(struct ixl_pf *pf, struct i40e_aq_get_phy_abilities_resp *abilities,
4391 device_t dev = pf->dev;
4392 struct i40e_hw *hw = &pf->hw;
4395 if (IXL_PF_IN_RECOVERY_MODE(pf))
4413 ixl_set_fec_config(struct ixl_pf *pf, struct i40e_aq_get_phy_abilities_resp *abilities,
4416 device_t dev = pf->dev;
4417 struct i40e_hw *hw = &pf->hw;
4451 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4455 error = ixl_get_fec_config(pf, &abilities, I40E_AQ_ENABLE_FEC_KR, &mode);
4463 return ixl_set_fec_config(pf, &abilities, I40E_AQ_SET_FEC_ABILITY_KR, !!(mode));
4469 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4473 error = ixl_get_fec_config(pf, &abilities, I40E_AQ_ENABLE_FEC_RS, &mode);
4481 return ixl_set_fec_config(pf, &abilities, I40E_AQ_SET_FEC_ABILITY_RS, !!(mode));
4487 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4491 error = ixl_get_fec_config(pf, &abilities, I40E_AQ_REQUEST_FEC_KR, &mode);
4499 return ixl_set_fec_config(pf, &abilities, I40E_AQ_SET_FEC_REQUEST_KR, !!(mode));
4505 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4509 error = ixl_get_fec_config(pf, &abilities, I40E_AQ_REQUEST_FEC_RS, &mode);
4517 return ixl_set_fec_config(pf, &abilities, I40E_AQ_SET_FEC_REQUEST_RS, !!(mode));
4523 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4527 error = ixl_get_fec_config(pf, &abilities, I40E_AQ_ENABLE_FEC_AUTO, &mode);
4535 return ixl_set_fec_config(pf, &abilities, I40E_AQ_SET_FEC_AUTO, !!(mode));
4541 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4542 struct i40e_hw *hw = &pf->hw;
4543 device_t dev = pf->dev;
4630 ixl_start_fw_lldp(struct ixl_pf *pf)
4632 struct i40e_hw *hw = &pf->hw;
4639 device_printf(pf->dev,
4643 device_printf(pf->dev,
4649 device_printf(pf->dev,
4657 ixl_clear_state(&pf->state, IXL_STATE_FW_LLDP_DISABLED);
4662 ixl_stop_fw_lldp(struct ixl_pf *pf)
4664 struct i40e_hw *hw = &pf->hw;
4665 device_t dev = pf->dev;
4694 ixl_set_state(&pf->state, IXL_STATE_FW_LLDP_DISABLED);
4701 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4704 state = new_state = !ixl_test_state(&pf->state, IXL_STATE_FW_LLDP_DISABLED);
4716 return ixl_stop_fw_lldp(pf);
4718 return ixl_start_fw_lldp(pf);
4724 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4730 state = new_state = ixl_test_state(&pf->state, IXL_STATE_EEE_ENABLED);
4742 cmd_status = i40e_enable_eee(&pf->hw, (bool)(!!new_state));
4747 ixl_clear_state(&pf->state, IXL_STATE_EEE_ENABLED);
4749 ixl_set_state(&pf->state, IXL_STATE_EEE_ENABLED);
4761 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4764 state = ixl_test_state(&pf->state, IXL_STATE_LINK_ACTIVE_ON_DOWN);
4771 ixl_clear_state(&pf->state, IXL_STATE_LINK_ACTIVE_ON_DOWN);
4773 ixl_set_state(&pf->state, IXL_STATE_LINK_ACTIVE_ON_DOWN);
4780 ixl_attach_get_link_status(struct ixl_pf *pf)
4782 struct i40e_hw *hw = &pf->hw;
4783 device_t dev = pf->dev;
4801 status = i40e_get_link_status(hw, &pf->link_up);
4811 ixl_set_state(&pf->state, IXL_STATE_LINK_POLLING);
4812 pf->link_poll_start = getsbinuptime();
4815 ixl_dbg_link(pf, "%s link_up: %d\n", __func__, pf->link_up);
4818 if (pf->fc == -1)
4819 pf->fc = hw->fc.current_mode;
4827 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4836 ixl_set_state(&pf->state, IXL_STATE_PF_RESET_REQ);
4844 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4845 struct i40e_hw *hw = &pf->hw;
4861 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4862 struct i40e_hw *hw = &pf->hw;
4882 struct ixl_pf *pf = (struct ixl_pf *)arg1;
4883 struct ixl_vsi *vsi = &pf->vsi;
4884 device_t dev = pf->dev;