Commit 4ef36e15 authored by David S. Miller's avatar David S. Miller

Merge tag 'wireless-drivers-for-davem-2016-06-04' of...

Merge tag 'wireless-drivers-for-davem-2016-06-04' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers

Kalle Valo says:

====================
wireless-drivers fixes for 4.7

brcmfmac

* add fallback RSSI report for devices that do not report per-chain values
* fix a null pointer derefence regression on PCIe full dongle devices

rtlwifi

* fix scheduling while atomic regression from commit 49f86ec2

MAINTAINERS

* add file patterns for wireless device tree bindings
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents e7eacc9e 182fd9ee
...@@ -8008,6 +8008,7 @@ Q: http://patchwork.kernel.org/project/linux-wireless/list/ ...@@ -8008,6 +8008,7 @@ Q: http://patchwork.kernel.org/project/linux-wireless/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/net/wireless/
F: drivers/net/wireless/ F: drivers/net/wireless/
NETXEN (1/10) GbE SUPPORT NETXEN (1/10) GbE SUPPORT
......
...@@ -2540,12 +2540,14 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev, ...@@ -2540,12 +2540,14 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,
const u8 *mac, struct station_info *sinfo) const u8 *mac, struct station_info *sinfo)
{ {
struct brcmf_if *ifp = netdev_priv(ndev); struct brcmf_if *ifp = netdev_priv(ndev);
struct brcmf_scb_val_le scb_val;
s32 err = 0; s32 err = 0;
struct brcmf_sta_info_le sta_info_le; struct brcmf_sta_info_le sta_info_le;
u32 sta_flags; u32 sta_flags;
u32 is_tdls_peer; u32 is_tdls_peer;
s32 total_rssi; s32 total_rssi;
s32 count_rssi; s32 count_rssi;
int rssi;
u32 i; u32 i;
brcmf_dbg(TRACE, "Enter, MAC %pM\n", mac); brcmf_dbg(TRACE, "Enter, MAC %pM\n", mac);
...@@ -2629,6 +2631,20 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev, ...@@ -2629,6 +2631,20 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,
sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL); sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
total_rssi /= count_rssi; total_rssi /= count_rssi;
sinfo->signal = total_rssi; sinfo->signal = total_rssi;
} else if (test_bit(BRCMF_VIF_STATUS_CONNECTED,
&ifp->vif->sme_state)) {
memset(&scb_val, 0, sizeof(scb_val));
err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_RSSI,
&scb_val, sizeof(scb_val));
if (err) {
brcmf_err("Could not get rssi (%d)\n", err);
goto done;
} else {
rssi = le32_to_cpu(scb_val.val);
sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
sinfo->signal = rssi;
brcmf_dbg(CONN, "RSSI %d dBm\n", rssi);
}
} }
} }
done: done:
......
...@@ -1157,6 +1157,8 @@ brcmf_msgbuf_process_rx_complete(struct brcmf_msgbuf *msgbuf, void *buf) ...@@ -1157,6 +1157,8 @@ brcmf_msgbuf_process_rx_complete(struct brcmf_msgbuf *msgbuf, void *buf)
brcmu_pkt_buf_free_skb(skb); brcmu_pkt_buf_free_skb(skb);
return; return;
} }
skb->protocol = eth_type_trans(skb, ifp->ndev);
brcmf_netif_rx(ifp, skb); brcmf_netif_rx(ifp, skb);
} }
......
...@@ -54,7 +54,7 @@ EXPORT_SYMBOL(channel5g_80m); ...@@ -54,7 +54,7 @@ EXPORT_SYMBOL(channel5g_80m);
void rtl_addr_delay(u32 addr) void rtl_addr_delay(u32 addr)
{ {
if (addr == 0xfe) if (addr == 0xfe)
msleep(50); mdelay(50);
else if (addr == 0xfd) else if (addr == 0xfd)
msleep(5); msleep(5);
else if (addr == 0xfc) else if (addr == 0xfc)
...@@ -75,7 +75,7 @@ void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr, ...@@ -75,7 +75,7 @@ void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
rtl_addr_delay(addr); rtl_addr_delay(addr);
} else { } else {
rtl_set_rfreg(hw, rfpath, addr, mask, data); rtl_set_rfreg(hw, rfpath, addr, mask, data);
usleep_range(1, 2); udelay(1);
} }
} }
EXPORT_SYMBOL(rtl_rfreg_delay); EXPORT_SYMBOL(rtl_rfreg_delay);
...@@ -86,7 +86,7 @@ void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data) ...@@ -86,7 +86,7 @@ void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data)
rtl_addr_delay(addr); rtl_addr_delay(addr);
} else { } else {
rtl_set_bbreg(hw, addr, MASKDWORD, data); rtl_set_bbreg(hw, addr, MASKDWORD, data);
usleep_range(1, 2); udelay(1);
} }
} }
EXPORT_SYMBOL(rtl_bb_delay); EXPORT_SYMBOL(rtl_bb_delay);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment