patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] [PATCH 1/1] net/e1000: set/clear GO_LINKD bit only if PHY reset is not blocked
       [not found] <20190516214535.90650-1-shweta.choudaha@gmail.com>
@ 2019-05-16 21:45 ` Shweta Choudaha
       [not found]   ` <20190516220331.91984-1-shweta.choudaha@gmail.com>
  0 siblings, 1 reply; 3+ messages in thread
From: Shweta Choudaha @ 2019-05-16 21:45 UTC (permalink / raw)
  To: dev; +Cc: wenzhuo.lu, shweta.choudaha, stable

From: Shweta Choudaha <shweta.choudaha@att.com>

When PHY reset is blocked as is the case when BMC is connected via NC-SI
do not set GO_LINKD bit in PHY power management register in dev_stop as
this will disconnect the PHY. Also, in dev_close clear the GO_LINKD
bit only if PHY reset is not blocked

Fixes: 3af34dec0b41 ("igb: force phy power up/down")
CC: stable@dpdk.org

Signed-off-by: Shweta Choudaha <shweta.choudaha@att.com>
---
 drivers/net/e1000/igb_ethdev.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index d3a8f5bf4..d0de15531 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -1515,8 +1515,10 @@ eth_igb_stop(struct rte_eth_dev *dev)
 	igb_pf_reset_hw(hw);
 	E1000_WRITE_REG(hw, E1000_WUC, 0);
 
-	/* Set bit for Go Link disconnect */
-	if (hw->mac.type >= e1000_82580) {
+
+	/* Set bit for Go Link disconnect if PHY reset is not blocked */
+	if ((hw->mac.type >= e1000_82580) &&
+	    (e1000_check_reset_block(hw) != E1000_BLK_PHY_RESET)) {
 		uint32_t phpm_reg;
 
 		phpm_reg = E1000_READ_REG(hw, E1000_82580_PHY_POWER_MGMT);
@@ -1590,8 +1592,9 @@ eth_igb_close(struct rte_eth_dev *dev)
 	igb_release_manageability(hw);
 	igb_hw_control_release(hw);
 
-	/* Clear bit for Go Link disconnect */
-	if (hw->mac.type >= e1000_82580) {
+	/* Clear bit for Go Link disconnect if PHY reset is not blocked */
+	if ((hw->mac.type >= e1000_82580) &&
+	    (e1000_check_reset_block(hw) != E1000_BLK_PHY_RESET)) {
 		uint32_t phpm_reg;
 
 		phpm_reg = E1000_READ_REG(hw, E1000_82580_PHY_POWER_MGMT);
-- 
2.11.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [dpdk-stable] [PATCH v2 1/1] net/e1000: set/clear GO_LINKD bit only if PHY reset is not blocked
       [not found]   ` <20190516220331.91984-1-shweta.choudaha@gmail.com>
@ 2019-05-16 22:03     ` Shweta Choudaha
  2019-10-28  6:40       ` [dpdk-stable] [dpdk-dev] " Ye Xiaolong
  0 siblings, 1 reply; 3+ messages in thread
From: Shweta Choudaha @ 2019-05-16 22:03 UTC (permalink / raw)
  To: dev; +Cc: wenzhuo.lu, shweta.choudaha, stable

From: Shweta Choudaha <shweta.choudaha@att.com>

When PHY reset is blocked as is the case when BMC is connected via NC-SI
do not set GO_LINKD bit in PHY power management register in dev_stop as
this will disconnect the PHY. Also, in dev_close clear the GO_LINKD
bit only if PHY reset is not blocked

Fixes: 3af34dec0b41 ("igb: force phy power up/down")
CC: stable@dpdk.org

Signed-off-by: Shweta Choudaha <shweta.choudaha@att.com>
---
 drivers/net/e1000/igb_ethdev.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index d3a8f5bf4..4d4065d05 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -1515,8 +1515,9 @@ eth_igb_stop(struct rte_eth_dev *dev)
 	igb_pf_reset_hw(hw);
 	E1000_WRITE_REG(hw, E1000_WUC, 0);
 
-	/* Set bit for Go Link disconnect */
-	if (hw->mac.type >= e1000_82580) {
+	/* Set bit for Go Link disconnect if PHY reset is not blocked */
+	if (hw->mac.type >= e1000_82580 &&
+	    (e1000_check_reset_block(hw) != E1000_BLK_PHY_RESET)) {
 		uint32_t phpm_reg;
 
 		phpm_reg = E1000_READ_REG(hw, E1000_82580_PHY_POWER_MGMT);
@@ -1590,8 +1591,9 @@ eth_igb_close(struct rte_eth_dev *dev)
 	igb_release_manageability(hw);
 	igb_hw_control_release(hw);
 
-	/* Clear bit for Go Link disconnect */
-	if (hw->mac.type >= e1000_82580) {
+	/* Clear bit for Go Link disconnect if PHY reset is not blocked */
+	if (hw->mac.type >= e1000_82580 &&
+	    (e1000_check_reset_block(hw) != E1000_BLK_PHY_RESET)) {
 		uint32_t phpm_reg;
 
 		phpm_reg = E1000_READ_REG(hw, E1000_82580_PHY_POWER_MGMT);
-- 
2.11.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-stable] [dpdk-dev] [PATCH v2 1/1] net/e1000: set/clear GO_LINKD bit only if PHY reset is not blocked
  2019-05-16 22:03     ` [dpdk-stable] [PATCH v2 " Shweta Choudaha
@ 2019-10-28  6:40       ` Ye Xiaolong
  0 siblings, 0 replies; 3+ messages in thread
From: Ye Xiaolong @ 2019-10-28  6:40 UTC (permalink / raw)
  To: Shweta Choudaha; +Cc: dev, wenzhuo.lu, shweta.choudaha, stable

On 05/16, Shweta Choudaha wrote:
>From: Shweta Choudaha <shweta.choudaha@att.com>
>
>When PHY reset is blocked as is the case when BMC is connected via NC-SI
>do not set GO_LINKD bit in PHY power management register in dev_stop as
>this will disconnect the PHY. Also, in dev_close clear the GO_LINKD
>bit only if PHY reset is not blocked
>
>Fixes: 3af34dec0b41 ("igb: force phy power up/down")
>CC: stable@dpdk.org
>
>Signed-off-by: Shweta Choudaha <shweta.choudaha@att.com>
>---
> drivers/net/e1000/igb_ethdev.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
>index d3a8f5bf4..4d4065d05 100644
>--- a/drivers/net/e1000/igb_ethdev.c
>+++ b/drivers/net/e1000/igb_ethdev.c
>@@ -1515,8 +1515,9 @@ eth_igb_stop(struct rte_eth_dev *dev)
> 	igb_pf_reset_hw(hw);
> 	E1000_WRITE_REG(hw, E1000_WUC, 0);
> 
>-	/* Set bit for Go Link disconnect */
>-	if (hw->mac.type >= e1000_82580) {
>+	/* Set bit for Go Link disconnect if PHY reset is not blocked */
>+	if (hw->mac.type >= e1000_82580 &&
>+	    (e1000_check_reset_block(hw) != E1000_BLK_PHY_RESET)) {
> 		uint32_t phpm_reg;
> 
> 		phpm_reg = E1000_READ_REG(hw, E1000_82580_PHY_POWER_MGMT);
>@@ -1590,8 +1591,9 @@ eth_igb_close(struct rte_eth_dev *dev)
> 	igb_release_manageability(hw);
> 	igb_hw_control_release(hw);
> 
>-	/* Clear bit for Go Link disconnect */
>-	if (hw->mac.type >= e1000_82580) {
>+	/* Clear bit for Go Link disconnect if PHY reset is not blocked */
>+	if (hw->mac.type >= e1000_82580 &&
>+	    (e1000_check_reset_block(hw) != E1000_BLK_PHY_RESET)) {
> 		uint32_t phpm_reg;
> 
> 		phpm_reg = E1000_READ_REG(hw, E1000_82580_PHY_POWER_MGMT);
>-- 
>2.11.0
>

Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>

Applied to dpdk-next-net-intel. Thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-10-28  6:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20190516214535.90650-1-shweta.choudaha@gmail.com>
2019-05-16 21:45 ` [dpdk-stable] [PATCH 1/1] net/e1000: set/clear GO_LINKD bit only if PHY reset is not blocked Shweta Choudaha
     [not found]   ` <20190516220331.91984-1-shweta.choudaha@gmail.com>
2019-05-16 22:03     ` [dpdk-stable] [PATCH v2 " Shweta Choudaha
2019-10-28  6:40       ` [dpdk-stable] [dpdk-dev] " Ye Xiaolong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).