diff options
Diffstat (limited to '0003-wifi.patch')
-rw-r--r-- | 0003-wifi.patch | 71 |
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); + |