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
ce300c7f
Commit
ce300c7f
authored
Feb 27, 2010
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
parents
8266d712
9e3bd919
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
62 additions
and
77 deletions
+62
-77
MAINTAINERS
MAINTAINERS
+2
-2
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/ath/ath9k/hw.c
+10
-0
drivers/net/wireless/ath/ath9k/phy.h
drivers/net/wireless/ath/ath9k/phy.h
+3
-0
drivers/net/wireless/b43/Kconfig
drivers/net/wireless/b43/Kconfig
+16
-1
drivers/net/wireless/b43/b43.h
drivers/net/wireless/b43/b43.h
+7
-0
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/main.c
+8
-6
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.c
+1
-13
drivers/net/wireless/iwlwifi/iwl-commands.h
drivers/net/wireless/iwlwifi/iwl-commands.h
+1
-0
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-dev.h
+0
-3
drivers/net/wireless/iwlwifi/iwl-rx.c
drivers/net/wireless/iwlwifi/iwl-rx.c
+0
-46
drivers/net/wireless/iwlwifi/iwl-tx.c
drivers/net/wireless/iwlwifi/iwl-tx.c
+7
-4
include/linux/netdevice.h
include/linux/netdevice.h
+1
-1
net/mac80211/main.c
net/mac80211/main.c
+5
-1
net/mac80211/work.c
net/mac80211/work.c
+1
-0
No files found.
MAINTAINERS
View file @
ce300c7f
...
@@ -3502,9 +3502,9 @@ F: drivers/net/mv643xx_eth.*
...
@@ -3502,9 +3502,9 @@ F: drivers/net/mv643xx_eth.*
F: include/linux/mv643xx.h
F: include/linux/mv643xx.h
MARVELL MWL8K WIRELESS DRIVER
MARVELL MWL8K WIRELESS DRIVER
M: Lennert Buytenhek <buytenh@
marvell.com
>
M: Lennert Buytenhek <buytenh@
wantstofly.org
>
L: linux-wireless@vger.kernel.org
L: linux-wireless@vger.kernel.org
S:
Support
ed
S:
Maintain
ed
F: drivers/net/wireless/mwl8k.c
F: drivers/net/wireless/mwl8k.c
MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
...
...
drivers/net/wireless/ath/ath9k/hw.c
View file @
ce300c7f
...
@@ -1310,6 +1310,16 @@ static void ath9k_hw_override_ini(struct ath_hw *ah,
...
@@ -1310,6 +1310,16 @@ static void ath9k_hw_override_ini(struct ath_hw *ah,
* Necessary to avoid issues on AR5416 2.0
* Necessary to avoid issues on AR5416 2.0
*/
*/
REG_WRITE
(
ah
,
0x9800
+
(
651
<<
2
),
0x11
);
REG_WRITE
(
ah
,
0x9800
+
(
651
<<
2
),
0x11
);
/*
* Disable RIFS search on some chips to avoid baseband
* hang issues.
*/
if
(
AR_SREV_9100
(
ah
)
||
AR_SREV_9160
(
ah
))
{
val
=
REG_READ
(
ah
,
AR_PHY_HEAVY_CLIP_FACTOR_RIFS
);
val
&=
~
AR_PHY_RIFS_INIT_DELAY
;
REG_WRITE
(
ah
,
AR_PHY_HEAVY_CLIP_FACTOR_RIFS
,
val
);
}
}
}
static
u32
ath9k_hw_def_ini_fixup
(
struct
ath_hw
*
ah
,
static
u32
ath9k_hw_def_ini_fixup
(
struct
ath_hw
*
ah
,
...
...
drivers/net/wireless/ath/ath9k/phy.h
View file @
ce300c7f
...
@@ -384,6 +384,9 @@ bool ath9k_hw_set_rf_regs(struct ath_hw *ah,
...
@@ -384,6 +384,9 @@ bool ath9k_hw_set_rf_regs(struct ath_hw *ah,
#define AR_PHY_HEAVY_CLIP_ENABLE 0x99E0
#define AR_PHY_HEAVY_CLIP_ENABLE 0x99E0
#define AR_PHY_HEAVY_CLIP_FACTOR_RIFS 0x99EC
#define AR_PHY_RIFS_INIT_DELAY 0x03ff0000
#define AR_PHY_M_SLEEP 0x99f0
#define AR_PHY_M_SLEEP 0x99f0
#define AR_PHY_REFCLKDLY 0x99f4
#define AR_PHY_REFCLKDLY 0x99f4
#define AR_PHY_REFCLKPD 0x99f8
#define AR_PHY_REFCLKPD 0x99f8
...
...
drivers/net/wireless/b43/Kconfig
View file @
ce300c7f
...
@@ -3,7 +3,6 @@ config B43
...
@@ -3,7 +3,6 @@ config B43
depends on SSB_POSSIBLE && MAC80211 && HAS_DMA
depends on SSB_POSSIBLE && MAC80211 && HAS_DMA
select SSB
select SSB
select FW_LOADER
select FW_LOADER
select SSB_BLOCKIO
---help---
---help---
b43 is a driver for the Broadcom 43xx series wireless devices.
b43 is a driver for the Broadcom 43xx series wireless devices.
...
@@ -79,6 +78,14 @@ config B43_SDIO
...
@@ -79,6 +78,14 @@ config B43_SDIO
If unsure, say N.
If unsure, say N.
#Data transfers to the device via PIO. We want it as a fallback even
# if we can do DMA.
config B43_PIO
bool
depends on B43
select SSB_BLOCKIO
default y
config B43_NPHY
config B43_NPHY
bool "Pre IEEE 802.11n support (BROKEN)"
bool "Pre IEEE 802.11n support (BROKEN)"
depends on B43 && EXPERIMENTAL && BROKEN
depends on B43 && EXPERIMENTAL && BROKEN
...
@@ -130,4 +137,12 @@ config B43_DEBUG
...
@@ -130,4 +137,12 @@ config B43_DEBUG
for production use.
for production use.
Only say Y, if you are debugging a problem in the b43 driver sourcecode.
Only say Y, if you are debugging a problem in the b43 driver sourcecode.
config B43_FORCE_PIO
bool "Force usage of PIO instead of DMA"
depends on B43 && B43_DEBUG
---help---
This will disable DMA and always enable PIO instead.
Say N!
This is only for debugging the PIO engine code. You do
_NOT_ want to enable this.
drivers/net/wireless/b43/b43.h
View file @
ce300c7f
...
@@ -702,6 +702,7 @@ struct b43_wldev {
...
@@ -702,6 +702,7 @@ struct b43_wldev {
bool
radio_hw_enable
;
/* saved state of radio hardware enabled state */
bool
radio_hw_enable
;
/* saved state of radio hardware enabled state */
bool
qos_enabled
;
/* TRUE, if QoS is used. */
bool
qos_enabled
;
/* TRUE, if QoS is used. */
bool
hwcrypto_enabled
;
/* TRUE, if HW crypto acceleration is enabled. */
bool
hwcrypto_enabled
;
/* TRUE, if HW crypto acceleration is enabled. */
bool
use_pio
;
/* TRUE if next init should use PIO */
/* PHY/Radio device. */
/* PHY/Radio device. */
struct
b43_phy
phy
;
struct
b43_phy
phy
;
...
@@ -886,6 +887,12 @@ static inline bool b43_using_pio_transfers(struct b43_wldev *dev)
...
@@ -886,6 +887,12 @@ static inline bool b43_using_pio_transfers(struct b43_wldev *dev)
return
dev
->
__using_pio_transfers
;
return
dev
->
__using_pio_transfers
;
}
}
#ifdef CONFIG_B43_FORCE_PIO
# define B43_PIO_DEFAULT 1
#else
# define B43_PIO_DEFAULT 0
#endif
/* Message printing */
/* Message printing */
void
b43info
(
struct
b43_wl
*
wl
,
const
char
*
fmt
,
...)
void
b43info
(
struct
b43_wl
*
wl
,
const
char
*
fmt
,
...)
__attribute__
((
format
(
printf
,
2
,
3
)));
__attribute__
((
format
(
printf
,
2
,
3
)));
...
...
drivers/net/wireless/b43/main.c
View file @
ce300c7f
...
@@ -107,9 +107,9 @@ int b43_modparam_verbose = B43_VERBOSITY_DEFAULT;
...
@@ -107,9 +107,9 @@ int b43_modparam_verbose = B43_VERBOSITY_DEFAULT;
module_param_named
(
verbose
,
b43_modparam_verbose
,
int
,
0644
);
module_param_named
(
verbose
,
b43_modparam_verbose
,
int
,
0644
);
MODULE_PARM_DESC
(
verbose
,
"Log message verbosity: 0=error, 1=warn, 2=info(default), 3=debug"
);
MODULE_PARM_DESC
(
verbose
,
"Log message verbosity: 0=error, 1=warn, 2=info(default), 3=debug"
);
static
int
modparam_pio
;
int
b43_modparam_pio
=
B43_PIO_DEFAULT
;
module_param_named
(
pio
,
modparam_pio
,
int
,
04
44
);
module_param_named
(
pio
,
b43_modparam_pio
,
int
,
06
44
);
MODULE_PARM_DESC
(
pio
,
"
enable(1) / disable(0) PIO mode
"
);
MODULE_PARM_DESC
(
pio
,
"
Use PIO accesses by default: 0=DMA, 1=PIO
"
);
static
const
struct
ssb_device_id
b43_ssb_tbl
[]
=
{
static
const
struct
ssb_device_id
b43_ssb_tbl
[]
=
{
SSB_DEVICE
(
SSB_VENDOR_BROADCOM
,
SSB_DEV_80211
,
5
),
SSB_DEVICE
(
SSB_VENDOR_BROADCOM
,
SSB_DEV_80211
,
5
),
...
@@ -1804,8 +1804,9 @@ static void b43_do_interrupt_thread(struct b43_wldev *dev)
...
@@ -1804,8 +1804,9 @@ static void b43_do_interrupt_thread(struct b43_wldev *dev)
dma_reason
[
4
],
dma_reason
[
5
]);
dma_reason
[
4
],
dma_reason
[
5
]);
b43err
(
dev
->
wl
,
"This device does not support DMA "
b43err
(
dev
->
wl
,
"This device does not support DMA "
"on your system. Please use PIO instead.
\n
"
);
"on your system. Please use PIO instead.
\n
"
);
b43err
(
dev
->
wl
,
"Unload the b43 module and reload "
/* Fall back to PIO transfers if we get fatal DMA errors! */
"with 'pio=1'
\n
"
);
dev
->
use_pio
=
1
;
b43_controller_restart
(
dev
,
"DMA error"
);
return
;
return
;
}
}
if
(
merged_dma_reason
&
B43_DMAIRQ_NONFATALMASK
)
{
if
(
merged_dma_reason
&
B43_DMAIRQ_NONFATALMASK
)
{
...
@@ -4357,7 +4358,7 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
...
@@ -4357,7 +4358,7 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
if
((
dev
->
dev
->
bus
->
bustype
==
SSB_BUSTYPE_PCMCIA
)
||
if
((
dev
->
dev
->
bus
->
bustype
==
SSB_BUSTYPE_PCMCIA
)
||
(
dev
->
dev
->
bus
->
bustype
==
SSB_BUSTYPE_SDIO
)
||
(
dev
->
dev
->
bus
->
bustype
==
SSB_BUSTYPE_SDIO
)
||
modparam
_pio
)
{
dev
->
use
_pio
)
{
dev
->
__using_pio_transfers
=
1
;
dev
->
__using_pio_transfers
=
1
;
err
=
b43_pio_init
(
dev
);
err
=
b43_pio_init
(
dev
);
}
else
{
}
else
{
...
@@ -4824,6 +4825,7 @@ static int b43_one_core_attach(struct ssb_device *dev, struct b43_wl *wl)
...
@@ -4824,6 +4825,7 @@ static int b43_one_core_attach(struct ssb_device *dev, struct b43_wl *wl)
if
(
!
wldev
)
if
(
!
wldev
)
goto
out
;
goto
out
;
wldev
->
use_pio
=
b43_modparam_pio
;
wldev
->
dev
=
dev
;
wldev
->
dev
=
dev
;
wldev
->
wl
=
wl
;
wldev
->
wl
=
wl
;
b43_set_status
(
wldev
,
B43_STAT_UNINIT
);
b43_set_status
(
wldev
,
B43_STAT_UNINIT
);
...
...
drivers/net/wireless/iwlwifi/iwl-agn.c
View file @
ce300c7f
...
@@ -2941,21 +2941,10 @@ static int iwl_mac_ampdu_action(struct ieee80211_hw *hw,
...
@@ -2941,21 +2941,10 @@ static int iwl_mac_ampdu_action(struct ieee80211_hw *hw,
return
ret
;
return
ret
;
case
IEEE80211_AMPDU_TX_START
:
case
IEEE80211_AMPDU_TX_START
:
IWL_DEBUG_HT
(
priv
,
"start Tx
\n
"
);
IWL_DEBUG_HT
(
priv
,
"start Tx
\n
"
);
ret
=
iwl_tx_agg_start
(
priv
,
sta
->
addr
,
tid
,
ssn
);
return
iwl_tx_agg_start
(
priv
,
sta
->
addr
,
tid
,
ssn
);
if
(
ret
==
0
)
{
priv
->
agg_tids_count
++
;
IWL_DEBUG_HT
(
priv
,
"priv->agg_tids_count = %u
\n
"
,
priv
->
agg_tids_count
);
}
return
ret
;
case
IEEE80211_AMPDU_TX_STOP
:
case
IEEE80211_AMPDU_TX_STOP
:
IWL_DEBUG_HT
(
priv
,
"stop Tx
\n
"
);
IWL_DEBUG_HT
(
priv
,
"stop Tx
\n
"
);
ret
=
iwl_tx_agg_stop
(
priv
,
sta
->
addr
,
tid
);
ret
=
iwl_tx_agg_stop
(
priv
,
sta
->
addr
,
tid
);
if
((
ret
==
0
)
&&
(
priv
->
agg_tids_count
>
0
))
{
priv
->
agg_tids_count
--
;
IWL_DEBUG_HT
(
priv
,
"priv->agg_tids_count = %u
\n
"
,
priv
->
agg_tids_count
);
}
if
(
test_bit
(
STATUS_EXIT_PENDING
,
&
priv
->
status
))
if
(
test_bit
(
STATUS_EXIT_PENDING
,
&
priv
->
status
))
return
0
;
return
0
;
else
else
...
@@ -3376,7 +3365,6 @@ static int iwl_init_drv(struct iwl_priv *priv)
...
@@ -3376,7 +3365,6 @@ static int iwl_init_drv(struct iwl_priv *priv)
priv
->
iw_mode
=
NL80211_IFTYPE_STATION
;
priv
->
iw_mode
=
NL80211_IFTYPE_STATION
;
priv
->
current_ht_config
.
smps
=
IEEE80211_SMPS_STATIC
;
priv
->
current_ht_config
.
smps
=
IEEE80211_SMPS_STATIC
;
priv
->
missed_beacon_threshold
=
IWL_MISSED_BEACON_THRESHOLD_DEF
;
priv
->
missed_beacon_threshold
=
IWL_MISSED_BEACON_THRESHOLD_DEF
;
priv
->
agg_tids_count
=
0
;
/* initialize force reset */
/* initialize force reset */
priv
->
force_reset
[
IWL_RF_RESET
].
reset_duration
=
priv
->
force_reset
[
IWL_RF_RESET
].
reset_duration
=
...
...
drivers/net/wireless/iwlwifi/iwl-commands.h
View file @
ce300c7f
...
@@ -2623,6 +2623,7 @@ struct iwl_ssid_ie {
...
@@ -2623,6 +2623,7 @@ struct iwl_ssid_ie {
#define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF)
#define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF)
#define IWL_GOOD_CRC_TH cpu_to_le16(1)
#define IWL_GOOD_CRC_TH cpu_to_le16(1)
#define IWL_MAX_SCAN_SIZE 1024
#define IWL_MAX_SCAN_SIZE 1024
#define IWL_MAX_CMD_SIZE 4096
#define IWL_MAX_PROBE_REQUEST 200
#define IWL_MAX_PROBE_REQUEST 200
/*
/*
...
...
drivers/net/wireless/iwlwifi/iwl-dev.h
View file @
ce300c7f
...
@@ -1084,9 +1084,6 @@ struct iwl_priv {
...
@@ -1084,9 +1084,6 @@ struct iwl_priv {
/* storing the jiffies when the plcp error rate is received */
/* storing the jiffies when the plcp error rate is received */
unsigned
long
plcp_jiffies
;
unsigned
long
plcp_jiffies
;
/* reporting the number of tids has AGG on. 0 means no AGGREGATION */
u8
agg_tids_count
;
/* force reset */
/* force reset */
struct
iwl_force_reset
force_reset
[
IWL_MAX_FORCE_RESET
];
struct
iwl_force_reset
force_reset
[
IWL_MAX_FORCE_RESET
];
...
...
drivers/net/wireless/iwlwifi/iwl-rx.c
View file @
ce300c7f
...
@@ -616,11 +616,6 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
...
@@ -616,11 +616,6 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
#define REG_RECALIB_PERIOD (60)
#define REG_RECALIB_PERIOD (60)
/* the threshold ratio of actual_ack_cnt to expected_ack_cnt in percent */
#define ACK_CNT_RATIO (50)
#define BA_TIMEOUT_CNT (5)
#define BA_TIMEOUT_MAX (16)
#define PLCP_MSG "plcp_err exceeded %u, %u, %u, %u, %u, %d, %u mSecs\n"
#define PLCP_MSG "plcp_err exceeded %u, %u, %u, %u, %u, %d, %u mSecs\n"
void
iwl_rx_statistics
(
struct
iwl_priv
*
priv
,
void
iwl_rx_statistics
(
struct
iwl_priv
*
priv
,
struct
iwl_rx_mem_buffer
*
rxb
)
struct
iwl_rx_mem_buffer
*
rxb
)
...
@@ -630,9 +625,6 @@ void iwl_rx_statistics(struct iwl_priv *priv,
...
@@ -630,9 +625,6 @@ void iwl_rx_statistics(struct iwl_priv *priv,
int
combined_plcp_delta
;
int
combined_plcp_delta
;
unsigned
int
plcp_msec
;
unsigned
int
plcp_msec
;
unsigned
long
plcp_received_jiffies
;
unsigned
long
plcp_received_jiffies
;
int
actual_ack_cnt_delta
;
int
expected_ack_cnt_delta
;
int
ba_timeout_delta
;
IWL_DEBUG_RX
(
priv
,
"Statistics notification received (%d vs %d).
\n
"
,
IWL_DEBUG_RX
(
priv
,
"Statistics notification received (%d vs %d).
\n
"
,
(
int
)
sizeof
(
priv
->
statistics
),
(
int
)
sizeof
(
priv
->
statistics
),
...
@@ -647,44 +639,6 @@ void iwl_rx_statistics(struct iwl_priv *priv,
...
@@ -647,44 +639,6 @@ void iwl_rx_statistics(struct iwl_priv *priv,
#ifdef CONFIG_IWLWIFI_DEBUG
#ifdef CONFIG_IWLWIFI_DEBUG
iwl_accumulative_statistics
(
priv
,
(
__le32
*
)
&
pkt
->
u
.
stats
);
iwl_accumulative_statistics
(
priv
,
(
__le32
*
)
&
pkt
->
u
.
stats
);
#endif
#endif
actual_ack_cnt_delta
=
le32_to_cpu
(
pkt
->
u
.
stats
.
tx
.
actual_ack_cnt
)
-
le32_to_cpu
(
priv
->
statistics
.
tx
.
actual_ack_cnt
);
expected_ack_cnt_delta
=
le32_to_cpu
(
pkt
->
u
.
stats
.
tx
.
expected_ack_cnt
)
-
le32_to_cpu
(
priv
->
statistics
.
tx
.
expected_ack_cnt
);
ba_timeout_delta
=
le32_to_cpu
(
pkt
->
u
.
stats
.
tx
.
agg
.
ba_timeout
)
-
le32_to_cpu
(
priv
->
statistics
.
tx
.
agg
.
ba_timeout
);
if
((
priv
->
agg_tids_count
>
0
)
&&
(
expected_ack_cnt_delta
>
0
)
&&
(((
actual_ack_cnt_delta
*
100
)
/
expected_ack_cnt_delta
)
<
ACK_CNT_RATIO
)
&&
(
ba_timeout_delta
>
BA_TIMEOUT_CNT
))
{
IWL_DEBUG_RADIO
(
priv
,
"actual_ack_cnt delta = %d, expected_ack_cnt = %d
\n
"
,
actual_ack_cnt_delta
,
expected_ack_cnt_delta
);
#ifdef CONFIG_IWLWIFI_DEBUG
IWL_DEBUG_RADIO
(
priv
,
"rx_detected_cnt delta = %d
\n
"
,
priv
->
delta_statistics
.
tx
.
rx_detected_cnt
);
IWL_DEBUG_RADIO
(
priv
,
"ack_or_ba_timeout_collision delta = %d
\n
"
,
priv
->
delta_statistics
.
tx
.
ack_or_ba_timeout_collision
);
#endif
IWL_DEBUG_RADIO
(
priv
,
"agg ba_timeout delta = %d
\n
"
,
ba_timeout_delta
);
if
((
actual_ack_cnt_delta
==
0
)
&&
(
ba_timeout_delta
>=
BA_TIMEOUT_MAX
))
{
IWL_DEBUG_RADIO
(
priv
,
"call iwl_force_reset(IWL_FW_RESET)
\n
"
);
iwl_force_reset
(
priv
,
IWL_FW_RESET
);
}
else
{
IWL_DEBUG_RADIO
(
priv
,
"call iwl_force_reset(IWL_RF_RESET)
\n
"
);
iwl_force_reset
(
priv
,
IWL_RF_RESET
);
}
}
/*
/*
* check for plcp_err and trigger radio reset if it exceeds
* check for plcp_err and trigger radio reset if it exceeds
* the plcp error threshold plcp_delta.
* the plcp error threshold plcp_delta.
...
...
drivers/net/wireless/iwlwifi/iwl-tx.c
View file @
ce300c7f
...
@@ -364,7 +364,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv, struct iwl_tx_queue *txq,
...
@@ -364,7 +364,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv, struct iwl_tx_queue *txq,
for
(
i
=
0
;
i
<
actual_slots
;
i
++
)
{
for
(
i
=
0
;
i
<
actual_slots
;
i
++
)
{
/* only happens for cmd queue */
/* only happens for cmd queue */
if
(
i
==
slots_num
)
if
(
i
==
slots_num
)
len
+=
IWL_MAX_SCAN
_SIZE
;
len
=
IWL_MAX_CMD
_SIZE
;
txq
->
cmd
[
i
]
=
kmalloc
(
len
,
GFP_KERNEL
);
txq
->
cmd
[
i
]
=
kmalloc
(
len
,
GFP_KERNEL
);
if
(
!
txq
->
cmd
[
i
])
if
(
!
txq
->
cmd
[
i
])
...
@@ -1023,9 +1023,12 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
...
@@ -1023,9 +1023,12 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
/* If any of the command structures end up being larger than
/* If any of the command structures end up being larger than
* the TFD_MAX_PAYLOAD_SIZE, and it sent as a 'small' command then
* the TFD_MAX_PAYLOAD_SIZE, and it sent as a 'small' command then
* we will need to increase the size of the TFD entries */
* we will need to increase the size of the TFD entries
* Also, check to see if command buffer should not exceed the size
* of device_cmd and max_cmd_size. */
BUG_ON
((
fix_size
>
TFD_MAX_PAYLOAD_SIZE
)
&&
BUG_ON
((
fix_size
>
TFD_MAX_PAYLOAD_SIZE
)
&&
!
(
cmd
->
flags
&
CMD_SIZE_HUGE
));
!
(
cmd
->
flags
&
CMD_SIZE_HUGE
));
BUG_ON
(
fix_size
>
IWL_MAX_CMD_SIZE
);
if
(
iwl_is_rfkill
(
priv
)
||
iwl_is_ctkill
(
priv
))
{
if
(
iwl_is_rfkill
(
priv
)
||
iwl_is_ctkill
(
priv
))
{
IWL_WARN
(
priv
,
"Not sending command - %s KILL
\n
"
,
IWL_WARN
(
priv
,
"Not sending command - %s KILL
\n
"
,
...
@@ -1069,8 +1072,8 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
...
@@ -1069,8 +1072,8 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
if
(
cmd
->
flags
&
CMD_SIZE_HUGE
)
if
(
cmd
->
flags
&
CMD_SIZE_HUGE
)
out_cmd
->
hdr
.
sequence
|=
SEQ_HUGE_FRAME
;
out_cmd
->
hdr
.
sequence
|=
SEQ_HUGE_FRAME
;
len
=
sizeof
(
struct
iwl_device_cmd
);
len
=
sizeof
(
struct
iwl_device_cmd
);
len
+=
(
idx
==
TFD_CMD_SLOTS
)
?
IWL_MAX_SCAN_SIZE
:
0
;
if
(
idx
==
TFD_CMD_SLOTS
)
len
=
IWL_MAX_CMD_SIZE
;
#ifdef CONFIG_IWLWIFI_DEBUG
#ifdef CONFIG_IWLWIFI_DEBUG
switch
(
out_cmd
->
hdr
.
cmd
)
{
switch
(
out_cmd
->
hdr
.
cmd
)
{
...
...
include/linux/netdevice.h
View file @
ce300c7f
...
@@ -137,7 +137,7 @@ static inline bool dev_xmit_complete(int rc)
...
@@ -137,7 +137,7 @@ static inline bool dev_xmit_complete(int rc)
* used.
* used.
*/
*/
#if defined(CONFIG_WLAN
_80211
) || defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE)
#if defined(CONFIG_WLAN) || defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE)
# if defined(CONFIG_MAC80211_MESH)
# if defined(CONFIG_MAC80211_MESH)
# define LL_MAX_HEADER 128
# define LL_MAX_HEADER 128
# else
# else
...
...
net/mac80211/main.c
View file @
ce300c7f
...
@@ -558,8 +558,12 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
...
@@ -558,8 +558,12 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
debugfs_hw_add
(
local
);
debugfs_hw_add
(
local
);
/*
* if the driver doesn't specify a max listen interval we
* use 5 which should be a safe default
*/
if
(
local
->
hw
.
max_listen_interval
==
0
)
if
(
local
->
hw
.
max_listen_interval
==
0
)
local
->
hw
.
max_listen_interval
=
1
;
local
->
hw
.
max_listen_interval
=
5
;
local
->
hw
.
conf
.
listen_interval
=
local
->
hw
.
max_listen_interval
;
local
->
hw
.
conf
.
listen_interval
=
local
->
hw
.
max_listen_interval
;
...
...
net/mac80211/work.c
View file @
ce300c7f
...
@@ -869,6 +869,7 @@ static void ieee80211_work_work(struct work_struct *work)
...
@@ -869,6 +869,7 @@ static void ieee80211_work_work(struct work_struct *work)
break
;
break
;
case
IEEE80211_WORK_ABORT
:
case
IEEE80211_WORK_ABORT
:
rma
=
WORK_ACT_TIMEOUT
;
rma
=
WORK_ACT_TIMEOUT
;
break
;
case
IEEE80211_WORK_DIRECT_PROBE
:
case
IEEE80211_WORK_DIRECT_PROBE
:
rma
=
ieee80211_direct_probe
(
wk
);
rma
=
ieee80211_direct_probe
(
wk
);
break
;
break
;
...
...
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