Commit 0b963ef2 authored by David S. Miller's avatar David S. Miller

Merge branch 'qed-next'

Sudarsana Reddy Kalluru says:

====================
qed* enhancements.

The patch series adds couple of enhancements for qed/qede drivers.
Please consider applying it to 'net-next' tree.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 254c0a2b 1a3ca250
...@@ -492,6 +492,9 @@ enum qed_mf_mode_bit { ...@@ -492,6 +492,9 @@ enum qed_mf_mode_bit {
/* Allow DSCP to TC mapping */ /* Allow DSCP to TC mapping */
QED_MF_DSCP_TO_TC_MAP, QED_MF_DSCP_TO_TC_MAP,
/* Do not insert a vlan tag with id 0 */
QED_MF_DONT_ADD_VLAN0_TAG,
}; };
enum qed_ufp_mode { enum qed_ufp_mode {
......
...@@ -204,9 +204,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data, ...@@ -204,9 +204,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data,
else else
p_data->arr[type].update = DONT_UPDATE_DCB_DSCP; p_data->arr[type].update = DONT_UPDATE_DCB_DSCP;
/* Do not add vlan tag 0 when DCB is enabled and port in UFP/OV mode */ if (test_bit(QED_MF_DONT_ADD_VLAN0_TAG, &p_hwfn->cdev->mf_bits))
if ((test_bit(QED_MF_8021Q_TAGGING, &p_hwfn->cdev->mf_bits) ||
test_bit(QED_MF_8021AD_TAGGING, &p_hwfn->cdev->mf_bits)))
p_data->arr[type].dont_add_vlan0 = true; p_data->arr[type].dont_add_vlan0 = true;
/* QM reconf data */ /* QM reconf data */
......
...@@ -3157,12 +3157,14 @@ static int qed_hw_get_nvm_info(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) ...@@ -3157,12 +3157,14 @@ static int qed_hw_get_nvm_info(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) | cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) |
BIT(QED_MF_LLH_PROTO_CLSS) | BIT(QED_MF_LLH_PROTO_CLSS) |
BIT(QED_MF_UFP_SPECIFIC) | BIT(QED_MF_UFP_SPECIFIC) |
BIT(QED_MF_8021Q_TAGGING); BIT(QED_MF_8021Q_TAGGING) |
BIT(QED_MF_DONT_ADD_VLAN0_TAG);
break; break;
case NVM_CFG1_GLOB_MF_MODE_BD: case NVM_CFG1_GLOB_MF_MODE_BD:
cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) | cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) |
BIT(QED_MF_LLH_PROTO_CLSS) | BIT(QED_MF_LLH_PROTO_CLSS) |
BIT(QED_MF_8021AD_TAGGING); BIT(QED_MF_8021AD_TAGGING) |
BIT(QED_MF_DONT_ADD_VLAN0_TAG);
break; break;
case NVM_CFG1_GLOB_MF_MODE_NPAR1_0: case NVM_CFG1_GLOB_MF_MODE_NPAR1_0:
cdev->mf_bits = BIT(QED_MF_LLH_MAC_CLSS) | cdev->mf_bits = BIT(QED_MF_LLH_MAC_CLSS) |
......
...@@ -652,9 +652,9 @@ static void qede_get_drvinfo(struct net_device *ndev, ...@@ -652,9 +652,9 @@ static void qede_get_drvinfo(struct net_device *ndev,
{ {
char mfw[ETHTOOL_FWVERS_LEN], storm[ETHTOOL_FWVERS_LEN]; char mfw[ETHTOOL_FWVERS_LEN], storm[ETHTOOL_FWVERS_LEN];
struct qede_dev *edev = netdev_priv(ndev); struct qede_dev *edev = netdev_priv(ndev);
char mbi[ETHTOOL_FWVERS_LEN];
strlcpy(info->driver, "qede", sizeof(info->driver)); strlcpy(info->driver, "qede", sizeof(info->driver));
strlcpy(info->version, DRV_MODULE_VERSION, sizeof(info->version));
snprintf(storm, ETHTOOL_FWVERS_LEN, "%d.%d.%d.%d", snprintf(storm, ETHTOOL_FWVERS_LEN, "%d.%d.%d.%d",
edev->dev_info.common.fw_major, edev->dev_info.common.fw_major,
...@@ -668,13 +668,27 @@ static void qede_get_drvinfo(struct net_device *ndev, ...@@ -668,13 +668,27 @@ static void qede_get_drvinfo(struct net_device *ndev,
(edev->dev_info.common.mfw_rev >> 8) & 0xFF, (edev->dev_info.common.mfw_rev >> 8) & 0xFF,
edev->dev_info.common.mfw_rev & 0xFF); edev->dev_info.common.mfw_rev & 0xFF);
if ((strlen(storm) + strlen(mfw) + strlen("mfw storm ")) < if ((strlen(storm) + strlen(DRV_MODULE_VERSION) + strlen("[storm] ")) <
sizeof(info->fw_version)) { sizeof(info->version))
snprintf(info->version, sizeof(info->version),
"%s [storm %s]", DRV_MODULE_VERSION, storm);
else
snprintf(info->version, sizeof(info->version),
"%s %s", DRV_MODULE_VERSION, storm);
if (edev->dev_info.common.mbi_version) {
snprintf(mbi, ETHTOOL_FWVERS_LEN, "%d.%d.%d",
(edev->dev_info.common.mbi_version &
QED_MBI_VERSION_2_MASK) >> QED_MBI_VERSION_2_OFFSET,
(edev->dev_info.common.mbi_version &
QED_MBI_VERSION_1_MASK) >> QED_MBI_VERSION_1_OFFSET,
(edev->dev_info.common.mbi_version &
QED_MBI_VERSION_0_MASK) >> QED_MBI_VERSION_0_OFFSET);
snprintf(info->fw_version, sizeof(info->fw_version), snprintf(info->fw_version, sizeof(info->fw_version),
"mfw %s storm %s", mfw, storm); "mbi %s [mfw %s]", mbi, mfw);
} else { } else {
snprintf(info->fw_version, sizeof(info->fw_version), snprintf(info->fw_version, sizeof(info->fw_version),
"%s %s", mfw, storm); "mfw %s", mfw);
} }
strlcpy(info->bus_info, pci_name(edev->pdev), sizeof(info->bus_info)); strlcpy(info->bus_info, pci_name(edev->pdev), sizeof(info->bus_info));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment