1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
From 024173b78ac6c6ce9dca879274b1e8a8e9000738 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Fri, 9 Aug 2019 08:52:16 +0100
Subject: [PATCH 754/806] Revert "net: bcmgenet: Workaround for Pi 4B network
issue"
This reverts commit 9c0770ea7682a84a22c33410ef6870af258abacc.
---
.../net/ethernet/broadcom/genet/bcmgenet.c | 22 -------------------
1 file changed, 22 deletions(-)
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -72,10 +72,6 @@
#define GENET_RDMA_REG_OFF (priv->hw_params->rdma_offset + \
TOTAL_DESC * DMA_DESC_SIZE)
-static bool force_reneg = false;
-module_param(force_reneg, bool, 0444);
-MODULE_PARM_DESC(force_reneg, "Force a renegotiation after the initial link-up");
-
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
/* MIPS chips strapped for BE will automagically configure the
@@ -2616,7 +2612,6 @@ static void bcmgenet_irq_task(struct wor
unsigned int status;
struct bcmgenet_priv *priv = container_of(
work, struct bcmgenet_priv, bcmgenet_irq_work);
- static int first_link = 1;
netif_dbg(priv, intr, priv->dev, "%s\n", __func__);
@@ -2630,26 +2625,9 @@ static void bcmgenet_irq_task(struct wor
phy_init_hw(priv->dev->phydev);
/* Link UP/DOWN event */
- if (status & UMAC_IRQ_LINK_EVENT) {
+ if (status & UMAC_IRQ_LINK_EVENT)
phy_mac_interrupt(priv->dev->phydev);
- if (priv->dev->phydev->link && first_link) {
- first_link = 0;
- /*
- * HACK: Some Pi4Bs, when paired with some switches,
- * come up in a strange state where they are unable to
- * transmit, causing them to fail to get an IP address.
- * Although the failure mechanism is not yet understood,
- * forcing renegotiation at this point has been shown
- * to be effective in avoiding the problem.
- */
- if (force_reneg) {
- dev_info(&priv->pdev->dev,
- "Forcing renegotiation\n");
- genphy_restart_aneg(priv->dev->phydev);
- }
- }
- }
}
/* bcmgenet_isr1: handle Rx and Tx priority queues */
|