* [PATCH 0/3] mwifiex material for next
@ 2023-01-27 14:00 Lukas Wunner
2023-01-27 14:01 ` [PATCH 1/3] wifi: mwifiex: Add missing compatible string for SD8787 Lukas Wunner
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Lukas Wunner @ 2023-01-27 14:00 UTC (permalink / raw)
To: Kalle Valo, Amitkumar Karwar, Ganapathi Bhat,
Sharvari Harisangam, Xinming Hu
Cc: linux-wireless, Sherry Sun, Matt Ranostay
Amend mwifiex with a missing compatible string, add support for
SD8978 chips (aka IW416) and silence a gratuitous message on probe.
The firmware for SD8978 is available at the following URL, I've reached
out to NXP to get it into the linux-firmware repository:
https://github.com/NXP/imx-firmware/raw/lf-5.15.52_2.1.0/nxp/FwImage_IW416_SD/sdiouartiw416_combo_v0.bin
Thanks!
Lukas Wunner (3):
wifi: mwifiex: Add missing compatible string for SD8787
wifi: mwifiex: Support SD8978 chipset
wifi: mwifiex: Support firmware hotfix version in GET_HW_SPEC
responses
.../bindings/net/wireless/marvell-8xxx.txt | 4 ++-
drivers/net/wireless/marvell/mwifiex/Kconfig | 5 ++--
drivers/net/wireless/marvell/mwifiex/cmdevt.c | 5 ++++
drivers/net/wireless/marvell/mwifiex/fw.h | 1 +
drivers/net/wireless/marvell/mwifiex/sdio.c | 26 +++++++++++++++++--
drivers/net/wireless/marvell/mwifiex/sdio.h | 1 +
include/linux/mmc/sdio_ids.h | 1 +
7 files changed, 38 insertions(+), 5 deletions(-)
--
2.39.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/3] wifi: mwifiex: Add missing compatible string for SD8787
2023-01-27 14:00 [PATCH 0/3] mwifiex material for next Lukas Wunner
@ 2023-01-27 14:01 ` Lukas Wunner
2023-02-13 16:52 ` Kalle Valo
2023-01-27 14:02 ` [PATCH 2/3] wifi: mwifiex: Support SD8978 chipset Lukas Wunner
2023-01-27 14:03 ` [PATCH 3/3] wifi: mwifiex: Support firmware hotfix version in GET_HW_SPEC responses Lukas Wunner
2 siblings, 1 reply; 5+ messages in thread
From: Lukas Wunner @ 2023-01-27 14:01 UTC (permalink / raw)
To: Kalle Valo, Amitkumar Karwar, Ganapathi Bhat,
Sharvari Harisangam, Xinming Hu
Cc: linux-wireless, Sherry Sun, Matt Ranostay
Commit e3fffc1f0b47 ("devicetree: document new marvell-8xxx and
pwrseq-sd8787 options") documented a compatible string for SD8787 in
the devicetree bindings, but neglected to add it to the mwifiex driver.
Fixes: e3fffc1f0b47 ("devicetree: document new marvell-8xxx and pwrseq-sd8787 options")
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: stable@vger.kernel.org # v4.11+
Cc: Matt Ranostay <mranostay@ti.com>
---
drivers/net/wireless/marvell/mwifiex/sdio.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.c b/drivers/net/wireless/marvell/mwifiex/sdio.c
index b8dc3b5c9ad9..9f506efa5370 100644
--- a/drivers/net/wireless/marvell/mwifiex/sdio.c
+++ b/drivers/net/wireless/marvell/mwifiex/sdio.c
@@ -480,6 +480,7 @@ static struct memory_type_mapping mem_type_mapping_tbl[] = {
};
static const struct of_device_id mwifiex_sdio_of_match_table[] = {
+ { .compatible = "marvell,sd8787" },
{ .compatible = "marvell,sd8897" },
{ .compatible = "marvell,sd8997" },
{ }
--
2.39.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] wifi: mwifiex: Support SD8978 chipset
2023-01-27 14:00 [PATCH 0/3] mwifiex material for next Lukas Wunner
2023-01-27 14:01 ` [PATCH 1/3] wifi: mwifiex: Add missing compatible string for SD8787 Lukas Wunner
@ 2023-01-27 14:02 ` Lukas Wunner
2023-01-27 14:03 ` [PATCH 3/3] wifi: mwifiex: Support firmware hotfix version in GET_HW_SPEC responses Lukas Wunner
2 siblings, 0 replies; 5+ messages in thread
From: Lukas Wunner @ 2023-01-27 14:02 UTC (permalink / raw)
To: Kalle Valo, Amitkumar Karwar, Ganapathi Bhat,
Sharvari Harisangam, Xinming Hu
Cc: linux-wireless, Sherry Sun, Matt Ranostay
The Marvell SD8978 (aka NXP IW416) uses identical registers as SD8987,
so reuse the existing mwifiex_reg_sd8987 definition.
Note that mwifiex_reg_sd8977 and mwifiex_reg_sd8997 are likewise
identical, save for the fw_dump_ctrl register: They define it as 0xf0
whereas mwifiex_reg_sd8987 defines it as 0xf9. I've verified that
0xf9 is the correct value on SD8978. NXP's out-of-tree driver uses
0xf9 for all of them, so there's a chance that 0xf0 is not correct
in the mwifiex_reg_sd8977 and mwifiex_reg_sd8997 definitions. I cannot
test that for lack of hardware, hence am leaving it as is.
NXP has only released a firmware which runs Bluetooth over UART.
Perhaps Bluetooth over SDIO is unsupported by this chipset.
Consequently, only an "sdiouart" firmware image is referenced, not an
alternative "sdsd" image.
Signed-off-by: Lukas Wunner <lukas@wunner.de>
---
.../bindings/net/wireless/marvell-8xxx.txt | 4 ++-
drivers/net/wireless/marvell/mwifiex/Kconfig | 5 ++--
drivers/net/wireless/marvell/mwifiex/sdio.c | 25 +++++++++++++++++--
drivers/net/wireless/marvell/mwifiex/sdio.h | 1 +
include/linux/mmc/sdio_ids.h | 1 +
5 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt b/Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt
index 9bf9bbac16e2..cdc303caf5f4 100644
--- a/Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt
+++ b/Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt
@@ -1,4 +1,4 @@
-Marvell 8787/8897/8997 (sd8787/sd8897/sd8997/pcie8997) SDIO/PCIE devices
+Marvell 8787/8897/8978/8997 (sd8787/sd8897/sd8978/sd8997/pcie8997) SDIO/PCIE devices
------
This node provides properties for controlling the Marvell SDIO/PCIE wireless device.
@@ -10,7 +10,9 @@ Required properties:
- compatible : should be one of the following:
* "marvell,sd8787"
* "marvell,sd8897"
+ * "marvell,sd8978"
* "marvell,sd8997"
+ * "nxp,iw416"
* "pci11ab,2b42"
* "pci1b4b,2b42"
diff --git a/drivers/net/wireless/marvell/mwifiex/Kconfig b/drivers/net/wireless/marvell/mwifiex/Kconfig
index 2b4ff2b78a7e..b182f7155d66 100644
--- a/drivers/net/wireless/marvell/mwifiex/Kconfig
+++ b/drivers/net/wireless/marvell/mwifiex/Kconfig
@@ -10,13 +10,14 @@ config MWIFIEX
mwifiex.
config MWIFIEX_SDIO
- tristate "Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997"
+ tristate "Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897/SD8977/SD8978/SD8987/SD8997"
depends on MWIFIEX && MMC
select FW_LOADER
select WANT_DEV_COREDUMP
help
This adds support for wireless adapters based on Marvell
- 8786/8787/8797/8887/8897/8977/8987/8997 chipsets with SDIO interface.
+ 8786/8787/8797/8887/8897/8977/8978/8987/8997 chipsets with
+ SDIO interface. SD8978 is also known as NXP IW416.
If you choose to build it as a module, it will be called
mwifiex_sdio.
diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.c b/drivers/net/wireless/marvell/mwifiex/sdio.c
index 9f506efa5370..c64e24c10ea6 100644
--- a/drivers/net/wireless/marvell/mwifiex/sdio.c
+++ b/drivers/net/wireless/marvell/mwifiex/sdio.c
@@ -263,7 +263,7 @@ static const struct mwifiex_sdio_card_reg mwifiex_reg_sd8887 = {
0x68, 0x69, 0x6a},
};
-static const struct mwifiex_sdio_card_reg mwifiex_reg_sd8987 = {
+static const struct mwifiex_sdio_card_reg mwifiex_reg_sd89xx = {
.start_rd_port = 0,
.start_wr_port = 0,
.base_0_reg = 0xF8,
@@ -394,6 +394,22 @@ static const struct mwifiex_sdio_device mwifiex_sdio_sd8977 = {
.can_ext_scan = true,
};
+static const struct mwifiex_sdio_device mwifiex_sdio_sd8978 = {
+ .firmware_sdiouart = SD8978_SDIOUART_FW_NAME,
+ .reg = &mwifiex_reg_sd89xx,
+ .max_ports = 32,
+ .mp_agg_pkt_limit = 16,
+ .tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_4K,
+ .mp_tx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,
+ .mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,
+ .supports_sdio_new_mode = true,
+ .has_control_mask = false,
+ .can_dump_fw = true,
+ .fw_dump_enh = true,
+ .can_auto_tdls = false,
+ .can_ext_scan = true,
+};
+
static const struct mwifiex_sdio_device mwifiex_sdio_sd8997 = {
.firmware = SD8997_DEFAULT_FW_NAME,
.firmware_sdiouart = SD8997_SDIOUART_FW_NAME,
@@ -428,7 +444,7 @@ static const struct mwifiex_sdio_device mwifiex_sdio_sd8887 = {
static const struct mwifiex_sdio_device mwifiex_sdio_sd8987 = {
.firmware = SD8987_DEFAULT_FW_NAME,
- .reg = &mwifiex_reg_sd8987,
+ .reg = &mwifiex_reg_sd89xx,
.max_ports = 32,
.mp_agg_pkt_limit = 16,
.tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K,
@@ -482,7 +498,9 @@ static struct memory_type_mapping mem_type_mapping_tbl[] = {
static const struct of_device_id mwifiex_sdio_of_match_table[] = {
{ .compatible = "marvell,sd8787" },
{ .compatible = "marvell,sd8897" },
+ { .compatible = "marvell,sd8978" },
{ .compatible = "marvell,sd8997" },
+ { .compatible = "nxp,iw416" },
{ }
};
@@ -920,6 +938,8 @@ static const struct sdio_device_id mwifiex_ids[] = {
.driver_data = (unsigned long)&mwifiex_sdio_sd8801},
{SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8977_WLAN),
.driver_data = (unsigned long)&mwifiex_sdio_sd8977},
+ {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8978_WLAN),
+ .driver_data = (unsigned long)&mwifiex_sdio_sd8978},
{SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8987_WLAN),
.driver_data = (unsigned long)&mwifiex_sdio_sd8987},
{SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8997_WLAN),
@@ -3164,6 +3184,7 @@ MODULE_FIRMWARE(SD8797_DEFAULT_FW_NAME);
MODULE_FIRMWARE(SD8897_DEFAULT_FW_NAME);
MODULE_FIRMWARE(SD8887_DEFAULT_FW_NAME);
MODULE_FIRMWARE(SD8977_DEFAULT_FW_NAME);
+MODULE_FIRMWARE(SD8978_SDIOUART_FW_NAME);
MODULE_FIRMWARE(SD8987_DEFAULT_FW_NAME);
MODULE_FIRMWARE(SD8997_DEFAULT_FW_NAME);
MODULE_FIRMWARE(SD8997_SDIOUART_FW_NAME);
diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.h b/drivers/net/wireless/marvell/mwifiex/sdio.h
index 3a24bb48b299..ae94c172310f 100644
--- a/drivers/net/wireless/marvell/mwifiex/sdio.h
+++ b/drivers/net/wireless/marvell/mwifiex/sdio.h
@@ -25,6 +25,7 @@
#define SD8887_DEFAULT_FW_NAME "mrvl/sd8887_uapsta.bin"
#define SD8801_DEFAULT_FW_NAME "mrvl/sd8801_uapsta.bin"
#define SD8977_DEFAULT_FW_NAME "mrvl/sdsd8977_combo_v2.bin"
+#define SD8978_SDIOUART_FW_NAME "mrvl/sdiouartiw416_combo_v0.bin"
#define SD8987_DEFAULT_FW_NAME "mrvl/sd8987_uapsta.bin"
#define SD8997_DEFAULT_FW_NAME "mrvl/sdsd8997_combo_v4.bin"
#define SD8997_SDIOUART_FW_NAME "mrvl/sdiouart8997_combo_v4.bin"
diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
index 74f9d9a6d330..0e4ef9c5127a 100644
--- a/include/linux/mmc/sdio_ids.h
+++ b/include/linux/mmc/sdio_ids.h
@@ -102,6 +102,7 @@
#define SDIO_DEVICE_ID_MARVELL_8977_BT 0x9146
#define SDIO_DEVICE_ID_MARVELL_8987_WLAN 0x9149
#define SDIO_DEVICE_ID_MARVELL_8987_BT 0x914a
+#define SDIO_DEVICE_ID_MARVELL_8978_WLAN 0x9159
#define SDIO_VENDOR_ID_MEDIATEK 0x037a
#define SDIO_DEVICE_ID_MEDIATEK_MT7663 0x7663
--
2.39.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] wifi: mwifiex: Support firmware hotfix version in GET_HW_SPEC responses
2023-01-27 14:00 [PATCH 0/3] mwifiex material for next Lukas Wunner
2023-01-27 14:01 ` [PATCH 1/3] wifi: mwifiex: Add missing compatible string for SD8787 Lukas Wunner
2023-01-27 14:02 ` [PATCH 2/3] wifi: mwifiex: Support SD8978 chipset Lukas Wunner
@ 2023-01-27 14:03 ` Lukas Wunner
2 siblings, 0 replies; 5+ messages in thread
From: Lukas Wunner @ 2023-01-27 14:03 UTC (permalink / raw)
To: Kalle Valo, Amitkumar Karwar, Ganapathi Bhat,
Sharvari Harisangam, Xinming Hu
Cc: linux-wireless, Sherry Sun, Matt Ranostay
Support the firmware hotfix version in GET_HW_SPEC responses to avoid an
irritating "Unknown api_id: 5" message on probe.
Based on this commit in NXP's GPLv2-licensed out-of-tree driver:
https://github.com/nxp-imx/mwifiex/commit/27fd8ecca504
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: Sherry Sun <sherry.sun@nxp.com>
---
drivers/net/wireless/marvell/mwifiex/cmdevt.c | 5 +++++
drivers/net/wireless/marvell/mwifiex/fw.h | 1 +
2 files changed, 6 insertions(+)
diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
index d3339d67e7a0..3756aa247e77 100644
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
@@ -1607,6 +1607,11 @@ int mwifiex_ret_get_hw_spec(struct mwifiex_private *priv,
api_rev->major_ver,
api_rev->minor_ver);
break;
+ case FW_HOTFIX_VER_ID:
+ mwifiex_dbg(adapter, INFO,
+ "Firmware hotfix version %d\n",
+ api_rev->major_ver);
+ break;
default:
mwifiex_dbg(adapter, FATAL,
"Unknown api_id: %d\n",
diff --git a/drivers/net/wireless/marvell/mwifiex/fw.h b/drivers/net/wireless/marvell/mwifiex/fw.h
index b4f945a549f7..c32478dfe357 100644
--- a/drivers/net/wireless/marvell/mwifiex/fw.h
+++ b/drivers/net/wireless/marvell/mwifiex/fw.h
@@ -1048,6 +1048,7 @@ enum API_VER_ID {
FW_API_VER_ID = 2,
UAP_FW_API_VER_ID = 3,
CHANRPT_API_VER_ID = 4,
+ FW_HOTFIX_VER_ID = 5,
};
struct hw_spec_api_rev {
--
2.39.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] wifi: mwifiex: Add missing compatible string for SD8787
2023-01-27 14:01 ` [PATCH 1/3] wifi: mwifiex: Add missing compatible string for SD8787 Lukas Wunner
@ 2023-02-13 16:52 ` Kalle Valo
0 siblings, 0 replies; 5+ messages in thread
From: Kalle Valo @ 2023-02-13 16:52 UTC (permalink / raw)
To: Lukas Wunner
Cc: Amitkumar Karwar, Ganapathi Bhat, Sharvari Harisangam,
Xinming Hu, linux-wireless, Sherry Sun, Matt Ranostay
Lukas Wunner <lukas@wunner.de> wrote:
> Commit e3fffc1f0b47 ("devicetree: document new marvell-8xxx and
> pwrseq-sd8787 options") documented a compatible string for SD8787 in
> the devicetree bindings, but neglected to add it to the mwifiex driver.
>
> Fixes: e3fffc1f0b47 ("devicetree: document new marvell-8xxx and pwrseq-sd8787 options")
> Signed-off-by: Lukas Wunner <lukas@wunner.de>
> Cc: stable@vger.kernel.org # v4.11+
> Cc: Matt Ranostay <mranostay@ti.com>
3 patches applied to wireless-next.git, thanks.
36dd7a4c6226 wifi: mwifiex: Add missing compatible string for SD8787
bba047f15851 wifi: mwifiex: Support SD8978 chipset
7715d79553de wifi: mwifiex: Support firmware hotfix version in GET_HW_SPEC responses
--
https://patchwork.kernel.org/project/linux-wireless/patch/320de5005ff3b8fd76be2d2b859fd021689c3681.1674827105.git.lukas@wunner.de/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-02-13 16:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-27 14:00 [PATCH 0/3] mwifiex material for next Lukas Wunner
2023-01-27 14:01 ` [PATCH 1/3] wifi: mwifiex: Add missing compatible string for SD8787 Lukas Wunner
2023-02-13 16:52 ` Kalle Valo
2023-01-27 14:02 ` [PATCH 2/3] wifi: mwifiex: Support SD8978 chipset Lukas Wunner
2023-01-27 14:03 ` [PATCH 3/3] wifi: mwifiex: Support firmware hotfix version in GET_HW_SPEC responses Lukas Wunner
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.