mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge branch 'master' of ssh://ra.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
This commit is contained in:
commit
e29ec62470
15 changed files with 95 additions and 29 deletions
|
|
@ -253,6 +253,8 @@ ath_reg_apply_active_scan_flags(struct wiphy *wiphy,
|
|||
int r;
|
||||
|
||||
sband = wiphy->bands[IEEE80211_BAND_2GHZ];
|
||||
if (!sband)
|
||||
return;
|
||||
|
||||
/*
|
||||
* If no country IE has been received always enable active scan
|
||||
|
|
|
|||
|
|
@ -175,6 +175,7 @@ void b43_generate_plcp_hdr(struct b43_plcp_hdr4 *plcp,
|
|||
}
|
||||
}
|
||||
|
||||
/* TODO: verify if needed for SSLPN or LCN */
|
||||
static u16 b43_generate_tx_phy_ctl1(struct b43_wldev *dev, u8 bitrate)
|
||||
{
|
||||
const struct b43_phy *phy = &dev->phy;
|
||||
|
|
@ -256,6 +257,9 @@ int b43_generate_txhdr(struct b43_wldev *dev,
|
|||
unsigned int plcp_fragment_len;
|
||||
u32 mac_ctl = 0;
|
||||
u16 phy_ctl = 0;
|
||||
bool fill_phy_ctl1 = (phy->type == B43_PHYTYPE_LP ||
|
||||
phy->type == B43_PHYTYPE_N ||
|
||||
phy->type == B43_PHYTYPE_HT);
|
||||
u8 extra_ft = 0;
|
||||
struct ieee80211_rate *txrate;
|
||||
struct ieee80211_tx_rate *rates;
|
||||
|
|
@ -531,7 +535,7 @@ int b43_generate_txhdr(struct b43_wldev *dev,
|
|||
extra_ft |= B43_TXH_EFT_RTSFB_CCK;
|
||||
|
||||
if (rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS &&
|
||||
phy->type == B43_PHYTYPE_N) {
|
||||
fill_phy_ctl1) {
|
||||
txhdr->phy_ctl1_rts = cpu_to_le16(
|
||||
b43_generate_tx_phy_ctl1(dev, rts_rate));
|
||||
txhdr->phy_ctl1_rts_fb = cpu_to_le16(
|
||||
|
|
@ -552,7 +556,7 @@ int b43_generate_txhdr(struct b43_wldev *dev,
|
|||
break;
|
||||
}
|
||||
|
||||
if (phy->type == B43_PHYTYPE_N) {
|
||||
if (fill_phy_ctl1) {
|
||||
txhdr->phy_ctl1 =
|
||||
cpu_to_le16(b43_generate_tx_phy_ctl1(dev, rate));
|
||||
txhdr->phy_ctl1_fb =
|
||||
|
|
@ -736,7 +740,14 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr)
|
|||
|
||||
/* Link quality statistics */
|
||||
switch (chanstat & B43_RX_CHAN_PHYTYPE) {
|
||||
case B43_PHYTYPE_HT:
|
||||
/* TODO: is max the right choice? */
|
||||
status.signal = max_t(__s8,
|
||||
max(rxhdr->phy_ht_power0, rxhdr->phy_ht_power1),
|
||||
rxhdr->phy_ht_power2);
|
||||
break;
|
||||
case B43_PHYTYPE_N:
|
||||
/* Broadcom has code for min and avg, but always uses max */
|
||||
if (rxhdr->power0 == 16 || rxhdr->power0 == 32)
|
||||
status.signal = max(rxhdr->power1, rxhdr->power2);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -249,6 +249,12 @@ struct b43_rxhdr_fw4 {
|
|||
} __packed;
|
||||
} __packed;
|
||||
union {
|
||||
/* HT-PHY */
|
||||
struct {
|
||||
PAD_BYTES(1);
|
||||
__s8 phy_ht_power0;
|
||||
} __packed;
|
||||
|
||||
/* RSSI for N-PHYs */
|
||||
struct {
|
||||
__s8 power2;
|
||||
|
|
@ -257,7 +263,15 @@ struct b43_rxhdr_fw4 {
|
|||
|
||||
__le16 phy_status2; /* PHY RX Status 2 */
|
||||
} __packed;
|
||||
__le16 phy_status3; /* PHY RX Status 3 */
|
||||
union {
|
||||
/* HT-PHY */
|
||||
struct {
|
||||
__s8 phy_ht_power1;
|
||||
__s8 phy_ht_power2;
|
||||
} __packed;
|
||||
|
||||
__le16 phy_status3; /* PHY RX Status 3 */
|
||||
} __packed;
|
||||
union {
|
||||
/* Tested with 598.314, 644.1001 and 666.2 */
|
||||
struct {
|
||||
|
|
|
|||
|
|
@ -358,13 +358,14 @@ static uint nrxdactive(struct dma_info *di, uint h, uint t)
|
|||
|
||||
static uint _dma_ctrlflags(struct dma_info *di, uint mask, uint flags)
|
||||
{
|
||||
uint dmactrlflags = di->dma.dmactrlflags;
|
||||
uint dmactrlflags;
|
||||
|
||||
if (di == NULL) {
|
||||
DMA_ERROR(("%s: _dma_ctrlflags: NULL dma handle\n", di->name));
|
||||
DMA_ERROR(("_dma_ctrlflags: NULL dma handle\n"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
dmactrlflags = di->dma.dmactrlflags;
|
||||
dmactrlflags &= ~mask;
|
||||
dmactrlflags |= flags;
|
||||
|
||||
|
|
|
|||
|
|
@ -1469,7 +1469,7 @@ mwifiex_update_curr_bss_params(struct mwifiex_private *priv, u8 *bssid,
|
|||
s32 rssi, const u8 *ie_buf, size_t ie_len,
|
||||
u16 beacon_period, u16 cap_info_bitmap, u8 band)
|
||||
{
|
||||
struct mwifiex_bssdescriptor *bss_desc = NULL;
|
||||
struct mwifiex_bssdescriptor *bss_desc;
|
||||
int ret;
|
||||
unsigned long flags;
|
||||
u8 *beacon_ie;
|
||||
|
|
@ -1484,6 +1484,7 @@ mwifiex_update_curr_bss_params(struct mwifiex_private *priv, u8 *bssid,
|
|||
|
||||
beacon_ie = kmemdup(ie_buf, ie_len, GFP_KERNEL);
|
||||
if (!beacon_ie) {
|
||||
kfree(bss_desc);
|
||||
dev_err(priv->adapter->dev, " failed to alloc beacon_ie\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -559,7 +559,7 @@ wl12xx_scan_sched_scan_ssid_list(struct wl1271 *wl,
|
|||
break;
|
||||
}
|
||||
/* Fail if SSID isn't present in the filters */
|
||||
if (j == req->n_ssids) {
|
||||
if (j == cmd->n_ssids) {
|
||||
ret = -EINVAL;
|
||||
goto out_free;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue