From 94b96b6c3a22884f0d3fbb1662d301887275cccc Mon Sep 17 00:00:00 2001 From: Peter Date: Thu, 21 Nov 2024 18:38:01 +0000 Subject: [PATCH] Take non-CMIS xcvrs out of lpmode in SFF Manager Fix non-CMIS transceivers in down state by bringing them out of lpmode in the SFF Manager Task. --- sonic-xcvrd/xcvrd/sff_mgr.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sonic-xcvrd/xcvrd/sff_mgr.py b/sonic-xcvrd/xcvrd/sff_mgr.py index 0940b6b54..488c79667 100644 --- a/sonic-xcvrd/xcvrd/sff_mgr.py +++ b/sonic-xcvrd/xcvrd/sff_mgr.py @@ -14,6 +14,7 @@ from .xcvrd_utilities.port_event_helper import PortChangeObserver from .xcvrd_utilities.xcvr_table_helper import XcvrTableHelper + from sonic_platform_base.sonic_xcvr.api.public.sff8472 import Sff8472Api except ImportError as e: raise ImportError(str(e) + " - required module not found") @@ -434,6 +435,18 @@ def task_worker(self): except (AttributeError, NotImplementedError): # Skip if these essential routines are not available continue + + if xcvr_inserted: + set_lp_success = ( + sfp.set_lpmode(False) + if isinstance(api, Sff8472Api) + else api.set_lpmode(False) + ) + if not set_lp_success: + self.log_error( + "{}: Failed to take module out of low power mode.".format( + lport) + ) if active_lanes is None: active_lanes = self.get_active_lanes_for_lport(lport, subport_idx,