Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 725c8999 authored by Yevgeny Petrilin's avatar Yevgeny Petrilin Committed by David S. Miller
Browse files

mlx4_en: Reporting HW revision in ethtool -i



HW revision is derived from device ID and rev id.

Signed-off-by: default avatarEugenia Emantayev <eugenia@mellanox.co.il>
Signed-off-by: default avatarYevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 14c07b13
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -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:
+14 −1
Original line number Original line Diff line number Diff line
@@ -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;


	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);
		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),
+2 −0
Original line number Original line Diff line number Diff line
@@ -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
+3 −0
Original line number Original line Diff line number Diff line
@@ -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;
+1 −1
Original line number Original line Diff line number Diff line
@@ -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];
};
};