Skip to content

Commit

Permalink
Set Class 5-7 power for SFF8636 SFF8436
Browse files Browse the repository at this point in the history
Set Class 5-7 power for SFF8636 SFF8436
Change the driver based on the optics inserted
  • Loading branch information
jemifdo committed Jul 3, 2024
1 parent d4a82d0 commit 6f79f28
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ def reset(self):
return False
return super().reset()

def get_presence(self):
presence = PddfSfp.get_presence(self)
if not presence and self._xcvr_api != None:
self._xcvr_api = None

return presence

def get_xcvr_api(self):
if self._xcvr_api is None and self.get_presence():
self.refresh_xcvr_api()
Expand Down Expand Up @@ -58,6 +65,10 @@ def get_xcvr_api(self):
with open(new_dev_path, 'w') as fd:
fd.write("{} 0x50".format(new_driver))

if api_name == 'Sff8636Api' or \
api_name == 'Sff8436Api':
self.write_eeprom(93,1,[0x04])

return self._xcvr_api

def get_platform_media_key(self, transceiver_dict, port_speed, lane_count):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,13 @@ def read_eeprom(self, offset, num_bytes):
self.eeprom_lock.release()
return bytes

def get_presence(self):
presence = PddfSfp.get_presence(self)
if not presence and self._xcvr_api != None:
self._xcvr_api = None

return presence

def get_xcvr_api(self):
if self._xcvr_api is None and self.get_presence():
self.refresh_xcvr_api()
Expand Down Expand Up @@ -131,6 +138,10 @@ def get_xcvr_api(self):
with open(new_dev_path, 'w') as fd:
fd.write("{} 0x50".format(new_driver))

if api_name == 'Sff8636Api' or \
api_name == 'Sff8436Api':
self.write_eeprom(93,1,[0x04])

return self._xcvr_api

def get_platform_media_key(self, transceiver_dict, port_speed, lane_count):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ class Sfp(PddfSfp):
def __init__(self, index, pddf_data=None, pddf_plugin_data=None):
PddfSfp.__init__(self, index, pddf_data, pddf_plugin_data)

def get_presence(self):
presence = PddfSfp.get_presence(self)
if not presence and self._xcvr_api != None:
self._xcvr_api = None

return presence

def get_xcvr_api(self):
if self._xcvr_api is None and self.get_presence():
self.refresh_xcvr_api()
Expand Down Expand Up @@ -51,6 +58,10 @@ def get_xcvr_api(self):
with open(new_dev_path, 'w') as fd:
fd.write("{} 0x50".format(new_driver))

if api_name == 'Sff8636Api' or \
api_name == 'Sff8436Api':
self.write_eeprom(93,1,[0x04])

return self._xcvr_api

def get_platform_media_key(self, transceiver_dict, port_speed, lane_count):
Expand Down

0 comments on commit 6f79f28

Please sign in to comment.