diff options
author | Xue Chaojing <xuechaojing@huawei.com> | 2019-07-05 02:40:28 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-07-07 22:15:12 -0700 |
commit | 61a582be1a668a0c1407a46f779965bfeff88784 (patch) | |
tree | 2c180e5c4d242869380ed3409f5c8d95ad6f5ab1 /drivers/net/ethernet/huawei/hinic/hinic_port.c | |
parent | gve: Fix error return code in gve_alloc_qpls() (diff) | |
download | linux-61a582be1a668a0c1407a46f779965bfeff88784.tar.gz linux-61a582be1a668a0c1407a46f779965bfeff88784.tar.bz2 linux-61a582be1a668a0c1407a46f779965bfeff88784.zip |
hinic: add fw version query
This patch adds firmware version query in ethtool -i.
Signed-off-by: Xue Chaojing <xuechaojing@huawei.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/huawei/hinic/hinic_port.c')
-rw-r--r-- | drivers/net/ethernet/huawei/hinic/hinic_port.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_port.c b/drivers/net/ethernet/huawei/hinic/hinic_port.c index 1bbeb91be808..1e389a004e50 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_port.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_port.c @@ -1038,3 +1038,33 @@ out: return err; } + +int hinic_get_mgmt_version(struct hinic_dev *nic_dev, u8 *mgmt_ver) +{ + struct hinic_hwdev *hwdev = nic_dev->hwdev; + struct hinic_version_info up_ver = {0}; + struct hinic_hwif *hwif; + struct pci_dev *pdev; + u16 out_size; + int err; + + if (!hwdev) + return -EINVAL; + + hwif = hwdev->hwif; + pdev = hwif->pdev; + + err = hinic_port_msg_cmd(hwdev, HINIC_PORT_CMD_GET_MGMT_VERSION, + &up_ver, sizeof(up_ver), &up_ver, + &out_size); + if (err || !out_size || up_ver.status) { + dev_err(&pdev->dev, + "Failed to get mgmt version, err: %d, status: 0x%x, out size: 0x%x\n", + err, up_ver.status, out_size); + return -EINVAL; + } + + snprintf(mgmt_ver, HINIC_MGMT_VERSION_MAX_LEN, "%s", up_ver.ver); + + return 0; +} |