Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
--- a/drivers/net/wireless/marvell/mwl8k.c
|
||||
+++ b/drivers/net/wireless/marvell/mwl8k.c
|
||||
@@ -5707,6 +5707,7 @@ MODULE_FIRMWARE("mwl8k/fmimage_8366.fw")
|
||||
MODULE_FIRMWARE(MWL8K_8366_AP_FW(MWL8K_8366_AP_FW_API));
|
||||
|
||||
static const struct pci_device_id mwl8k_pci_id_table[] = {
|
||||
+ { PCI_VDEVICE(MARVELL, 0x2a02), .driver_data = MWL8363, },
|
||||
{ PCI_VDEVICE(MARVELL, 0x2a0a), .driver_data = MWL8363, },
|
||||
{ PCI_VDEVICE(MARVELL, 0x2a0c), .driver_data = MWL8363, },
|
||||
{ PCI_VDEVICE(MARVELL, 0x2a24), .driver_data = MWL8363, },
|
||||
@@ -0,0 +1,21 @@
|
||||
--- a/drivers/net/wireless/marvell/libertas/cfg.c
|
||||
+++ b/drivers/net/wireless/marvell/libertas/cfg.c
|
||||
@@ -2101,6 +2101,8 @@ struct wireless_dev *lbs_cfg_alloc(struc
|
||||
goto err_wiphy_new;
|
||||
}
|
||||
|
||||
+ set_wiphy_dev(wdev->wiphy, dev);
|
||||
+
|
||||
return wdev;
|
||||
|
||||
err_wiphy_new:
|
||||
--- a/drivers/net/wireless/marvell/libertas/main.c
|
||||
+++ b/drivers/net/wireless/marvell/libertas/main.c
|
||||
@@ -935,6 +935,7 @@ struct lbs_private *lbs_add_card(void *c
|
||||
goto err_adapter;
|
||||
}
|
||||
|
||||
+ dev_net_set(dev, wiphy_net(wdev->wiphy));
|
||||
dev->ieee80211_ptr = wdev;
|
||||
dev->ml_priv = priv;
|
||||
SET_NETDEV_DEV(dev, dmdev);
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/drivers/net/wireless/marvell/libertas/cfg.c
|
||||
+++ b/drivers/net/wireless/marvell/libertas/cfg.c
|
||||
@@ -2178,6 +2178,8 @@ int lbs_cfg_register(struct lbs_private
|
||||
wdev->wiphy->n_cipher_suites = ARRAY_SIZE(cipher_suites);
|
||||
wdev->wiphy->reg_notifier = lbs_reg_notifier;
|
||||
|
||||
+ memcpy(wdev->wiphy->perm_addr, priv->current_addr, ETH_ALEN);
|
||||
+
|
||||
ret = wiphy_register(wdev->wiphy);
|
||||
if (ret < 0)
|
||||
pr_err("cannot register wiphy device\n");
|
||||
@@ -0,0 +1,41 @@
|
||||
From ef8098cd6cb8b5989afef2e8461fe6ba9570a854 Mon Sep 17 00:00:00 2001
|
||||
From: Josef Schlehofer <pepe.schlehofer@gmail.com>
|
||||
Date: Wed, 24 Nov 2021 12:47:40 +0100
|
||||
Subject: [PATCH] mwifiex: increase the global limit up to 4 SSID
|
||||
|
||||
Firmware for SDIO (88W8997), which is used in Turris MOX SDIO addon [1],
|
||||
allows up to 4 SSID. Unfortunately, driver (even in mainline kernel)
|
||||
has a global limit for all Marvell cards up to 3 SSID.
|
||||
|
||||
Pali Rohár tested this patch and verified that the SDIO Wi-Fi addon works
|
||||
with the 4 SSID. So, let's increase the global limit from 3 to 4.
|
||||
|
||||
Ideally, this patch should be done differently before sending
|
||||
it to Linux kernel. It means that limit definition should be moved to
|
||||
the card-specific structure.
|
||||
|
||||
[1] https://docs.turris.cz/hw/mox/addons/#wi-fi-sdio
|
||||
---
|
||||
drivers/net/wireless/marvell/mwifiex/decl.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/decl.h
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/decl.h
|
||||
@@ -18,7 +18,7 @@
|
||||
#include <net/cfg80211.h>
|
||||
|
||||
#define MWIFIEX_BSS_COEX_COUNT 2
|
||||
-#define MWIFIEX_MAX_BSS_NUM (3)
|
||||
+#define MWIFIEX_MAX_BSS_NUM (4)
|
||||
|
||||
#define MWIFIEX_DMA_ALIGN_SZ 64
|
||||
#define MWIFIEX_RX_HEADROOM 64
|
||||
@@ -100,7 +100,7 @@
|
||||
#define MWIFIEX_RATE_INDEX_OFDM0 4
|
||||
|
||||
#define MWIFIEX_MAX_STA_NUM 3
|
||||
-#define MWIFIEX_MAX_UAP_NUM 3
|
||||
+#define MWIFIEX_MAX_UAP_NUM 4
|
||||
#define MWIFIEX_MAX_P2P_NUM 3
|
||||
|
||||
#define MWIFIEX_A_BAND_START_FREQ 5000
|
||||
@@ -0,0 +1,20 @@
|
||||
--- a/drivers/net/wireless/marvell/mwl8k.c
|
||||
+++ b/drivers/net/wireless/marvell/mwl8k.c
|
||||
@@ -6293,6 +6293,8 @@ static int mwl8k_probe(struct pci_dev *p
|
||||
|
||||
priv->running_bsses = 0;
|
||||
|
||||
+ wait_for_completion(&priv->firmware_loading_complete);
|
||||
+
|
||||
return rc;
|
||||
|
||||
err_stop_firmware:
|
||||
@@ -6326,8 +6328,6 @@ static void mwl8k_remove(struct pci_dev
|
||||
return;
|
||||
priv = hw->priv;
|
||||
|
||||
- wait_for_completion(&priv->firmware_loading_complete);
|
||||
-
|
||||
if (priv->fw_state == FW_STATE_ERROR) {
|
||||
mwl8k_hw_reset(priv);
|
||||
goto unmap;
|
||||
@@ -0,0 +1,189 @@
|
||||
From f7252b1b5755150535af226e806594bbefd45e0f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
||||
Date: Sun, 26 Sep 2021 14:39:44 +0200
|
||||
Subject: [PATCH] mwifiex: Print stringified name of command in error log
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Failed hex command number in error log is hard to understand.
|
||||
So add also more human readable stringified command name into error log.
|
||||
|
||||
Signed-off-by: Pali Rohár <pali@kernel.org>
|
||||
---
|
||||
drivers/net/wireless/marvell/mwifiex/cmdevt.c | 96 +++++++++++++++++--
|
||||
drivers/net/wireless/marvell/mwifiex/main.h | 2 +
|
||||
.../wireless/marvell/mwifiex/sta_cmdresp.c | 5 +-
|
||||
.../net/wireless/marvell/mwifiex/uap_cmd.c | 3 +-
|
||||
4 files changed, 95 insertions(+), 11 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
||||
@@ -16,6 +16,85 @@
|
||||
|
||||
static void mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter);
|
||||
|
||||
+const char *
|
||||
+mwifiex_cmd_to_str(u16 command)
|
||||
+{
|
||||
+ switch (command) {
|
||||
+ case HostCmd_CMD_GET_HW_SPEC: return "GET_HW_SPEC";
|
||||
+ case HostCmd_CMD_802_11_SCAN: return "SCAN";
|
||||
+ case HostCmd_CMD_802_11_GET_LOG: return "GET_LOG";
|
||||
+ case HostCmd_CMD_MAC_MULTICAST_ADR: return "MAC_MULTICAST_ADR";
|
||||
+ case HostCmd_CMD_802_11_EEPROM_ACCESS: return "EEPROM_ACCESS";
|
||||
+ case HostCmd_CMD_802_11_ASSOCIATE: return "ASSOCIATE";
|
||||
+ case HostCmd_CMD_802_11_SNMP_MIB: return "SNMP_MIB";
|
||||
+ case HostCmd_CMD_MAC_REG_ACCESS: return "MAC_REG_ACCESS";
|
||||
+ case HostCmd_CMD_BBP_REG_ACCESS: return "BBP_REG_ACCESS";
|
||||
+ case HostCmd_CMD_RF_REG_ACCESS: return "RF_REG_ACCESS";
|
||||
+ case HostCmd_CMD_PMIC_REG_ACCESS: return "PMIC_REG_ACCESS";
|
||||
+ case HostCmd_CMD_RF_TX_PWR: return "RF_TX_PWR";
|
||||
+ case HostCmd_CMD_RF_ANTENNA: return "RF_ANTENNA";
|
||||
+ case HostCmd_CMD_802_11_DEAUTHENTICATE: return "DEAUTHENTICATE";
|
||||
+ case HostCmd_CMD_MAC_CONTROL: return "MAC_CONTROL";
|
||||
+ case HostCmd_CMD_802_11_AD_HOC_START: return "AD_HOC_START";
|
||||
+ case HostCmd_CMD_802_11_AD_HOC_JOIN: return "AD_HOC_JOIN";
|
||||
+ case HostCmd_CMD_802_11_AD_HOC_STOP: return "AD_HOC_STOP";
|
||||
+ case HostCmd_CMD_802_11_MAC_ADDRESS: return "MAC_ADDRESS";
|
||||
+ case HostCmd_CMD_802_11D_DOMAIN_INFO: return "DOMAIN_INFO";
|
||||
+ case HostCmd_CMD_802_11_KEY_MATERIAL: return "KEY_MATERIAL";
|
||||
+ case HostCmd_CMD_802_11_BG_SCAN_CONFIG: return "BG_SCAN_CONFIG";
|
||||
+ case HostCmd_CMD_802_11_BG_SCAN_QUERY: return "BG_SCAN_QUERY";
|
||||
+ case HostCmd_CMD_WMM_GET_STATUS: return "WMM_GET_STATUS";
|
||||
+ case HostCmd_CMD_802_11_SUBSCRIBE_EVENT: return "SUBSCRIBE_EVENT";
|
||||
+ case HostCmd_CMD_802_11_TX_RATE_QUERY: return "TX_RATE_QUERY";
|
||||
+ case HostCmd_CMD_802_11_IBSS_COALESCING_STATUS: return "IBSS_COALESCING_STATUS";
|
||||
+ case HostCmd_CMD_MEM_ACCESS: return "MEM_ACCESS";
|
||||
+ case HostCmd_CMD_CFG_DATA: return "CFG_DATA";
|
||||
+ case HostCmd_CMD_VERSION_EXT: return "VERSION_EXT";
|
||||
+ case HostCmd_CMD_MEF_CFG: return "MEF_CFG";
|
||||
+ case HostCmd_CMD_RSSI_INFO: return "RSSI_INFO";
|
||||
+ case HostCmd_CMD_FUNC_INIT: return "FUNC_INIT";
|
||||
+ case HostCmd_CMD_FUNC_SHUTDOWN: return "FUNC_SHUTDOWN";
|
||||
+ case HOST_CMD_APCMD_SYS_RESET: return "SYS_RESET";
|
||||
+ case HostCmd_CMD_UAP_SYS_CONFIG: return "UAP_SYS_CONFIG";
|
||||
+ case HostCmd_CMD_UAP_BSS_START: return "UAP_BSS_START";
|
||||
+ case HostCmd_CMD_UAP_BSS_STOP: return "UAP_BSS_STOP";
|
||||
+ case HOST_CMD_APCMD_STA_LIST: return "STA_LIST";
|
||||
+ case HostCmd_CMD_UAP_STA_DEAUTH: return "UAP_STA_DEAUTH";
|
||||
+ case HostCmd_CMD_11N_CFG: return "11N_CFG";
|
||||
+ case HostCmd_CMD_11N_ADDBA_REQ: return "ADDBA_REQ";
|
||||
+ case HostCmd_CMD_11N_ADDBA_RSP: return "ADDBA_RSP";
|
||||
+ case HostCmd_CMD_11N_DELBA: return "DELBA";
|
||||
+ case HostCmd_CMD_RECONFIGURE_TX_BUFF: return "RECONFIGURE_TX_BUFF";
|
||||
+ case HostCmd_CMD_CHAN_REPORT_REQUEST: return "CHAN_REPORT_REQUEST";
|
||||
+ case HostCmd_CMD_AMSDU_AGGR_CTRL: return "AMSDU_AGGR_CTRL";
|
||||
+ case HostCmd_CMD_TXPWR_CFG: return "TXPWR_CFG";
|
||||
+ case HostCmd_CMD_TX_RATE_CFG: return "TX_RATE_CFG";
|
||||
+ case HostCmd_CMD_ROBUST_COEX: return "ROBUST_COEX";
|
||||
+ case HostCmd_CMD_802_11_PS_MODE_ENH: return "PS_MODE_ENH";
|
||||
+ case HostCmd_CMD_802_11_HS_CFG_ENH: return "HS_CFG_ENH";
|
||||
+ case HostCmd_CMD_P2P_MODE_CFG: return "P2P_MODE_CFG";
|
||||
+ case HostCmd_CMD_CAU_REG_ACCESS: return "CAU_REG_ACCESS";
|
||||
+ case HostCmd_CMD_SET_BSS_MODE: return "SET_BSS_MODE";
|
||||
+ case HostCmd_CMD_PCIE_DESC_DETAILS: return "PCIE_DESC_DETAILS";
|
||||
+ case HostCmd_CMD_802_11_SCAN_EXT: return "SCAN_EXT";
|
||||
+ case HostCmd_CMD_COALESCE_CFG: return "COALESCE_CFG";
|
||||
+ case HostCmd_CMD_MGMT_FRAME_REG: return "MGMT_FRAME_REG";
|
||||
+ case HostCmd_CMD_REMAIN_ON_CHAN: return "REMAIN_ON_CHAN";
|
||||
+ case HostCmd_CMD_GTK_REKEY_OFFLOAD_CFG: return "GTK_REKEY_OFFLOAD_CFG";
|
||||
+ case HostCmd_CMD_11AC_CFG: return "11AC_CFG";
|
||||
+ case HostCmd_CMD_HS_WAKEUP_REASON: return "HS_WAKEUP_REASON";
|
||||
+ case HostCmd_CMD_TDLS_CONFIG: return "TDLS_CONFIG";
|
||||
+ case HostCmd_CMD_MC_POLICY: return "MC_POLICY";
|
||||
+ case HostCmd_CMD_TDLS_OPER: return "TDLS_OPER";
|
||||
+ case HostCmd_CMD_FW_DUMP_EVENT: return "FW_DUMP_EVENT";
|
||||
+ case HostCmd_CMD_SDIO_SP_RX_AGGR_CFG: return "SDIO_SP_RX_AGGR_CFG";
|
||||
+ case HostCmd_CMD_STA_CONFIGURE: return "STA_CONFIGURE";
|
||||
+ case HostCmd_CMD_CHAN_REGION_CFG: return "CHAN_REGION_CFG";
|
||||
+ case HostCmd_CMD_PACKET_AGGR_CTRL: return "PACKET_AGGR_CTRL";
|
||||
+ default: return "UNKNOWN";
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* This function initializes a command node.
|
||||
*
|
||||
@@ -193,8 +272,8 @@ static int mwifiex_dnld_cmd_to_fw(struct
|
||||
cmd_code != HostCmd_CMD_FUNC_SHUTDOWN &&
|
||||
cmd_code != HostCmd_CMD_FUNC_INIT) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
- "DNLD_CMD: FW in reset state, ignore cmd %#x\n",
|
||||
- cmd_code);
|
||||
+ "DNLD_CMD: FW in reset state, ignore cmd %s (%#x)\n",
|
||||
+ mwifiex_cmd_to_str(cmd_code), cmd_code);
|
||||
mwifiex_recycle_cmd_node(adapter, cmd_node);
|
||||
queue_work(adapter->workqueue, &adapter->main_work);
|
||||
return -1;
|
||||
@@ -653,8 +732,8 @@ int mwifiex_send_cmd(struct mwifiex_priv
|
||||
/* Return error, since the command preparation failed */
|
||||
if (ret) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
- "PREP_CMD: cmd %#x preparation failed\n",
|
||||
- cmd_no);
|
||||
+ "PREP_CMD: cmd %s (%#x) preparation failed\n",
|
||||
+ mwifiex_cmd_to_str(cmd_no), cmd_no);
|
||||
mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
|
||||
return -1;
|
||||
}
|
||||
@@ -902,8 +981,9 @@ int mwifiex_process_cmdresp(struct mwifi
|
||||
if (adapter->hw_status == MWIFIEX_HW_STATUS_INITIALIZING) {
|
||||
if (ret) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
- "%s: cmd %#x failed during\t"
|
||||
- "initialization\n", __func__, cmdresp_no);
|
||||
+ "%s: cmd %s (%#x) failed during\t"
|
||||
+ "initialization\n", __func__,
|
||||
+ mwifiex_cmd_to_str(cmdresp_no), cmdresp_no);
|
||||
mwifiex_init_fw_complete(adapter);
|
||||
return -1;
|
||||
} else if (adapter->last_init_cmd == cmdresp_no)
|
||||
@@ -1265,8 +1345,8 @@ mwifiex_process_sleep_confirm_resp(struc
|
||||
|
||||
if (command != HostCmd_CMD_802_11_PS_MODE_ENH) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
- "%s: rcvd unexpected resp for cmd %#x, result = %x\n",
|
||||
- __func__, command, result);
|
||||
+ "%s: rcvd unexpected resp for cmd %s (%#x), result = %x\n",
|
||||
+ __func__, mwifiex_cmd_to_str(command), command, result);
|
||||
return;
|
||||
}
|
||||
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/main.h
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/main.h
|
||||
@@ -1084,6 +1084,8 @@ void mwifiex_cancel_all_pending_cmd(stru
|
||||
void mwifiex_cancel_pending_scan_cmd(struct mwifiex_adapter *adapter);
|
||||
void mwifiex_cancel_scan(struct mwifiex_adapter *adapter);
|
||||
|
||||
+const char *mwifiex_cmd_to_str(u16 command);
|
||||
+
|
||||
void mwifiex_recycle_cmd_node(struct mwifiex_adapter *adapter,
|
||||
struct cmd_ctrl_node *cmd_node);
|
||||
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
||||
@@ -36,8 +36,9 @@ mwifiex_process_cmdresp_error(struct mwi
|
||||
struct host_cmd_ds_802_11_ps_mode_enh *pm;
|
||||
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
- "CMD_RESP: cmd %#x error, result=%#x\n",
|
||||
- resp->command, resp->result);
|
||||
+ "CMD_RESP: cmd %s (%#x) error, result=%#x\n",
|
||||
+ mwifiex_cmd_to_str(le16_to_cpu(resp->command)),
|
||||
+ le16_to_cpu(resp->command), le16_to_cpu(resp->result));
|
||||
|
||||
if (adapter->curr_cmd->wait_q_enabled)
|
||||
adapter->cmd_wait_q.status = -1;
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/uap_cmd.c
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/uap_cmd.c
|
||||
@@ -802,7 +802,8 @@ int mwifiex_uap_prepare_cmd(struct mwifi
|
||||
break;
|
||||
default:
|
||||
mwifiex_dbg(priv->adapter, ERROR,
|
||||
- "PREP_CMD: unknown cmd %#x\n", cmd_no);
|
||||
+ "PREP_CMD: unknown cmd (%s) %#x\n",
|
||||
+ mwifiex_cmd_to_str(cmd_no), cmd_no);
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user