hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
....@@ -839,8 +839,9 @@
839839 /**
840840 * bnx2x_read_pages_regs - read "paged" registers
841841 *
842
- * @bp device handle
843
- * @p output buffer
842
+ * @bp: device handle
843
+ * @p: output buffer
844
+ * @preset: the preset value
844845 *
845846 * Reads "paged" memories: memories that may only be read by first writing to a
846847 * specific address ("write address") and then reading from a specific address
....@@ -1107,11 +1108,32 @@
11071108 struct ethtool_drvinfo *info)
11081109 {
11091110 struct bnx2x *bp = netdev_priv(dev);
1111
+ char version[ETHTOOL_FWVERS_LEN];
1112
+ int ext_dev_info_offset;
1113
+ u32 mbi;
11101114
11111115 strlcpy(info->driver, DRV_MODULE_NAME, sizeof(info->driver));
1112
- strlcpy(info->version, DRV_MODULE_VERSION, sizeof(info->version));
11131116
1114
- bnx2x_fill_fw_str(bp, info->fw_version, sizeof(info->fw_version));
1117
+ if (SHMEM2_HAS(bp, extended_dev_info_shared_addr)) {
1118
+ ext_dev_info_offset = SHMEM2_RD(bp,
1119
+ extended_dev_info_shared_addr);
1120
+ mbi = REG_RD(bp, ext_dev_info_offset +
1121
+ offsetof(struct extended_dev_info_shared_cfg,
1122
+ mbi_version));
1123
+ if (mbi) {
1124
+ memset(version, 0, sizeof(version));
1125
+ snprintf(version, ETHTOOL_FWVERS_LEN, "mbi %d.%d.%d ",
1126
+ (mbi & 0xff000000) >> 24,
1127
+ (mbi & 0x00ff0000) >> 16,
1128
+ (mbi & 0x0000ff00) >> 8);
1129
+ strlcpy(info->fw_version, version,
1130
+ sizeof(info->fw_version));
1131
+ }
1132
+ }
1133
+
1134
+ memset(version, 0, sizeof(version));
1135
+ bnx2x_fill_fw_str(bp, version, ETHTOOL_FWVERS_LEN);
1136
+ strlcat(info->fw_version, version, sizeof(info->fw_version));
11151137
11161138 strlcpy(info->bus_info, pci_name(bp->pdev), sizeof(info->bus_info));
11171139 }
....@@ -2598,7 +2620,6 @@
25982620 wmb();
25992621 DOORBELL_RELAXED(bp, txdata->cid, txdata->tx_db.raw);
26002622
2601
- mmiowb();
26022623 barrier();
26032624
26042625 num_pkts++;
....@@ -3541,6 +3562,7 @@
35413562 * bnx2x_change_num_queues - change the number of RSS queues.
35423563 *
35433564 * @bp: bnx2x private structure
3565
+ * @num_rss: rss count
35443566 *
35453567 * Re-configure interrupt mode to get the new number of MSI-X
35463568 * vectors and re-add NAPI objects.
....@@ -3636,6 +3658,7 @@
36363658 }
36373659
36383660 static const struct ethtool_ops bnx2x_ethtool_ops = {
3661
+ .supported_coalesce_params = ETHTOOL_COALESCE_USECS,
36393662 .get_drvinfo = bnx2x_get_drvinfo,
36403663 .get_regs_len = bnx2x_get_regs_len,
36413664 .get_regs = bnx2x_get_regs,