mirror of
https://github.com/qca/qca-swiss-army-knife.git
synced 2026-01-27 17:07:18 +01:00
Update ath10k-bdencoder
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
605442e9a8
commit
141f3b0e02
1 changed files with 38 additions and 11 deletions
|
|
@ -42,10 +42,14 @@ DEFAULT_JSON_FILE = 'board-%d.json' % DEFAULT_BD_API
|
|||
TYPE_LENGTH_SIZE = 8
|
||||
|
||||
ATH10K_BD_IE_BOARD = 0
|
||||
ATH10K_BD_IE_BOARD_EXT = 1
|
||||
|
||||
ATH10K_BD_IE_BOARD_NAME = 0
|
||||
ATH10K_BD_IE_BOARD_DATA = 1
|
||||
|
||||
ATH10K_BD_IE_BOARD_EXT_NAME = 0
|
||||
ATH10K_BD_IE_BOARD_EXT_DATA = 1
|
||||
|
||||
|
||||
def padding_needed(len):
|
||||
if len % 4 != 0:
|
||||
|
|
@ -96,8 +100,12 @@ class BoardName():
|
|||
|
||||
return self
|
||||
|
||||
def add_to_buf(self, buf, offset):
|
||||
return add_ie(buf, offset, ATH10K_BD_IE_BOARD_NAME, str(self.name))
|
||||
def add_to_buf(self, ebdf, buf, offset):
|
||||
ie_id = ATH10K_BD_IE_BOARD_NAME
|
||||
if ebdf:
|
||||
ie_id = ATH10K_BD_IE_BOARD_EXT_NAME
|
||||
|
||||
return add_ie(buf, offset, ie_id, str(self.name))
|
||||
|
||||
def __eq__(self, other):
|
||||
return self.name == other.name
|
||||
|
|
@ -124,8 +132,12 @@ class BoardData():
|
|||
|
||||
return self
|
||||
|
||||
def add_to_buf(self, buf, offset):
|
||||
return add_ie(buf, offset, ATH10K_BD_IE_BOARD_DATA, self.data)
|
||||
def add_to_buf(self, ebdf, buf, offset):
|
||||
ie_id = ATH10K_BD_IE_BOARD_DATA
|
||||
if ebdf:
|
||||
ie_id = ATH10K_BD_IE_BOARD_EXT_DATA
|
||||
|
||||
return add_ie(buf, offset, ie_id, self.data)
|
||||
|
||||
def __repr__(self):
|
||||
return self.__str__()
|
||||
|
|
@ -163,9 +175,12 @@ class Board():
|
|||
offset += TYPE_LENGTH_SIZE
|
||||
length -= TYPE_LENGTH_SIZE
|
||||
|
||||
if ie_id == ATH10K_BD_IE_BOARD_NAME:
|
||||
# FIXME: create separate ExtenderBoard() class so that we
|
||||
# don't need these "or" hacks here. Maybe add a common
|
||||
# abstract class to avoid code duplication?
|
||||
if ie_id == ATH10K_BD_IE_BOARD_NAME or ie_id == ATH10K_BD_IE_BOARD_EXT_NAME:
|
||||
self.names.append(BoardName.parse_ie(buf, offset, ie_len))
|
||||
elif ie_id == ATH10K_BD_IE_BOARD_DATA:
|
||||
elif ie_id == ATH10K_BD_IE_BOARD_DATA or ie_id == ATH10K_BD_IE_BOARD_EXT_DATA:
|
||||
self.data = BoardData.parse_ie(buf, offset, ie_len)
|
||||
|
||||
offset += ie_len + padding_needed(ie_len)
|
||||
|
|
@ -179,14 +194,19 @@ class Board():
|
|||
|
||||
offset += TYPE_LENGTH_SIZE
|
||||
|
||||
for name in self.names:
|
||||
offset = name.add_to_buf(buf, offset)
|
||||
ie_id = ATH10K_BD_IE_BOARD
|
||||
|
||||
offset = self.data.add_to_buf(buf, offset)
|
||||
if self.ebdf:
|
||||
ie_id = ATH10K_BD_IE_BOARD_EXT
|
||||
|
||||
for name in self.names:
|
||||
offset = name.add_to_buf(self.ebdf, buf, offset)
|
||||
|
||||
offset = self.data.add_to_buf(self.ebdf, buf, offset)
|
||||
|
||||
# write ie header as now we know the full length
|
||||
ie_len = offset - ie_offset - TYPE_LENGTH_SIZE
|
||||
struct.pack_into('<2i', buf, ie_offset, ATH10K_BD_IE_BOARD, ie_len)
|
||||
struct.pack_into('<2i', buf, ie_offset, ie_id, ie_len)
|
||||
|
||||
return offset
|
||||
|
||||
|
|
@ -210,16 +230,21 @@ class Board():
|
|||
def __init__(self):
|
||||
self.data = None
|
||||
self.names = []
|
||||
self.ebdf = False
|
||||
|
||||
|
||||
class BoardContainer:
|
||||
|
||||
def add_board(self, data, names):
|
||||
boardnames = []
|
||||
ebdf = False
|
||||
for name in names:
|
||||
if "bmi-eboard-id" in name:
|
||||
ebdf = True
|
||||
boardnames.append(BoardName(name))
|
||||
|
||||
board = Board()
|
||||
board.ebdf = ebdf
|
||||
board.data = BoardData(data)
|
||||
board.names = boardnames
|
||||
|
||||
|
|
@ -317,7 +342,9 @@ class BoardContainer:
|
|||
buf_len)
|
||||
return 1
|
||||
|
||||
if ie_id == ATH10K_BD_IE_BOARD:
|
||||
# FIXME: create separate ExtenderBoard() class and
|
||||
# self.extender_boards list
|
||||
if ie_id == ATH10K_BD_IE_BOARD or ie_id == ATH10K_BD_IE_BOARD_EXT:
|
||||
self.boards.append(Board.parse_ie(buf, offset, ie_len))
|
||||
|
||||
offset += ie_len + padding_needed(ie_len)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue