[qca-ssdk]: fix ethtool show issue for SFP.

Change-Id: I43489f2d7b4559d38e028309a5726d067a83ea3b
Signed-off-by: zhongjia <zhongjia@codeaurora.org>
diff --git a/include/hsl/phy/hsl_phy.h b/include/hsl/phy/hsl_phy.h
index 7986183..8b784bb 100755
--- a/include/hsl/phy/hsl_phy.h
+++ b/include/hsl/phy/hsl_phy.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2015, 2017-2020, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -554,6 +554,11 @@
 /*qca808x_end*/
 #define MP_GEPHY                0x004DD0C0
 #define SFP_PHY_MASK            0xffffffff
+#define SFP_PHY_FEATURES        (SUPPORTED_FIBRE | \
+                                SUPPORTED_1000baseT_Full | \
+                                SUPPORTED_10000baseT_Full | \
+                                SUPPORTED_Pause | \
+                                SUPPORTED_Asym_Pause)
 
 #define CABLE_PAIR_A            0
 #define CABLE_PAIR_B            1
diff --git a/src/adpt/hppe/adpt_hppe_portctrl.c b/src/adpt/hppe/adpt_hppe_portctrl.c
index 9f3a4fe..1f8ed56 100755
--- a/src/adpt/hppe/adpt_hppe_portctrl.c
+++ b/src/adpt/hppe/adpt_hppe_portctrl.c
@@ -162,14 +162,15 @@
 				phy_status->speed = FAL_SPEED_BUTT;
 				break;
 		}
+		phy_status->duplex = FAL_FULL_DUPLEX;
 	}
 	else
 	{
 		phy_status->link_status = PORT_LINK_DOWN;
+		phy_status->speed = FAL_SPEED_BUTT;
+		phy_status->duplex = FAL_DUPLEX_BUTT;
 	}
 
-	phy_status->duplex = FAL_FULL_DUPLEX;
-
 	return rv;
 }
 #ifndef IN_PORTCONTROL_MINI
diff --git a/src/hsl/phy/sfp_phy.c b/src/hsl/phy/sfp_phy.c
index c07fd08..1ce8fc9 100755
--- a/src/hsl/phy/sfp_phy.c
+++ b/src/hsl/phy/sfp_phy.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018, 2020, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -34,6 +34,7 @@
 static int
 sfp_phy_probe(struct phy_device *pdev)
 {
+	pdev->autoneg = AUTONEG_DISABLE;
 	SSDK_INFO("sfp phy is probed!\n");
 	return 0;
 }
@@ -68,6 +69,9 @@
 	fal_port_speed_t speed = FAL_SPEED_BUTT;
 	struct qca_phy_priv *priv = pdev->priv;
 
+	pdev->speed = SPEED_UNKNOWN;
+	pdev->duplex = DUPLEX_UNKNOWN;
+
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0))
 	addr = pdev->mdio.addr;
 #else
@@ -97,7 +101,7 @@
 	.config_aneg	= sfp_phy_config_aneg,
 	.aneg_done	= sfp_phy_aneg_done,
 	.read_status	= sfp_read_status,
-	.features	= PHY_BASIC_FEATURES,
+	.features	= SFP_PHY_FEATURES,
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0))
 	.mdiodrv.driver	= { .owner = THIS_MODULE },
 #else