Thread (1 message) 1 message, 1 author, 2022-05-10

Re: [PATCH v3] ath10k: improve BDF search fallback strategy

From: Kalle Valo <kvalo@kernel.org>
Date: 2022-05-10 15:41:14
Also in: linux-wireless, lkml

Abhishek Kumar [off-list ref] writes:
Board data files wrapped inside board-2.bin files are
identified based on a combination of bus architecture,
chip-id, board-id or variants. Here is one such example
of a BDF entry in board-2.bin file:
bus=snoc,qmi-board-id=67,qmi-chip-id=320,variant=GO_XXXX
It is possible for few platforms none of the combinations
of bus,qmi-board,chip-id or variants match, e.g. if
board-id is not programmed and thus reads board-id=0xff,
there won't be any matching BDF to be found. In such
situations, the wlan will fail to enumerate.

Currently, to search for BDF, there are two fallback
boardnames creates to search for BDFs in case the full BDF
is not found. It is still possible that even the fallback
boardnames do not match.

As an improvement, search for BDF with full BDF combination
and perform the fallback searches by stripping down the last
elements until a BDF entry is found or none is found for all
possible BDF combinations.e.g.
Search for initial BDF first then followed by reduced BDF
names as follows:
bus=snoc,qmi-board-id=67,qmi-chip-id=320,variant=GO_XXXX
bus=snoc,qmi-board-id=67,qmi-chip-id=320
bus=snoc,qmi-board-id=67
bus=snoc
<No BDF found>

Tested-on: WCN3990/hw1.0 WLAN.HL.3.2.2.c10-00754-QCAHLSWMTPL-1
Signed-off-by: Abhishek Kumar <redacted>
[...]
 static int ath10k_core_fetch_board_data_api_n(struct ath10k *ar,
 					      const char *boardname,
-					      const char *fallback_boardname1,
-					      const char *fallback_boardname2,
 					      const char *filename)
 {
-	size_t len, magic_len;
+	size_t len, magic_len, board_len;
 	const u8 *data;
 	int ret;
+	char temp_boardname[100];
+
+	board_len = 100 * sizeof(temp_boardname[0]);
Why not:

board_len = sizeof(temp_board-name);

That way number 100 is used only once.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help