mlx4_en: Reporting HW revision in ethtool -i
HW revision is derived from device ID and rev id. Signed-off-by: Eugenia Emantayev <eugenia@mellanox.co.il> Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
14c07b1358
commit
725c89997e
5 changed files with 20 additions and 3 deletions
|
@ -721,7 +721,6 @@ static int init_node_data(struct mlx4_ib_dev *dev)
|
||||||
if (err)
|
if (err)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
dev->dev->rev_id = be32_to_cpup((__be32 *) (out_mad->data + 32));
|
|
||||||
memcpy(&dev->ib_dev.node_guid, out_mad->data + 12, 8);
|
memcpy(&dev->ib_dev.node_guid, out_mad->data + 12, 8);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
|
@ -45,7 +45,20 @@ mlx4_en_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo)
|
||||||
struct mlx4_en_priv *priv = netdev_priv(dev);
|
struct mlx4_en_priv *priv = netdev_priv(dev);
|
||||||
struct mlx4_en_dev *mdev = priv->mdev;
|
struct mlx4_en_dev *mdev = priv->mdev;
|
||||||
|
|
||||||
sprintf(drvinfo->driver, DRV_NAME " (%s)", mdev->dev->board_id);
|
switch (mdev->dev->rev_id) {
|
||||||
|
case 0xa0:
|
||||||
|
if (dev->dev_id >= MLX4_EN_CX3_LOW_ID && dev->dev_id <= MLX4_EN_CX3_HIGH_ID)
|
||||||
|
sprintf(drvinfo->driver, DRV_NAME " (%s_CX-3)", mdev->dev->board_id);
|
||||||
|
else
|
||||||
|
sprintf(drvinfo->driver, DRV_NAME " (%s_CX)", mdev->dev->board_id);
|
||||||
|
break;
|
||||||
|
case 0xb0:
|
||||||
|
sprintf(drvinfo->driver, DRV_NAME " (%s_CX-2)", mdev->dev->board_id);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sprintf(drvinfo->driver, DRV_NAME " (%s)", mdev->dev->board_id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
strncpy(drvinfo->version, DRV_VERSION " (" DRV_RELDATE ")", 32);
|
strncpy(drvinfo->version, DRV_VERSION " (" DRV_RELDATE ")", 32);
|
||||||
sprintf(drvinfo->fw_version, "%d.%d.%d",
|
sprintf(drvinfo->fw_version, "%d.%d.%d",
|
||||||
(u16) (mdev->dev->caps.fw_ver >> 32),
|
(u16) (mdev->dev->caps.fw_ver >> 32),
|
||||||
|
|
|
@ -1139,6 +1139,8 @@ static int __mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||||
INIT_LIST_HEAD(&priv->pgdir_list);
|
INIT_LIST_HEAD(&priv->pgdir_list);
|
||||||
mutex_init(&priv->pgdir_mutex);
|
mutex_init(&priv->pgdir_mutex);
|
||||||
|
|
||||||
|
pci_read_config_byte(pdev, PCI_REVISION_ID, &dev->rev_id);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now reset the HCA before we touch the PCI capabilities or
|
* Now reset the HCA before we touch the PCI capabilities or
|
||||||
* attempt a firmware command, since a boot ROM may have left
|
* attempt a firmware command, since a boot ROM may have left
|
||||||
|
|
|
@ -216,6 +216,9 @@ struct mlx4_en_tx_desc {
|
||||||
|
|
||||||
#define MLX4_EN_USE_SRQ 0x01000000
|
#define MLX4_EN_USE_SRQ 0x01000000
|
||||||
|
|
||||||
|
#define MLX4_EN_CX3_LOW_ID 0x1000
|
||||||
|
#define MLX4_EN_CX3_HIGH_ID 0x1005
|
||||||
|
|
||||||
struct mlx4_en_rx_alloc {
|
struct mlx4_en_rx_alloc {
|
||||||
struct page *page;
|
struct page *page;
|
||||||
u16 offset;
|
u16 offset;
|
||||||
|
|
|
@ -422,7 +422,7 @@ struct mlx4_dev {
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
struct mlx4_caps caps;
|
struct mlx4_caps caps;
|
||||||
struct radix_tree_root qp_table_tree;
|
struct radix_tree_root qp_table_tree;
|
||||||
u32 rev_id;
|
u8 rev_id;
|
||||||
char board_id[MLX4_BOARD_ID_LEN];
|
char board_id[MLX4_BOARD_ID_LEN];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue