.. | .. |
---|
839 | 839 | /** |
---|
840 | 840 | * bnx2x_read_pages_regs - read "paged" registers |
---|
841 | 841 | * |
---|
842 | | - * @bp device handle |
---|
843 | | - * @p output buffer |
---|
| 842 | + * @bp: device handle |
---|
| 843 | + * @p: output buffer |
---|
| 844 | + * @preset: the preset value |
---|
844 | 845 | * |
---|
845 | 846 | * Reads "paged" memories: memories that may only be read by first writing to a |
---|
846 | 847 | * specific address ("write address") and then reading from a specific address |
---|
.. | .. |
---|
1107 | 1108 | struct ethtool_drvinfo *info) |
---|
1108 | 1109 | { |
---|
1109 | 1110 | struct bnx2x *bp = netdev_priv(dev); |
---|
| 1111 | + char version[ETHTOOL_FWVERS_LEN]; |
---|
| 1112 | + int ext_dev_info_offset; |
---|
| 1113 | + u32 mbi; |
---|
1110 | 1114 | |
---|
1111 | 1115 | strlcpy(info->driver, DRV_MODULE_NAME, sizeof(info->driver)); |
---|
1112 | | - strlcpy(info->version, DRV_MODULE_VERSION, sizeof(info->version)); |
---|
1113 | 1116 | |
---|
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)); |
---|
1115 | 1137 | |
---|
1116 | 1138 | strlcpy(info->bus_info, pci_name(bp->pdev), sizeof(info->bus_info)); |
---|
1117 | 1139 | } |
---|
.. | .. |
---|
2598 | 2620 | wmb(); |
---|
2599 | 2621 | DOORBELL_RELAXED(bp, txdata->cid, txdata->tx_db.raw); |
---|
2600 | 2622 | |
---|
2601 | | - mmiowb(); |
---|
2602 | 2623 | barrier(); |
---|
2603 | 2624 | |
---|
2604 | 2625 | num_pkts++; |
---|
.. | .. |
---|
3541 | 3562 | * bnx2x_change_num_queues - change the number of RSS queues. |
---|
3542 | 3563 | * |
---|
3543 | 3564 | * @bp: bnx2x private structure |
---|
| 3565 | + * @num_rss: rss count |
---|
3544 | 3566 | * |
---|
3545 | 3567 | * Re-configure interrupt mode to get the new number of MSI-X |
---|
3546 | 3568 | * vectors and re-add NAPI objects. |
---|
.. | .. |
---|
3636 | 3658 | } |
---|
3637 | 3659 | |
---|
3638 | 3660 | static const struct ethtool_ops bnx2x_ethtool_ops = { |
---|
| 3661 | + .supported_coalesce_params = ETHTOOL_COALESCE_USECS, |
---|
3639 | 3662 | .get_drvinfo = bnx2x_get_drvinfo, |
---|
3640 | 3663 | .get_regs_len = bnx2x_get_regs_len, |
---|
3641 | 3664 | .get_regs = bnx2x_get_regs, |
---|