mwifiex: Select firmware based on strapping
authorAndrejs Cainikovs <andrejs.cainikovs@toradex.com>
Fri, 22 Apr 2022 09:03:12 +0000 (11:03 +0200)
committerKalle Valo <kvalo@kernel.org>
Wed, 27 Apr 2022 04:56:31 +0000 (07:56 +0300)
commit255ca28a659d3cfb069f73c7644853ed93aecdb0
tree115a345b0f3c962395ab99f456aed3bb79bd12d5
parent68d57a07bfe5bb29b80cd8b8fa24c9d1ea104124
mwifiex: Select firmware based on strapping

Some WiFi/Bluetooth modules might have different host connection
options, allowing to either use SDIO for both WiFi and Bluetooth,
or SDIO for WiFi and UART for Bluetooth. It is possible to detect
whether a module has SDIO-SDIO or SDIO-UART connection by reading
its host strap register.

This change introduces a way to automatically select appropriate
firmware depending of the connection method, and removes a need
of symlinking or overwriting the original firmware file with a
required one.

Host strap register used in this commit comes from the NXP driver [1]
hosted at Code Aurora.

[1] https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_sdio_mmc.c?h=rel_imx_5.4.70_2.3.2&id=688b67b2c7220b01521ffe560da7eee33042c7bd#n1274

Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Reviewed-by: Alvin Šipraga <alsi@bang-olufsen.dk>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220422090313.125857-2-andrejs.cainikovs@toradex.com
drivers/net/wireless/marvell/mwifiex/sdio.c
drivers/net/wireless/marvell/mwifiex/sdio.h