On Sun, 29 Oct 2023 at 12:19, Karel Balej <balejk@xxxxxxxxx> wrote: > > Marvell SD8777 is a wireless chipset used for instance in the PXA1908 > SoC found for example in the samsung,coreprimevelte smartphone, with > which this was tested. The driver seems to be compatible with this > chipset so enable this support by adding the necessary information based > on the downstream code. > > Signed-off-by: Karel Balej <balejk@xxxxxxxxx> Acked-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> # For MMC Kind regards Uffe > --- > drivers/net/wireless/marvell/mwifiex/Kconfig | 4 ++-- > drivers/net/wireless/marvell/mwifiex/sdio.c | 19 +++++++++++++++++++ > drivers/net/wireless/marvell/mwifiex/sdio.h | 1 + > include/linux/mmc/sdio_ids.h | 1 + > 4 files changed, 23 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/marvell/mwifiex/Kconfig b/drivers/net/wireless/marvell/mwifiex/Kconfig > index b182f7155d66..a7bd2c5735f6 100644 > --- a/drivers/net/wireless/marvell/mwifiex/Kconfig > +++ b/drivers/net/wireless/marvell/mwifiex/Kconfig > @@ -10,13 +10,13 @@ config MWIFIEX > mwifiex. > > config MWIFIEX_SDIO > - tristate "Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897/SD8977/SD8978/SD8987/SD8997" > + tristate "Marvell WiFi-Ex Driver for SD8777/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/8978/8987/8997 chipsets with > + 8777/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 > diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.c b/drivers/net/wireless/marvell/mwifiex/sdio.c > index 774858cfe86f..c55f1f5669cb 100644 > --- a/drivers/net/wireless/marvell/mwifiex/sdio.c > +++ b/drivers/net/wireless/marvell/mwifiex/sdio.c > @@ -318,6 +318,21 @@ static const struct mwifiex_sdio_card_reg mwifiex_reg_sd89xx = { > 0x68, 0x69, 0x6a}, > }; > > +static const struct mwifiex_sdio_device mwifiex_sdio_sd8777 = { > + .firmware = SD8777_DEFAULT_FW_NAME, > + .reg = &mwifiex_reg_sd87xx, > + .max_ports = 16, > + .mp_agg_pkt_limit = 8, > + .tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K, > + .mp_tx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_16K, > + .mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_16K, > + .supports_sdio_new_mode = false, > + .has_control_mask = true, > + .can_dump_fw = false, > + .can_auto_tdls = false, > + .can_ext_scan = true, > +}; > + > static const struct mwifiex_sdio_device mwifiex_sdio_sd8786 = { > .firmware = SD8786_DEFAULT_FW_NAME, > .reg = &mwifiex_reg_sd87xx, > @@ -496,6 +511,7 @@ static struct memory_type_mapping mem_type_mapping_tbl[] = { > }; > > static const struct of_device_id mwifiex_sdio_of_match_table[] __maybe_unused = { > + { .compatible = "marvell,sd8777" }, > { .compatible = "marvell,sd8787" }, > { .compatible = "marvell,sd8897" }, > { .compatible = "marvell,sd8978" }, > @@ -924,6 +940,8 @@ static void mwifiex_sdio_coredump(struct device *dev) > > /* WLAN IDs */ > static const struct sdio_device_id mwifiex_ids[] = { > + {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8777_WLAN), > + .driver_data = (unsigned long)&mwifiex_sdio_sd8777}, > {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8786_WLAN), > .driver_data = (unsigned long) &mwifiex_sdio_sd8786}, > {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8787_WLAN), > @@ -3180,6 +3198,7 @@ MODULE_AUTHOR("Marvell International Ltd."); > MODULE_DESCRIPTION("Marvell WiFi-Ex SDIO Driver version " SDIO_VERSION); > MODULE_VERSION(SDIO_VERSION); > MODULE_LICENSE("GPL v2"); > +MODULE_FIRMWARE(SD8777_DEFAULT_FW_NAME); > MODULE_FIRMWARE(SD8786_DEFAULT_FW_NAME); > MODULE_FIRMWARE(SD8787_DEFAULT_FW_NAME); > MODULE_FIRMWARE(SD8797_DEFAULT_FW_NAME); > diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.h b/drivers/net/wireless/marvell/mwifiex/sdio.h > index ae94c172310f..ed92256b2302 100644 > --- a/drivers/net/wireless/marvell/mwifiex/sdio.h > +++ b/drivers/net/wireless/marvell/mwifiex/sdio.h > @@ -18,6 +18,7 @@ > > #include "main.h" > > +#define SD8777_DEFAULT_FW_NAME "mrvl/sd8777_uapsta.bin" > #define SD8786_DEFAULT_FW_NAME "mrvl/sd8786_uapsta.bin" > #define SD8787_DEFAULT_FW_NAME "mrvl/sd8787_uapsta.bin" > #define SD8797_DEFAULT_FW_NAME "mrvl/sd8797_uapsta.bin" > diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h > index 7fada7a714fe..c46ab35ceb20 100644 > --- a/include/linux/mmc/sdio_ids.h > +++ b/include/linux/mmc/sdio_ids.h > @@ -94,6 +94,7 @@ > #define SDIO_DEVICE_ID_MARVELL_8797_BT 0x912a > #define SDIO_DEVICE_ID_MARVELL_8897_WLAN 0x912d > #define SDIO_DEVICE_ID_MARVELL_8897_BT 0x912e > +#define SDIO_DEVICE_ID_MARVELL_8777_WLAN 0x9131 > #define SDIO_DEVICE_ID_MARVELL_8887_F0 0x9134 > #define SDIO_DEVICE_ID_MARVELL_8887_WLAN 0x9135 > #define SDIO_DEVICE_ID_MARVELL_8887_BT 0x9136 > -- > 2.42.0 >