[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