OSDN Git Service

net: hns3: Add get_media_type ops support for VF
authorPeng Li <lipeng321@huawei.com>
Fri, 21 Sep 2018 15:41:46 +0000 (16:41 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 22 Sep 2018 02:29:32 +0000 (19:29 -0700)
This patch adds the ops of get_media_type support for VF.

Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hnae3.h
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h

index 17db631..fc87e1b 100644 (file)
@@ -107,6 +107,7 @@ enum hnae3_media_type {
        HNAE3_MEDIA_TYPE_FIBER,
        HNAE3_MEDIA_TYPE_COPPER,
        HNAE3_MEDIA_TYPE_BACKPLANE,
+       HNAE3_MEDIA_TYPE_NONE,
 };
 
 enum hnae3_reset_notify_type {
index b644187..9781931 100644 (file)
@@ -1340,6 +1340,8 @@ static int hclgevf_configure(struct hclgevf_dev *hdev)
 {
        int ret;
 
+       hdev->hw.mac.media_type = HNAE3_MEDIA_TYPE_NONE;
+
        /* get queue configuration from PF */
        ret = hclgevf_get_queue_info(hdev);
        if (ret)
@@ -2009,6 +2011,14 @@ void hclgevf_update_speed_duplex(struct hclgevf_dev *hdev, u32 speed,
        hdev->hw.mac.duplex = duplex;
 }
 
+static void hclgevf_get_media_type(struct hnae3_handle *handle,
+                                 u8 *media_type)
+{
+       struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
+       if (media_type)
+               *media_type = hdev->hw.mac.media_type;
+}
+
 static const struct hnae3_ae_ops hclgevf_ops = {
        .init_ae_dev = hclgevf_init_ae_dev,
        .uninit_ae_dev = hclgevf_uninit_ae_dev,
@@ -2046,6 +2056,7 @@ static const struct hnae3_ae_ops hclgevf_ops = {
        .get_tqps_and_rss_info = hclgevf_get_tqps_and_rss_info,
        .get_status = hclgevf_get_status,
        .get_ksettings_an_result = hclgevf_get_ksettings_an_result,
+       .get_media_type = hclgevf_get_media_type,
 };
 
 static struct hnae3_ae_algo ae_algovf = {
index b23ba17..2af01f1 100644 (file)
@@ -66,6 +66,7 @@ enum hclgevf_states {
 #define HCLGEVF_MPF_ENBALE 1
 
 struct hclgevf_mac {
+       u8 media_type;
        u8 mac_addr[ETH_ALEN];
        int link;
        u8 duplex;