Signed-off-by: Howard Wang <howard_w...@realsil.com.cn> --- drivers/net/r8169/r8169_ethdev.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
diff --git a/drivers/net/r8169/r8169_ethdev.c b/drivers/net/r8169/r8169_ethdev.c index b569160172..6fc3b557bd 100644 --- a/drivers/net/r8169/r8169_ethdev.c +++ b/drivers/net/r8169/r8169_ethdev.c @@ -48,6 +48,8 @@ static int rtl_promiscuous_disable(struct rte_eth_dev *dev); static int rtl_allmulticast_enable(struct rte_eth_dev *dev); static int rtl_allmulticast_disable(struct rte_eth_dev *dev); static int rtl_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu); +static int rtl_fw_version_get(struct rte_eth_dev *dev, char *fw_version, + size_t fw_size); /* * The set of PCI devices this driver supports @@ -96,6 +98,8 @@ static const struct eth_dev_ops rtl_eth_dev_ops = { .mtu_set = rtl_dev_mtu_set, + .fw_version_get = rtl_fw_version_get, + .rx_queue_setup = rtl_rx_queue_setup, .rx_queue_release = rtl_rx_queue_release, .rxq_info_get = rtl_rxq_info_get, @@ -629,6 +633,22 @@ rtl_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) return 0; } +static int +rtl_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size) +{ + struct rtl_adapter *adapter = RTL_DEV_PRIVATE(dev); + struct rtl_hw *hw = &adapter->hw; + int ret; + + ret = snprintf(fw_version, fw_size, "0x%08x", hw->hw_ram_code_ver); + + ret += 1; /* Add the size of '\0' */ + if (fw_size < (u32)ret) + return ret; + else + return 0; +} + static int rtl_dev_init(struct rte_eth_dev *dev) { -- 2.34.1