From 947163b9d28db96923f91301d2289ec195a3f61f Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Wed, 4 Dec 2019 23:11:34 +0100 Subject: kernel: sfp: re-attempt probing for phy Add patches retrying to probe the PHY to restore support for PHYs taking longer to initialize without breaking modules without PHYs. Patches taken from http://git.armlinux.org.uk/cgit/linux-arm.git/log/?h=phy Signed-off-by: Jonas Gorski --- .../757-net-sfp-rename-sm_retries.patch | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 target/linux/generic/pending-4.19/757-net-sfp-rename-sm_retries.patch (limited to 'target/linux/generic/pending-4.19/757-net-sfp-rename-sm_retries.patch') diff --git a/target/linux/generic/pending-4.19/757-net-sfp-rename-sm_retries.patch b/target/linux/generic/pending-4.19/757-net-sfp-rename-sm_retries.patch new file mode 100644 index 0000000000..b347d2c90a --- /dev/null +++ b/target/linux/generic/pending-4.19/757-net-sfp-rename-sm_retries.patch @@ -0,0 +1,60 @@ +From bfa3cbb01c7ea34d7369c9bd2ec1b2dc67082b04 Mon Sep 17 00:00:00 2001 +From: Russell King +Date: Mon, 2 Dec 2019 18:06:44 +0000 +Subject: [PATCH 2/4] net: sfp: rename sm_retries + +Rename sm_retries as sm_fault_retries, as this is what this member is +tracking. + +Signed-off-by: Russell King +--- + drivers/net/phy/sfp.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/net/phy/sfp.c ++++ b/drivers/net/phy/sfp.c +@@ -222,7 +222,7 @@ struct sfp { + unsigned char sm_mod_tries; + unsigned char sm_dev_state; + unsigned short sm_state; +- unsigned int sm_retries; ++ unsigned char sm_fault_retries; + + struct sfp_eeprom_id id; + unsigned int module_power_mW; +@@ -1414,7 +1414,7 @@ static bool sfp_los_event_inactive(struc + + static void sfp_sm_fault(struct sfp *sfp, unsigned int next_state, bool warn) + { +- if (sfp->sm_retries && !--sfp->sm_retries) { ++ if (sfp->sm_fault_retries && !--sfp->sm_fault_retries) { + dev_err(sfp->dev, + "module persistently indicates fault, disabling\n"); + sfp_sm_next(sfp, SFP_S_TX_DISABLE, 0); +@@ -1811,7 +1811,7 @@ static void sfp_sm_main(struct sfp *sfp, + sfp_module_tx_enable(sfp); + + /* Initialise the fault clearance retries */ +- sfp->sm_retries = N_FAULT_INIT; ++ sfp->sm_fault_retries = N_FAULT_INIT; + + /* We need to check the TX_FAULT state, which is not defined + * while TX_DISABLE is asserted. The earliest we want to do +@@ -1850,7 +1850,7 @@ static void sfp_sm_main(struct sfp *sfp, + * there is a fault. + */ + sfp_sm_fault(sfp, SFP_S_INIT_TX_FAULT, +- sfp->sm_retries == N_FAULT_INIT); ++ sfp->sm_fault_retries == N_FAULT_INIT); + } else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) { + init_done: /* TX_FAULT deasserted or we timed out with TX_FAULT + * clear. Probe for the PHY and check the LOS state. +@@ -1863,7 +1863,7 @@ static void sfp_sm_main(struct sfp *sfp, + sfp_sm_link_check_los(sfp); + + /* Reset the fault retry count */ +- sfp->sm_retries = N_FAULT; ++ sfp->sm_fault_retries = N_FAULT; + } + break; + -- cgit v1.2.3