mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 08:21:14 +00:00
0e5350db43
This backports the following upstream Linux patches net: sfp: add mode quirk for GPON module Ubiquiti U-Fiber Instant net: sfp: relax bitrate-derived mode check net: sfp: cope with SFPs that set both LOS normal and LOS inverted for 5.4 for mvebu platform. This fixes GPON modules: Ubiquiti U-Fiber Instant SFP GPON VSOL V2801F CarlitoxxPro CPGOS03-0490 v2.0 Signed-off-by: Marek Behún <marek.behun@nic.cz>
61 lines
2.1 KiB
Diff
61 lines
2.1 KiB
Diff
From bfa3cbb01c7ea34d7369c9bd2ec1b2dc67082b04 Mon Sep 17 00:00:00 2001
|
|
From: Russell King <rmk+kernel@armlinux.org.uk>
|
|
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 <rmk+kernel@armlinux.org.uk>
|
|
---
|
|
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
|
|
@@ -235,7 +235,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;
|
|
@@ -1514,7 +1514,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);
|
|
@@ -1988,7 +1988,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
|
|
@@ -2028,7 +2028,7 @@ static void sfp_sm_main(struct sfp *sfp,
|
|
* or t_start_up, so assume 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.
|
|
@@ -2041,7 +2041,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;
|
|
|