Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
3231d65f
Commit
3231d65f
authored
May 13, 2014
by
John W. Linville
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
parents
0d770a82
209f6c37
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
132 additions
and
72 deletions
+132
-72
MAINTAINERS
MAINTAINERS
+0
-1
drivers/bluetooth/ath3k.c
drivers/bluetooth/ath3k.c
+2
-0
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+2
-3
drivers/net/wireless/ath/ath9k/ahb.c
drivers/net/wireless/ath/ath9k/ahb.c
+0
-4
drivers/net/wireless/ath/ath9k/ani.c
drivers/net/wireless/ath/ath9k/ani.c
+6
-0
drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/ath9k.h
+0
-1
drivers/net/wireless/ath/ath9k/debug_sta.c
drivers/net/wireless/ath/ath9k/debug_sta.c
+2
-3
drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/init.c
+3
-0
drivers/net/wireless/ath/ath9k/pci.c
drivers/net/wireless/ath/ath9k/pci.c
+0
-5
drivers/net/wireless/ath/ath9k/recv.c
drivers/net/wireless/ath/ath9k/recv.c
+6
-3
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c
+1
-13
drivers/net/wireless/brcm80211/brcmfmac/chip.c
drivers/net/wireless/brcm80211/brcmfmac/chip.c
+3
-2
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+1
-1
drivers/net/wireless/iwlwifi/mvm/mac80211.c
drivers/net/wireless/iwlwifi/mvm/mac80211.c
+7
-2
drivers/net/wireless/iwlwifi/mvm/mvm.h
drivers/net/wireless/iwlwifi/mvm/mvm.h
+3
-0
drivers/net/wireless/iwlwifi/mvm/scan.c
drivers/net/wireless/iwlwifi/mvm/scan.c
+1
-1
drivers/net/wireless/iwlwifi/mvm/utils.c
drivers/net/wireless/iwlwifi/mvm/utils.c
+19
-0
drivers/net/wireless/iwlwifi/pcie/trans.c
drivers/net/wireless/iwlwifi/pcie/trans.c
+6
-4
drivers/net/wireless/rt2x00/rt2x00mac.c
drivers/net/wireless/rt2x00/rt2x00mac.c
+12
-10
drivers/net/wireless/rtlwifi/rtl8188ee/trx.c
drivers/net/wireless/rtlwifi/rtl8188ee/trx.c
+1
-1
drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
+1
-1
drivers/net/wireless/rtlwifi/rtl8192se/trx.c
drivers/net/wireless/rtlwifi/rtl8192se/trx.c
+6
-0
include/net/cfg80211.h
include/net/cfg80211.h
+12
-0
net/bluetooth/hci_conn.c
net/bluetooth/hci_conn.c
+6
-3
net/bluetooth/hci_event.c
net/bluetooth/hci_event.c
+6
-0
net/mac80211/rx.c
net/mac80211/rx.c
+2
-1
net/mac80211/sta_info.c
net/mac80211/sta_info.c
+2
-1
net/mac80211/status.c
net/mac80211/status.c
+2
-3
net/mac80211/trace.h
net/mac80211/trace.h
+2
-2
net/mac80211/util.c
net/mac80211/util.c
+1
-1
net/mac80211/vht.c
net/mac80211/vht.c
+6
-3
net/wireless/scan.c
net/wireless/scan.c
+10
-2
net/wireless/sme.c
net/wireless/sme.c
+1
-1
No files found.
MAINTAINERS
View file @
3231d65f
...
...
@@ -7277,7 +7277,6 @@ F: drivers/video/aty/aty128fb.c
RALINK RT2X00 WIRELESS LAN DRIVER
P: rt2x00 project
M: Ivo van Doorn <IvDoorn@gmail.com>
M: Gertjan van Wingerde <gwingerde@gmail.com>
M: Helmut Schaa <helmut.schaa@googlemail.com>
L: linux-wireless@vger.kernel.org
L: users@rt2x00.serialmonkey.com (moderated for non-subscribers)
...
...
drivers/bluetooth/ath3k.c
View file @
3231d65f
...
...
@@ -82,6 +82,7 @@ static const struct usb_device_id ath3k_table[] = {
{
USB_DEVICE
(
0x04CA
,
0x3004
)
},
{
USB_DEVICE
(
0x04CA
,
0x3005
)
},
{
USB_DEVICE
(
0x04CA
,
0x3006
)
},
{
USB_DEVICE
(
0x04CA
,
0x3007
)
},
{
USB_DEVICE
(
0x04CA
,
0x3008
)
},
{
USB_DEVICE
(
0x04CA
,
0x300b
)
},
{
USB_DEVICE
(
0x0930
,
0x0219
)
},
...
...
@@ -131,6 +132,7 @@ static const struct usb_device_id ath3k_blist_tbl[] = {
{
USB_DEVICE
(
0x04ca
,
0x3004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3005
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3006
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3007
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3008
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x300b
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0930
,
0x0219
),
.
driver_info
=
BTUSB_ATH3012
},
...
...
drivers/bluetooth/btusb.c
View file @
3231d65f
...
...
@@ -152,6 +152,7 @@ static const struct usb_device_id blacklist_table[] = {
{
USB_DEVICE
(
0x04ca
,
0x3004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3005
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3006
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3007
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3008
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x300b
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0930
,
0x0219
),
.
driver_info
=
BTUSB_ATH3012
},
...
...
@@ -1485,10 +1486,8 @@ static int btusb_probe(struct usb_interface *intf,
if
(
id
->
driver_info
&
BTUSB_BCM92035
)
hdev
->
setup
=
btusb_setup_bcm92035
;
if
(
id
->
driver_info
&
BTUSB_INTEL
)
{
usb_enable_autosuspend
(
data
->
udev
);
if
(
id
->
driver_info
&
BTUSB_INTEL
)
hdev
->
setup
=
btusb_setup_intel
;
}
/* Interface numbers are hardcoded in the specification */
data
->
isoc
=
usb_ifnum_to_if
(
data
->
udev
,
1
);
...
...
drivers/net/wireless/ath/ath9k/ahb.c
View file @
3231d65f
...
...
@@ -86,7 +86,6 @@ static int ath_ahb_probe(struct platform_device *pdev)
int
irq
;
int
ret
=
0
;
struct
ath_hw
*
ah
;
struct
ath_common
*
common
;
char
hw_name
[
64
];
if
(
!
dev_get_platdata
(
&
pdev
->
dev
))
{
...
...
@@ -146,9 +145,6 @@ static int ath_ahb_probe(struct platform_device *pdev)
wiphy_info
(
hw
->
wiphy
,
"%s mem=0x%lx, irq=%d
\n
"
,
hw_name
,
(
unsigned
long
)
mem
,
irq
);
common
=
ath9k_hw_common
(
sc
->
sc_ah
);
/* Will be cleared in ath9k_start() */
set_bit
(
ATH_OP_INVALID
,
&
common
->
op_flags
);
return
0
;
err_irq:
...
...
drivers/net/wireless/ath/ath9k/ani.c
View file @
3231d65f
...
...
@@ -155,6 +155,9 @@ static void ath9k_hw_set_ofdm_nil(struct ath_hw *ah, u8 immunityLevel,
ATH9K_ANI_RSSI_THR_LOW
,
ATH9K_ANI_RSSI_THR_HIGH
);
if
(
AR_SREV_9100
(
ah
)
&&
immunityLevel
<
ATH9K_ANI_OFDM_DEF_LEVEL
)
immunityLevel
=
ATH9K_ANI_OFDM_DEF_LEVEL
;
if
(
!
scan
)
aniState
->
ofdmNoiseImmunityLevel
=
immunityLevel
;
...
...
@@ -235,6 +238,9 @@ static void ath9k_hw_set_cck_nil(struct ath_hw *ah, u_int8_t immunityLevel,
BEACON_RSSI
(
ah
),
ATH9K_ANI_RSSI_THR_LOW
,
ATH9K_ANI_RSSI_THR_HIGH
);
if
(
AR_SREV_9100
(
ah
)
&&
immunityLevel
<
ATH9K_ANI_CCK_DEF_LEVEL
)
immunityLevel
=
ATH9K_ANI_CCK_DEF_LEVEL
;
if
(
ah
->
opmode
==
NL80211_IFTYPE_STATION
&&
BEACON_RSSI
(
ah
)
<=
ATH9K_ANI_RSSI_THR_LOW
&&
immunityLevel
>
ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI
)
...
...
drivers/net/wireless/ath/ath9k/ath9k.h
View file @
3231d65f
...
...
@@ -254,7 +254,6 @@ struct ath_atx_tid {
s8
bar_index
;
bool
sched
;
bool
paused
;
bool
active
;
};
...
...
drivers/net/wireless/ath/ath9k/debug_sta.c
View file @
3231d65f
...
...
@@ -72,7 +72,7 @@ static ssize_t read_file_node_aggr(struct file *file, char __user *user_buf,
ath_txq_lock
(
sc
,
txq
);
if
(
tid
->
active
)
{
len
+=
scnprintf
(
buf
+
len
,
size
-
len
,
"%3d%11d%10d%10d%10d%10d%9d%6d
%8d
\n
"
,
"%3d%11d%10d%10d%10d%10d%9d%6d
\n
"
,
tid
->
tidno
,
tid
->
seq_start
,
tid
->
seq_next
,
...
...
@@ -80,8 +80,7 @@ static ssize_t read_file_node_aggr(struct file *file, char __user *user_buf,
tid
->
baw_head
,
tid
->
baw_tail
,
tid
->
bar_index
,
tid
->
sched
,
tid
->
paused
);
tid
->
sched
);
}
ath_txq_unlock
(
sc
,
txq
);
}
...
...
drivers/net/wireless/ath/ath9k/init.c
View file @
3231d65f
...
...
@@ -787,6 +787,9 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc,
common
=
ath9k_hw_common
(
ah
);
ath9k_set_hw_capab
(
sc
,
hw
);
/* Will be cleared in ath9k_start() */
set_bit
(
ATH_OP_INVALID
,
&
common
->
op_flags
);
/* Initialize regulatory */
error
=
ath_regd_init
(
&
common
->
regulatory
,
sc
->
hw
->
wiphy
,
ath9k_reg_notifier
);
...
...
drivers/net/wireless/ath/ath9k/pci.c
View file @
3231d65f
...
...
@@ -784,7 +784,6 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{
struct
ath_softc
*
sc
;
struct
ieee80211_hw
*
hw
;
struct
ath_common
*
common
;
u8
csz
;
u32
val
;
int
ret
=
0
;
...
...
@@ -877,10 +876,6 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
wiphy_info
(
hw
->
wiphy
,
"%s mem=0x%lx, irq=%d
\n
"
,
hw_name
,
(
unsigned
long
)
sc
->
mem
,
pdev
->
irq
);
/* Will be cleared in ath9k_start() */
common
=
ath9k_hw_common
(
sc
->
sc_ah
);
set_bit
(
ATH_OP_INVALID
,
&
common
->
op_flags
);
return
0
;
err_init:
...
...
drivers/net/wireless/ath/ath9k/recv.c
View file @
3231d65f
...
...
@@ -978,6 +978,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
u64
tsf
=
0
;
unsigned
long
flags
;
dma_addr_t
new_buf_addr
;
unsigned
int
budget
=
512
;
if
(
edma
)
dma_type
=
DMA_BIDIRECTIONAL
;
...
...
@@ -1116,15 +1117,17 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
}
requeue:
list_add_tail
(
&
bf
->
list
,
&
sc
->
rx
.
rxbuf
);
if
(
flush
)
continue
;
if
(
edma
)
{
ath_rx_edma_buf_link
(
sc
,
qtype
);
}
else
{
ath_rx_buf_relink
(
sc
,
bf
);
ath9k_hw_rxena
(
ah
);
if
(
!
flush
)
ath9k_hw_rxena
(
ah
);
}
if
(
!
budget
--
)
break
;
}
while
(
1
);
if
(
!
(
ah
->
imask
&
ATH9K_INT_RXEOL
))
{
...
...
drivers/net/wireless/ath/ath9k/xmit.c
View file @
3231d65f
...
...
@@ -107,9 +107,6 @@ static void ath_tx_queue_tid(struct ath_txq *txq, struct ath_atx_tid *tid)
{
struct
ath_atx_ac
*
ac
=
tid
->
ac
;
if
(
tid
->
paused
)
return
;
if
(
tid
->
sched
)
return
;
...
...
@@ -1407,7 +1404,6 @@ int ath_tx_aggr_start(struct ath_softc *sc, struct ieee80211_sta *sta,
ath_tx_tid_change_state
(
sc
,
txtid
);
txtid
->
active
=
true
;
txtid
->
paused
=
true
;
*
ssn
=
txtid
->
seq_start
=
txtid
->
seq_next
;
txtid
->
bar_index
=
-
1
;
...
...
@@ -1427,7 +1423,6 @@ void ath_tx_aggr_stop(struct ath_softc *sc, struct ieee80211_sta *sta, u16 tid)
ath_txq_lock
(
sc
,
txq
);
txtid
->
active
=
false
;
txtid
->
paused
=
false
;
ath_tx_flush_tid
(
sc
,
txtid
);
ath_tx_tid_change_state
(
sc
,
txtid
);
ath_txq_unlock_complete
(
sc
,
txq
);
...
...
@@ -1487,7 +1482,7 @@ void ath_tx_aggr_wakeup(struct ath_softc *sc, struct ath_node *an)
ath_txq_lock
(
sc
,
txq
);
ac
->
clear_ps_filter
=
true
;
if
(
!
tid
->
paused
&&
ath_tid_has_buffered
(
tid
))
{
if
(
ath_tid_has_buffered
(
tid
))
{
ath_tx_queue_tid
(
txq
,
tid
);
ath_txq_schedule
(
sc
,
txq
);
}
...
...
@@ -1510,7 +1505,6 @@ void ath_tx_aggr_resume(struct ath_softc *sc, struct ieee80211_sta *sta,
ath_txq_lock
(
sc
,
txq
);
tid
->
baw_size
=
IEEE80211_MIN_AMPDU_BUF
<<
sta
->
ht_cap
.
ampdu_factor
;
tid
->
paused
=
false
;
if
(
ath_tid_has_buffered
(
tid
))
{
ath_tx_queue_tid
(
txq
,
tid
);
...
...
@@ -1544,8 +1538,6 @@ void ath9k_release_buffered_frames(struct ieee80211_hw *hw,
continue
;
tid
=
ATH_AN_2_TID
(
an
,
i
);
if
(
tid
->
paused
)
continue
;
ath_txq_lock
(
sc
,
tid
->
ac
->
txq
);
while
(
nframes
>
0
)
{
...
...
@@ -1844,9 +1836,6 @@ void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq)
list_del
(
&
tid
->
list
);
tid
->
sched
=
false
;
if
(
tid
->
paused
)
continue
;
if
(
ath_tx_sched_aggr
(
sc
,
txq
,
tid
,
&
stop
))
sent
=
true
;
...
...
@@ -2698,7 +2687,6 @@ void ath_tx_node_init(struct ath_softc *sc, struct ath_node *an)
tid
->
baw_size
=
WME_MAX_BA
;
tid
->
baw_head
=
tid
->
baw_tail
=
0
;
tid
->
sched
=
false
;
tid
->
paused
=
false
;
tid
->
active
=
false
;
__skb_queue_head_init
(
&
tid
->
buf_q
);
__skb_queue_head_init
(
&
tid
->
retry_q
);
...
...
drivers/net/wireless/brcm80211/brcmfmac/chip.c
View file @
3231d65f
...
...
@@ -303,10 +303,10 @@ static void brcmf_chip_ai_coredisable(struct brcmf_core_priv *core,
ci
=
core
->
chip
;
/* if core is already in reset,
just return
*/
/* if core is already in reset,
skip reset
*/
regdata
=
ci
->
ops
->
read32
(
ci
->
ctx
,
core
->
wrapbase
+
BCMA_RESET_CTL
);
if
((
regdata
&
BCMA_RESET_CTL_RESET
)
!=
0
)
return
;
goto
in_reset_configure
;
/* configure reset */
ci
->
ops
->
write32
(
ci
->
ctx
,
core
->
wrapbase
+
BCMA_IOCTL
,
...
...
@@ -322,6 +322,7 @@ static void brcmf_chip_ai_coredisable(struct brcmf_core_priv *core,
SPINWAIT
(
ci
->
ops
->
read32
(
ci
->
ctx
,
core
->
wrapbase
+
BCMA_RESET_CTL
)
!=
BCMA_RESET_CTL_RESET
,
300
);
in_reset_configure:
/* in-reset configure */
ci
->
ops
->
write32
(
ci
->
ctx
,
core
->
wrapbase
+
BCMA_IOCTL
,
reset
|
BCMA_IOCTL_FGC
|
BCMA_IOCTL_CLK
);
...
...
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
View file @
3231d65f
...
...
@@ -4948,7 +4948,7 @@ static int brcmf_enable_bw40_2g(struct brcmf_if *ifp)
if
(
!
err
)
{
/* only set 2G bandwidth using bw_cap command */
band_bwcap
.
band
=
cpu_to_le32
(
WLC_BAND_2G
);
band_bwcap
.
bw_cap
=
cpu_to_le32
(
WLC_BW_
40MHZ_BIT
);
band_bwcap
.
bw_cap
=
cpu_to_le32
(
WLC_BW_
CAP_40MHZ
);
err
=
brcmf_fil_iovar_data_set
(
ifp
,
"bw_cap"
,
&
band_bwcap
,
sizeof
(
band_bwcap
));
}
else
{
...
...
drivers/net/wireless/iwlwifi/mvm/mac80211.c
View file @
3231d65f
...
...
@@ -1020,7 +1020,7 @@ static void iwl_mvm_mc_iface_iterator(void *_data, u8 *mac,
memcpy
(
cmd
->
bssid
,
vif
->
bss_conf
.
bssid
,
ETH_ALEN
);
len
=
roundup
(
sizeof
(
*
cmd
)
+
cmd
->
count
*
ETH_ALEN
,
4
);
ret
=
iwl_mvm_send_cmd_pdu
(
mvm
,
MCAST_FILTER_CMD
,
CMD_SYNC
,
len
,
cmd
);
ret
=
iwl_mvm_send_cmd_pdu
(
mvm
,
MCAST_FILTER_CMD
,
CMD_
A
SYNC
,
len
,
cmd
);
if
(
ret
)
IWL_ERR
(
mvm
,
"mcast filter cmd error. ret=%d
\n
"
,
ret
);
}
...
...
@@ -1036,7 +1036,7 @@ static void iwl_mvm_recalc_multicast(struct iwl_mvm *mvm)
if
(
WARN_ON_ONCE
(
!
mvm
->
mcast_filter_cmd
))
return
;
ieee80211_iterate_active_interfaces
(
ieee80211_iterate_active_interfaces
_atomic
(
mvm
->
hw
,
IEEE80211_IFACE_ITER_NORMAL
,
iwl_mvm_mc_iface_iterator
,
&
iter_data
);
}
...
...
@@ -1829,6 +1829,11 @@ static int iwl_mvm_mac_sched_scan_start(struct ieee80211_hw *hw,
mutex_lock
(
&
mvm
->
mutex
);
if
(
!
iwl_mvm_is_idle
(
mvm
))
{
ret
=
-
EBUSY
;
goto
out
;
}
switch
(
mvm
->
scan_status
)
{
case
IWL_MVM_SCAN_OS
:
IWL_DEBUG_SCAN
(
mvm
,
"Stopping previous scan for sched_scan
\n
"
);
...
...
drivers/net/wireless/iwlwifi/mvm/mvm.h
View file @
3231d65f
...
...
@@ -1029,6 +1029,9 @@ static inline bool iwl_mvm_vif_low_latency(struct iwl_mvm_vif *mvmvif)
return
mvmvif
->
low_latency
;
}
/* Assoc status */
bool
iwl_mvm_is_idle
(
struct
iwl_mvm
*
mvm
);
/* Thermal management and CT-kill */
void
iwl_mvm_tt_tx_backoff
(
struct
iwl_mvm
*
mvm
,
u32
backoff
);
void
iwl_mvm_tt_handler
(
struct
iwl_mvm
*
mvm
);
...
...
drivers/net/wireless/iwlwifi/mvm/scan.c
View file @
3231d65f
...
...
@@ -741,7 +741,7 @@ int iwl_mvm_config_sched_scan(struct iwl_mvm *mvm,
int
band_2ghz
=
mvm
->
nvm_data
->
bands
[
IEEE80211_BAND_2GHZ
].
n_channels
;
int
band_5ghz
=
mvm
->
nvm_data
->
bands
[
IEEE80211_BAND_5GHZ
].
n_channels
;
int
head
=
0
;
int
tail
=
band_2ghz
+
band_5ghz
;
int
tail
=
band_2ghz
+
band_5ghz
-
1
;
u32
ssid_bitmap
;
int
cmd_len
;
int
ret
;
...
...
drivers/net/wireless/iwlwifi/mvm/utils.c
View file @
3231d65f
...
...
@@ -690,3 +690,22 @@ bool iwl_mvm_low_latency(struct iwl_mvm *mvm)
return
result
;
}
static
void
iwl_mvm_idle_iter
(
void
*
_data
,
u8
*
mac
,
struct
ieee80211_vif
*
vif
)
{
bool
*
idle
=
_data
;
if
(
!
vif
->
bss_conf
.
idle
)
*
idle
=
false
;
}
bool
iwl_mvm_is_idle
(
struct
iwl_mvm
*
mvm
)
{
bool
idle
=
true
;
ieee80211_iterate_active_interfaces_atomic
(
mvm
->
hw
,
IEEE80211_IFACE_ITER_NORMAL
,
iwl_mvm_idle_iter
,
&
idle
);
return
idle
;
}
drivers/net/wireless/iwlwifi/pcie/trans.c
View file @
3231d65f
...
...
@@ -1848,6 +1848,10 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
* PCI Tx retries from interfering with C3 CPU state */
pci_write_config_byte
(
pdev
,
PCI_CFG_RETRY_TIMEOUT
,
0x00
);
trans
->
dev
=
&
pdev
->
dev
;
trans_pcie
->
pci_dev
=
pdev
;
iwl_disable_interrupts
(
trans
);
err
=
pci_enable_msi
(
pdev
);
if
(
err
)
{
dev_err
(
&
pdev
->
dev
,
"pci_enable_msi failed(0X%x)
\n
"
,
err
);
...
...
@@ -1859,8 +1863,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
}
}
trans
->
dev
=
&
pdev
->
dev
;
trans_pcie
->
pci_dev
=
pdev
;
trans
->
hw_rev
=
iwl_read32
(
trans
,
CSR_HW_REV
);
trans
->
hw_id
=
(
pdev
->
device
<<
16
)
+
pdev
->
subsystem_device
;
snprintf
(
trans
->
hw_id_str
,
sizeof
(
trans
->
hw_id_str
),
...
...
@@ -1886,8 +1888,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
goto
out_pci_disable_msi
;
}
trans_pcie
->
inta_mask
=
CSR_INI_SET_MASK
;
if
(
iwl_pcie_alloc_ict
(
trans
))
goto
out_free_cmd_pool
;
...
...
@@ -1899,6 +1899,8 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
goto
out_free_ict
;
}
trans_pcie
->
inta_mask
=
CSR_INI_SET_MASK
;
return
trans
;
out_free_ict:
...
...
drivers/net/wireless/rt2x00/rt2x00mac.c
View file @
3231d65f
...
...
@@ -620,21 +620,19 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
rt2x00lib_config_intf
(
rt2x00dev
,
intf
,
vif
->
type
,
NULL
,
bss_conf
->
bssid
);
/*
* Update the beacon. This is only required on USB devices. PCI
* devices fetch beacons periodically.
*/
if
(
changes
&
BSS_CHANGED_BEACON
&&
rt2x00_is_usb
(
rt2x00dev
))
rt2x00queue_update_beacon
(
rt2x00dev
,
vif
);
/*
* Start/stop beaconing.
*/
if
(
changes
&
BSS_CHANGED_BEACON_ENABLED
)
{
if
(
!
bss_conf
->
enable_beacon
&&
intf
->
enable_beacon
)
{
rt2x00queue_clear_beacon
(
rt2x00dev
,
vif
);
rt2x00dev
->
intf_beaconing
--
;
intf
->
enable_beacon
=
false
;
/*
* Clear beacon in the H/W for this vif. This is needed
* to disable beaconing on this particular interface
* and keep it running on other interfaces.
*/
rt2x00queue_clear_beacon
(
rt2x00dev
,
vif
);
if
(
rt2x00dev
->
intf_beaconing
==
0
)
{
/*
...
...
@@ -645,11 +643,15 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
rt2x00queue_stop_queue
(
rt2x00dev
->
bcn
);
mutex_unlock
(
&
intf
->
beacon_skb_mutex
);
}
}
else
if
(
bss_conf
->
enable_beacon
&&
!
intf
->
enable_beacon
)
{
rt2x00dev
->
intf_beaconing
++
;
intf
->
enable_beacon
=
true
;
/*
* Upload beacon to the H/W. This is only required on
* USB devices. PCI devices fetch beacons periodically.
*/
if
(
rt2x00_is_usb
(
rt2x00dev
))
rt2x00queue_update_beacon
(
rt2x00dev
,
vif
);
if
(
rt2x00dev
->
intf_beaconing
==
1
)
{
/*
...
...
drivers/net/wireless/rtlwifi/rtl8188ee/trx.c
View file @
3231d65f
...
...
@@ -293,7 +293,7 @@ static void _rtl88ee_translate_rx_signal_stuff(struct ieee80211_hw *hw,
u8
*
psaddr
;
__le16
fc
;
u16
type
,
ufc
;
bool
match_bssid
,
packet_toself
,
packet_beacon
,
addr
;
bool
match_bssid
,
packet_toself
,
packet_beacon
=
false
,
addr
;
tmp_buf
=
skb
->
data
+
pstatus
->
rx_drvinfo_size
+
pstatus
->
rx_bufshift
;
...
...
drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
View file @
3231d65f
...
...
@@ -1001,7 +1001,7 @@ int rtl92cu_hw_init(struct ieee80211_hw *hw)
err
=
_rtl92cu_init_mac
(
hw
);
if
(
err
)
{
RT_TRACE
(
rtlpriv
,
COMP_ERR
,
DBG_EMERG
,
"init mac failed!
\n
"
);
return
err
;
goto
exit
;
}
err
=
rtl92c_download_fw
(
hw
);
if
(
err
)
{
...
...
drivers/net/wireless/rtlwifi/rtl8192se/trx.c
View file @
3231d65f
...
...
@@ -49,6 +49,12 @@ static u8 _rtl92se_map_hwqueue_to_fwqueue(struct sk_buff *skb, u8 skb_queue)
if
(
ieee80211_is_nullfunc
(
fc
))
return
QSLT_HIGH
;
/* Kernel commit 1bf4bbb4024dcdab changed EAPOL packets to use
* queue V0 at priority 7; however, the RTL8192SE appears to have
* that queue at priority 6
*/
if
(
skb
->
priority
==
7
)
return
QSLT_VO
;
return
skb
->
priority
;
}
...
...
include/net/cfg80211.h
View file @
3231d65f
...
...
@@ -3691,6 +3691,18 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy);
*/
void
cfg80211_sched_scan_stopped
(
struct
wiphy
*
wiphy
);
/**
* cfg80211_sched_scan_stopped_rtnl - notify that the scheduled scan has stopped
*
* @wiphy: the wiphy on which the scheduled scan stopped
*
* The driver can call this function to inform cfg80211 that the
* scheduled scan had to be stopped, for whatever reason. The driver
* is then called back via the sched_scan_stop operation when done.
* This function should be called with rtnl locked.
*/
void
cfg80211_sched_scan_stopped_rtnl
(
struct
wiphy
*
wiphy
);
/**
* cfg80211_inform_bss_width_frame - inform cfg80211 of a received BSS frame
*
...
...
net/bluetooth/hci_conn.c
View file @
3231d65f
...
...
@@ -884,14 +884,17 @@ static int hci_conn_auth(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)
if
(
!
test_and_set_bit
(
HCI_CONN_AUTH_PEND
,
&
conn
->
flags
))
{
struct
hci_cp_auth_requested
cp
;
/* encrypt must be pending if auth is also pending */
set_bit
(
HCI_CONN_ENCRYPT_PEND
,
&
conn
->
flags
);
cp
.
handle
=
cpu_to_le16
(
conn
->
handle
);
hci_send_cmd
(
conn
->
hdev
,
HCI_OP_AUTH_REQUESTED
,
sizeof
(
cp
),
&
cp
);
/* If we're already encrypted set the REAUTH_PEND flag,
* otherwise set the ENCRYPT_PEND.
*/
if
(
conn
->
key_type
!=
0xff
)
set_bit
(
HCI_CONN_REAUTH_PEND
,
&
conn
->
flags
);
else
set_bit
(
HCI_CONN_ENCRYPT_PEND
,
&
conn
->
flags
);
}
return
0
;
...
...
net/bluetooth/hci_event.c
View file @
3231d65f
...
...
@@ -3388,6 +3388,12 @@ static void hci_key_refresh_complete_evt(struct hci_dev *hdev,
if
(
!
conn
)
goto
unlock
;
/* For BR/EDR the necessary steps are taken through the
* auth_complete event.
*/
if
(
conn
->
type
!=
LE_LINK
)
goto
unlock
;
if
(
!
ev
->
status
)
conn
->
sec_level
=
conn
->
pending_sec_level
;
...
...
net/mac80211/rx.c
View file @
3231d65f
...
...
@@ -1232,7 +1232,8 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
if
(
ether_addr_equal
(
bssid
,
rx
->
sdata
->
u
.
ibss
.
bssid
)
&&
test_sta_flag
(
sta
,
WLAN_STA_AUTHORIZED
))
{
sta
->
last_rx
=
jiffies
;
if
(
ieee80211_is_data
(
hdr
->
frame_control
))
{
if
(
ieee80211_is_data
(
hdr
->
frame_control
)
&&
!
is_multicast_ether_addr
(
hdr
->
addr1
))
{
sta
->
last_rx_rate_idx
=
status
->
rate_idx
;
sta
->
last_rx_rate_flag
=
status
->
flag
;
sta
->
last_rx_rate_vht_flag
=
status
->
vht_flag
;
...
...
net/mac80211/sta_info.c
View file @
3231d65f
...
...
@@ -1147,7 +1147,8 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta)
atomic_dec
(
&
ps
->
num_sta_ps
);
/* This station just woke up and isn't aware of our SMPS state */
if
(
!
ieee80211_smps_is_restrictive
(
sta
->
known_smps_mode
,
if
(
!
ieee80211_vif_is_mesh
(
&
sdata
->
vif
)
&&
!
ieee80211_smps_is_restrictive
(
sta
->
known_smps_mode
,
sdata
->
smps_mode
)
&&
sta
->
known_smps_mode
!=
sdata
->
bss
->
req_smps
&&
sta_info_tx_streams
(
sta
)
!=
1
)
{
...
...
net/mac80211/status.c
View file @
3231d65f
...
...
@@ -314,10 +314,9 @@ ieee80211_add_tx_radiotap_header(struct ieee80211_local *local,
!
is_multicast_ether_addr
(
hdr
->
addr1
))
txflags
|=
IEEE80211_RADIOTAP_F_TX_FAIL
;
if
((
info
->
status
.
rates
[
0
].
flags
&
IEEE80211_TX_RC_USE_RTS_CTS
)
||
(
info
->
status
.
rates
[
0
].
flags
&
IEEE80211_TX_RC_USE_CTS_PROTECT
))
if
(
info
->
status
.
rates
[
0
].
flags
&
IEEE80211_TX_RC_USE_CTS_PROTECT
)
txflags
|=
IEEE80211_RADIOTAP_F_TX_CTS
;
else
if
(
info
->
status
.
rates
[
0
].
flags
&
IEEE80211_TX_RC_USE_RTS_CTS
)
if
(
info
->
status
.
rates
[
0
].
flags
&
IEEE80211_TX_RC_USE_RTS_CTS
)
txflags
|=
IEEE80211_RADIOTAP_F_TX_RTS
;
put_unaligned_le16
(
txflags
,
pos
);
...
...
net/mac80211/trace.h
View file @
3231d65f
...
...
@@ -21,10 +21,10 @@
#define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \
__field(bool, p2p) \
__string(vif_name, sdata->
dev ? sdata->dev->name : "<nodev>"
)
__string(vif_name, sdata->
name
)
#define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \
__entry->p2p = sdata->vif.p2p; \
__assign_str(vif_name, sdata->
dev ? sdata->dev->name : sdata->
name)
__assign_str(vif_name, sdata->name)
#define VIF_PR_FMT " vif:%s(%d%s)"
#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : ""
...
...
net/mac80211/util.c
View file @
3231d65f
...
...
@@ -1777,7 +1777,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
mutex_unlock
(
&
local
->
mtx
);
if
(
sched_scan_stopped
)
cfg80211_sched_scan_stopped
(
local
->
hw
.
wiphy
);
cfg80211_sched_scan_stopped
_rtnl
(
local
->
hw
.
wiphy
);
/*
* If this is for hw restart things are still running.
...
...
net/mac80211/vht.c
View file @
3231d65f
...
...
@@ -129,9 +129,12 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(struct ieee80211_sub_if_data *sdata,
if
(
!
vht_cap_ie
||
!
sband
->
vht_cap
.
vht_supported
)
return
;
/* A VHT STA must support 40 MHz */
if
(
!
(
sta
->
sta
.
ht_cap
.
cap
&
IEEE80211_HT_CAP_SUP_WIDTH_20_40
))
return
;
/*
* A VHT STA must support 40 MHz, but if we verify that here
* then we break a few things - some APs (e.g. Netgear R6300v2
* and others based on the BCM4360 chipset) will unset this
* capability bit when operating in 20 MHz.
*/
vht_cap
->
vht_supported
=
true
;
...
...
net/wireless/scan.c
View file @
3231d65f
...
...
@@ -284,14 +284,22 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy)
}
EXPORT_SYMBOL
(
cfg80211_sched_scan_results
);
void
cfg80211_sched_scan_stopped
(
struct
wiphy
*
wiphy
)
void
cfg80211_sched_scan_stopped
_rtnl
(
struct
wiphy
*
wiphy
)
{
struct
cfg80211_registered_device
*
rdev
=
wiphy_to_rdev
(
wiphy
);
ASSERT_RTNL
();
trace_cfg80211_sched_scan_stopped
(
wiphy
);
rtnl_lock
();
__cfg80211_stop_sched_scan
(
rdev
,
true
);
}
EXPORT_SYMBOL
(
cfg80211_sched_scan_stopped_rtnl
);
void
cfg80211_sched_scan_stopped
(
struct
wiphy
*
wiphy
)
{
rtnl_lock
();
cfg80211_sched_scan_stopped_rtnl
(
wiphy
);
rtnl_unlock
();
}
EXPORT_SYMBOL
(
cfg80211_sched_scan_stopped
);
...
...
net/wireless/sme.c
View file @
3231d65f
...
...
@@ -234,7 +234,6 @@ void cfg80211_conn_work(struct work_struct *work)
NULL
,
0
,
NULL
,
0
,
WLAN_STATUS_UNSPECIFIED_FAILURE
,
false
,
NULL
);
cfg80211_sme_free
(
wdev
);
}
wdev_unlock
(
wdev
);
}
...
...
@@ -647,6 +646,7 @@ void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid,
cfg80211_unhold_bss
(
bss_from_pub
(
bss
));
cfg80211_put_bss
(
wdev
->
wiphy
,
bss
);
}
cfg80211_sme_free
(
wdev
);
return
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment