Merge branch 'bnxt_en-misc-small-fixes'
Michael Chan says: ==================== bnxt_en: Misc. small fixes. Fixes include moving the initial function reset, notifying the RDMA driver during tx timeout, setting dcbx_cap properly depending on whether the firmware agent is running or not, and an autoneg related improvement. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
81dca07b3b
|
@ -4465,6 +4465,10 @@ static int bnxt_hwrm_func_qcfg(struct bnxt *bp)
|
||||||
vf->vlan = le16_to_cpu(resp->vlan) & VLAN_VID_MASK;
|
vf->vlan = le16_to_cpu(resp->vlan) & VLAN_VID_MASK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (BNXT_PF(bp) && (le16_to_cpu(resp->flags) &
|
||||||
|
FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED))
|
||||||
|
bp->flags |= BNXT_FLAG_FW_LLDP_AGENT;
|
||||||
|
|
||||||
switch (resp->port_partition_type) {
|
switch (resp->port_partition_type) {
|
||||||
case FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0:
|
case FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0:
|
||||||
case FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5:
|
case FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5:
|
||||||
|
@ -5507,8 +5511,9 @@ static int bnxt_hwrm_phy_qcaps(struct bnxt *bp)
|
||||||
bp->lpi_tmr_hi = le32_to_cpu(resp->valid_tx_lpi_timer_high) &
|
bp->lpi_tmr_hi = le32_to_cpu(resp->valid_tx_lpi_timer_high) &
|
||||||
PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK;
|
PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK;
|
||||||
}
|
}
|
||||||
link_info->support_auto_speeds =
|
if (resp->supported_speeds_auto_mode)
|
||||||
le16_to_cpu(resp->supported_speeds_auto_mode);
|
link_info->support_auto_speeds =
|
||||||
|
le16_to_cpu(resp->supported_speeds_auto_mode);
|
||||||
|
|
||||||
hwrm_phy_qcaps_exit:
|
hwrm_phy_qcaps_exit:
|
||||||
mutex_unlock(&bp->hwrm_cmd_lock);
|
mutex_unlock(&bp->hwrm_cmd_lock);
|
||||||
|
@ -6495,8 +6500,14 @@ static void bnxt_reset_task(struct bnxt *bp, bool silent)
|
||||||
if (!silent)
|
if (!silent)
|
||||||
bnxt_dbg_dump_states(bp);
|
bnxt_dbg_dump_states(bp);
|
||||||
if (netif_running(bp->dev)) {
|
if (netif_running(bp->dev)) {
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
if (!silent)
|
||||||
|
bnxt_ulp_stop(bp);
|
||||||
bnxt_close_nic(bp, false, false);
|
bnxt_close_nic(bp, false, false);
|
||||||
bnxt_open_nic(bp, false, false);
|
rc = bnxt_open_nic(bp, false, false);
|
||||||
|
if (!silent && !rc)
|
||||||
|
bnxt_ulp_start(bp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7444,6 +7455,10 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
if (rc)
|
if (rc)
|
||||||
goto init_err_pci_clean;
|
goto init_err_pci_clean;
|
||||||
|
|
||||||
|
rc = bnxt_hwrm_func_reset(bp);
|
||||||
|
if (rc)
|
||||||
|
goto init_err_pci_clean;
|
||||||
|
|
||||||
bnxt_hwrm_fw_set_time(bp);
|
bnxt_hwrm_fw_set_time(bp);
|
||||||
|
|
||||||
dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG |
|
dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG |
|
||||||
|
@ -7554,10 +7569,6 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
if (rc)
|
if (rc)
|
||||||
goto init_err_pci_clean;
|
goto init_err_pci_clean;
|
||||||
|
|
||||||
rc = bnxt_hwrm_func_reset(bp);
|
|
||||||
if (rc)
|
|
||||||
goto init_err_pci_clean;
|
|
||||||
|
|
||||||
rc = bnxt_init_int_mode(bp);
|
rc = bnxt_init_int_mode(bp);
|
||||||
if (rc)
|
if (rc)
|
||||||
goto init_err_pci_clean;
|
goto init_err_pci_clean;
|
||||||
|
|
|
@ -993,6 +993,7 @@ struct bnxt {
|
||||||
BNXT_FLAG_ROCEV2_CAP)
|
BNXT_FLAG_ROCEV2_CAP)
|
||||||
#define BNXT_FLAG_NO_AGG_RINGS 0x20000
|
#define BNXT_FLAG_NO_AGG_RINGS 0x20000
|
||||||
#define BNXT_FLAG_RX_PAGE_MODE 0x40000
|
#define BNXT_FLAG_RX_PAGE_MODE 0x40000
|
||||||
|
#define BNXT_FLAG_FW_LLDP_AGENT 0x80000
|
||||||
#define BNXT_FLAG_CHIP_NITRO_A0 0x1000000
|
#define BNXT_FLAG_CHIP_NITRO_A0 0x1000000
|
||||||
|
|
||||||
#define BNXT_FLAG_ALL_CONFIG_FEATS (BNXT_FLAG_TPA | \
|
#define BNXT_FLAG_ALL_CONFIG_FEATS (BNXT_FLAG_TPA | \
|
||||||
|
|
|
@ -474,7 +474,7 @@ void bnxt_dcb_init(struct bnxt *bp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bp->dcbx_cap = DCB_CAP_DCBX_VER_IEEE;
|
bp->dcbx_cap = DCB_CAP_DCBX_VER_IEEE;
|
||||||
if (BNXT_PF(bp))
|
if (BNXT_PF(bp) && !(bp->flags & BNXT_FLAG_FW_LLDP_AGENT))
|
||||||
bp->dcbx_cap |= DCB_CAP_DCBX_HOST;
|
bp->dcbx_cap |= DCB_CAP_DCBX_HOST;
|
||||||
else
|
else
|
||||||
bp->dcbx_cap |= DCB_CAP_DCBX_LLD_MANAGED;
|
bp->dcbx_cap |= DCB_CAP_DCBX_LLD_MANAGED;
|
||||||
|
|
Loading…
Reference in New Issue