From 26c8346d958e7c2f60d0c2fc5212d55bd5828911 Mon Sep 17 00:00:00 2001 From: andywongarista <78833093+andywongarista@users.noreply.github.com> Date: Tue, 26 Oct 2021 20:49:34 -0700 Subject: [PATCH] Fix cmis cable length issue (#225) --- sonic_platform_base/sonic_xcvr/fields/public/cmis.py | 1 + sonic_platform_base/sonic_xcvr/mem_maps/public/cmis.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sonic_platform_base/sonic_xcvr/fields/public/cmis.py b/sonic_platform_base/sonic_xcvr/fields/public/cmis.py index f8208d59aae3..582f2175b3aa 100644 --- a/sonic_platform_base/sonic_xcvr/fields/public/cmis.py +++ b/sonic_platform_base/sonic_xcvr/fields/public/cmis.py @@ -3,6 +3,7 @@ class CableLenField(NumberRegField): def __init__(self, name, offset, *fields, **kwargs): + kwargs["deps"] = [consts.LEN_MULT_FIELD] super(CableLenField, self).__init__(name, offset, *fields, **kwargs) def decode(self, raw_data, **decoded_deps): diff --git a/sonic_platform_base/sonic_xcvr/mem_maps/public/cmis.py b/sonic_platform_base/sonic_xcvr/mem_maps/public/cmis.py index c9bd9283911c..9e9e27bc06bc 100644 --- a/sonic_platform_base/sonic_xcvr/mem_maps/public/cmis.py +++ b/sonic_platform_base/sonic_xcvr/mem_maps/public/cmis.py @@ -48,10 +48,10 @@ def __init__(self, codes): *(RegBitField("%s_%d" % (consts.LEN_MULT_FIELD, bit), bit) for bit in range (6, 8)) ), CableLenField(consts.LENGTH_ASSEMBLY_FIELD, self.get_addr(0x0, 202), - *(RegBitField("%s_%d" % (consts.LENGTH_ASSEMBLY_FIELD, bit), bit) for bit in range(0, 6)), - deps=[consts.LEN_MULT_FIELD] + *(RegBitField("%s_%d" % (consts.LENGTH_ASSEMBLY_FIELD, bit), bit) for bit in range(0, 6)) ), CodeRegField(consts.CONNECTOR_FIELD, self.get_addr(0x0, 203), self.codes.CONNECTORS), + deps=[consts.LEN_MULT_FIELD] ) self.MODULE_LEVEL_MONITORS = RegGroupField(consts.MODULE_MONITORS_FIELD,