diff options
author | Vladimir Markovets <abam_a@yahoo.com> | 2021-07-22 00:09:22 +0200 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2022-01-08 21:31:15 +0100 |
commit | 6ced8cad8edd2a04fc6bb914c333c8aac9a1c825 (patch) | |
tree | 8e8a124d6d2f8043a5fa5870699538d7d8411da2 /target/linux/generic/pending-5.4/759-net-sfp-re-attempt-probing-for-phy.patch | |
parent | 77ee281a3ef44eb8b3c38a8db932737725c233fa (diff) | |
download | upstream-6ced8cad8edd2a04fc6bb914c333c8aac9a1c825.tar.gz upstream-6ced8cad8edd2a04fc6bb914c333c8aac9a1c825.tar.bz2 upstream-6ced8cad8edd2a04fc6bb914c333c8aac9a1c825.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>
(cherry picked from commit f032601ed7d70fe1f468219b68750230b6ea1906)
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.patch | 8 |
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) { |