[PATCH v1 net-next] stmmac: fix DMA channel hang in half-duplex mode

Subsystems: networking drivers, stmmac ethernet driver, the rest

STALE2986d

3 messages, 2 authors, 2018-06-15 · open the first message on its own page

[PATCH v1 net-next] stmmac: fix DMA channel hang in half-duplex mode

From: Bhadram Varka <hidden>
Date: 2018-06-13 04:30:58

HW does not support Half-duplex mode in multi-queue
scenario. Fix it by not advertising the Half-Duplex
mode if multi-queue enabled.

Signed-off-by: Bhadram Varka <redacted>
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 11fb7c7..07e748c 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -928,6 +928,7 @@ static void stmmac_check_pcs_mode(struct stmmac_priv *priv)
 static int stmmac_init_phy(struct net_device *dev)
 {
 	struct stmmac_priv *priv = netdev_priv(dev);
+	u32 tx_cnt = priv->plat->tx_queues_to_use;
 	struct phy_device *phydev;
 	char phy_id_fmt[MII_BUS_ID_SIZE + 3];
 	char bus_id[MII_BUS_ID_SIZE];
@@ -969,6 +970,15 @@ static int stmmac_init_phy(struct net_device *dev)
 					 SUPPORTED_1000baseT_Full);
 
 	/*
+	 * Half-duplex mode not supported with multiqueue
+	 * half-duplex can only works with single queue
+	 */
+	if (tx_cnt > 1)
+		phydev->supported &= ~(SUPPORTED_1000baseT_Half |
+				       SUPPORTED_100baseT_Half |
+				       SUPPORTED_10baseT_Half);
+
+	/*
 	 * Broken HW is sometimes missing the pull-up resistor on the
 	 * MDIO line, which results in reads to non-existent devices returning
 	 * 0 rather than 0xffff. Catch this here and treat 0 as a non-existent
-- 
2.7.4

Re: [PATCH v1 net-next] stmmac: fix DMA channel hang in half-duplex mode

From: David Miller <davem@davemloft.net>
Date: 2018-06-15 00:06:14

From: Bhadram Varka <redacted>
Date: Wed, 13 Jun 2018 10:00:48 +0530
HW does not support Half-duplex mode in multi-queue
scenario. Fix it by not advertising the Half-Duplex
mode if multi-queue enabled.

Signed-off-by: Bhadram Varka <redacted>
Bug fixes should be submitted against net, not net-next.  And
net-next is closed for submissions at this time.

Thanks.

Re: [PATCH v1 net-next] stmmac: fix DMA channel hang in half-duplex mode

From: Bhadram Varka <hidden>
Date: 2018-06-15 15:32:22

Hi,

On 6/15/2018 5:36 AM, David Miller wrote:
From: Bhadram Varka <redacted>
Date: Wed, 13 Jun 2018 10:00:48 +0530
quoted
HW does not support Half-duplex mode in multi-queue
scenario. Fix it by not advertising the Half-Duplex
mode if multi-queue enabled.

Signed-off-by: Bhadram Varka <redacted>
Bug fixes should be submitted against net, not net-next.  And
net-next is closed for submissions at this time.

Thanks.
Thanks David. Will submit patch against net.

Jose/Alexander/Peppe,
Please review this patch. Will submit patch to net if there is no concerns.

Thanks!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help