aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-5.4/759-net-sfp-re-attempt-probing-for-phy.patch
diff options
context:
space:
mode:
authorVladimir Markovets <abam_a@yahoo.com>2021-07-22 00:09:22 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2021-07-25 13:52:38 +0200
commitf032601ed7d70fe1f468219b68750230b6ea1906 (patch)
treeed9e7599ce95be43da3fe3e90bdf9807609fd44f /target/linux/generic/pending-5.4/759-net-sfp-re-attempt-probing-for-phy.patch
parent023a1366ee8138a8adbf3044814c1855c5677bb1 (diff)
downloadupstream-f032601ed7d70fe1f468219b68750230b6ea1906.tar.gz
upstream-f032601ed7d70fe1f468219b68750230b6ea1906.tar.bz2
upstream-f032601ed7d70fe1f468219b68750230b6ea1906.zip
kernel: backport workaround for Realtek RTL8672 and RTL9601C chips
Adds support for GPON SFP modules based on the Realtek RTL8672 and RTL9601C chips, including but not limited to: * V-SOL V2801F * C-Data FD511GX-RM0 * OPTON GP801R * BAUDCOM BD-1234-SFM * CPGOS03-0490 v2.0 * Ubiquiti U-Fiber Instant * EXOT EGS1 Signed-off-by: Vladimir Markovets <abam_a@yahoo.com>
Diffstat (limited to 'target/linux/generic/pending-5.4/759-net-sfp-re-attempt-probing-for-phy.patch')
-rw-r--r--target/linux/generic/pending-5.4/759-net-sfp-re-attempt-probing-for-phy.patch8
1 files changed, 4 insertions, 4 deletions
diff --git a/target/linux/generic/pending-5.4/759-net-sfp-re-attempt-probing-for-phy.patch b/target/linux/generic/pending-5.4/759-net-sfp-re-attempt-probing-for-phy.patch
index d122bc7c62..aebb6b0398 100644
--- a/target/linux/generic/pending-5.4/759-net-sfp-re-attempt-probing-for-phy.patch
+++ b/target/linux/generic/pending-5.4/759-net-sfp-re-attempt-probing-for-phy.patch
@@ -48,7 +48,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
/* SFP module presence detection is poor: the three MOD DEF signals are
* the same length on the PCB, which means it's possible for MOD DEF 0 to
* connect before the I2C bus on MOD DEF 1/2.
-@@ -235,6 +243,7 @@ struct sfp {
+@@ -236,6 +244,7 @@ struct sfp {
unsigned char sm_dev_state;
unsigned short sm_state;
unsigned char sm_fault_retries;
@@ -56,7 +56,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
struct sfp_eeprom_id id;
unsigned int module_power_mW;
-@@ -1416,10 +1425,8 @@ static int sfp_sm_probe_phy(struct sfp *
+@@ -1432,10 +1441,8 @@ static int sfp_sm_probe_phy(struct sfp *
int err;
phy = get_phy_device(sfp->i2c_mii, SFP_PHY_ADDR, is_c45);
@@ -69,7 +69,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
if (IS_ERR(phy)) {
dev_err(sfp->dev, "mdiobus scan returned %ld\n", PTR_ERR(phy));
return PTR_ERR(phy);
-@@ -1867,6 +1874,7 @@ static void sfp_sm_module(struct sfp *sf
+@@ -1954,6 +1961,7 @@ static void sfp_sm_module(struct sfp *sf
static void sfp_sm_main(struct sfp *sfp, unsigned int event)
{
unsigned long timeout;
@@ -77,7 +77,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
/* Some events are global */
if (sfp->sm_state != SFP_S_DOWN &&
-@@ -1940,22 +1948,39 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2027,22 +2035,39 @@ static void sfp_sm_main(struct sfp *sfp,
sfp_sm_fault(sfp, SFP_S_INIT_TX_FAULT,
sfp->sm_fault_retries == N_FAULT_INIT);
} else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {