summarylogtreecommitdiffstats
path: root/0003-wifi.patch
diff options
context:
space:
mode:
Diffstat (limited to '0003-wifi.patch')
-rw-r--r--0003-wifi.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/0003-wifi.patch b/0003-wifi.patch
new file mode 100644
index 000000000000..6e96af8f971e
--- /dev/null
+++ b/0003-wifi.patch
@@ -0,0 +1,71 @@
+diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+index 025bc06a..07bdf271 100644
+--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
++++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+@@ -418,6 +418,9 @@ mwifiex_cfg80211_set_power_mgmt(struct wiphy *wiphy,
+
+ ps_mode = enabled;
+
++ mwifiex_dbg(priv->adapter, ERROR, "overriding ps_mode to false\n");
++ ps_mode = 0;
++
+ return mwifiex_drv_set_power(priv, &ps_mode);
+ }
+
+diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+index 83916c14..b47def60 100644
+--- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
++++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+@@ -2308,7 +2308,7 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
+ if (ret)
+ return -1;
+
+- if (priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
++ if (0 && priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
+ /* Enable IEEE PS by default */
+ priv->adapter->ps_mode = MWIFIEX_802_11_POWER_MODE_PSP;
+ ret = mwifiex_send_cmd(priv,
+@@ -2364,7 +2364,7 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
+ if (ret)
+ return -1;
+
+- if (!disable_auto_ds && first_sta &&
++ if (0 && !disable_auto_ds && first_sta &&
+ priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
+ /* Enable auto deep sleep */
+ auto_ds.auto_ds = DEEP_SLEEP_ON;
+diff --git a/drivers/net/wireless/marvell/mwifiex/11n_aggr.c b/drivers/net/wireless/marvell/mwifiex/11n_aggr.c
+index a75013ac..448ba72d 100644
+--- a/drivers/net/wireless/marvell/mwifiex/11n_aggr.c
++++ b/drivers/net/wireless/marvell/mwifiex/11n_aggr.c
+@@ -200,8 +200,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
+
+ do {
+ /* Check if AMSDU can accommodate this MSDU */
+- if ((skb_aggr->len + skb_src->len + LLC_SNAP_LEN) >
+- adapter->tx_buf_size)
++ if (skb_tailroom(skb_aggr) < (skb_src->len + LLC_SNAP_LEN))
+ break;
+
+ skb_src = skb_dequeue(&pra_list->skb_head);
+diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
+index ac62bce5..293607e6 100644
+--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
++++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
+@@ -1716,6 +1716,16 @@ static int mwifiex_pcie_process_cmd_complete(struct mwifiex_adapter *adapter)
+ }
+
+ rx_len = get_unaligned_le16(skb->data);
++
++
++ if (rx_len == 0) {
++ mwifiex_dbg(adapter, ERROR,
++ "0 byte cmdrsp\n");
++ mwifiex_map_pci_memory(adapter, skb, MWIFIEX_UPLD_SIZE,
++ PCI_DMA_FROMDEVICE);
++ return 0;
++ }
++
+ skb_put(skb, MWIFIEX_UPLD_SIZE - skb->len);
+ skb_trim(skb, rx_len);
+