Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
ce300c7f
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ce300c7f
编写于
2月 27, 2010
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
上级
8266d712
9e3bd919
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
62 addition
and
77 deletion
+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
未找到文件。
MAINTAINERS
浏览文件 @
ce300c7f
...
...
@@ -3502,9 +3502,9 @@ F: drivers/net/mv643xx_eth.*
F: include/linux/mv643xx.h
MARVELL MWL8K WIRELESS DRIVER
M: Lennert Buytenhek <buytenh@
marvell.com
>
M: Lennert Buytenhek <buytenh@
wantstofly.org
>
L: linux-wireless@vger.kernel.org
S:
Support
ed
S:
Maintain
ed
F: drivers/net/wireless/mwl8k.c
MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
...
...
drivers/net/wireless/ath/ath9k/hw.c
浏览文件 @
ce300c7f
...
...
@@ -1310,6 +1310,16 @@ static void ath9k_hw_override_ini(struct ath_hw *ah,
* Necessary to avoid issues on AR5416 2.0
*/
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
,
...
...
drivers/net/wireless/ath/ath9k/phy.h
浏览文件 @
ce300c7f
...
...
@@ -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_FACTOR_RIFS 0x99EC
#define AR_PHY_RIFS_INIT_DELAY 0x03ff0000
#define AR_PHY_M_SLEEP 0x99f0
#define AR_PHY_REFCLKDLY 0x99f4
#define AR_PHY_REFCLKPD 0x99f8
...
...
drivers/net/wireless/b43/Kconfig
浏览文件 @
ce300c7f
...
...
@@ -3,7 +3,6 @@ config B43
depends on SSB_POSSIBLE && MAC80211 && HAS_DMA
select SSB
select FW_LOADER
select SSB_BLOCKIO
---help---
b43 is a driver for the Broadcom 43xx series wireless devices.
...
...
@@ -79,6 +78,14 @@ config B43_SDIO
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
bool "Pre IEEE 802.11n support (BROKEN)"
depends on B43 && EXPERIMENTAL && BROKEN
...
...
@@ -130,4 +137,12 @@ config B43_DEBUG
for production use.
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
浏览文件 @
ce300c7f
...
...
@@ -702,6 +702,7 @@ struct b43_wldev {
bool
radio_hw_enable
;
/* saved state of radio hardware enabled state */
bool
qos_enabled
;
/* TRUE, if QoS is used. */
bool
hwcrypto_enabled
;
/* TRUE, if HW crypto acceleration is enabled. */
bool
use_pio
;
/* TRUE if next init should use PIO */
/* PHY/Radio device. */
struct
b43_phy
phy
;
...
...
@@ -886,6 +887,12 @@ static inline bool b43_using_pio_transfers(struct b43_wldev *dev)
return
dev
->
__using_pio_transfers
;
}
#ifdef CONFIG_B43_FORCE_PIO
# define B43_PIO_DEFAULT 1
#else
# define B43_PIO_DEFAULT 0
#endif
/* Message printing */
void
b43info
(
struct
b43_wl
*
wl
,
const
char
*
fmt
,
...)
__attribute__
((
format
(
printf
,
2
,
3
)));
...
...
drivers/net/wireless/b43/main.c
浏览文件 @
ce300c7f
...
...
@@ -107,9 +107,9 @@ int b43_modparam_verbose = B43_VERBOSITY_DEFAULT;
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"
);
static
int
modparam_pio
;
module_param_named
(
pio
,
modparam_pio
,
int
,
04
44
);
MODULE_PARM_DESC
(
pio
,
"
enable(1) / disable(0) PIO mode
"
);
int
b43_modparam_pio
=
B43_PIO_DEFAULT
;
module_param_named
(
pio
,
b43_modparam_pio
,
int
,
06
44
);
MODULE_PARM_DESC
(
pio
,
"
Use PIO accesses by default: 0=DMA, 1=PIO
"
);
static
const
struct
ssb_device_id
b43_ssb_tbl
[]
=
{
SSB_DEVICE
(
SSB_VENDOR_BROADCOM
,
SSB_DEV_80211
,
5
),
...
...
@@ -1804,8 +1804,9 @@ static void b43_do_interrupt_thread(struct b43_wldev *dev)
dma_reason
[
4
],
dma_reason
[
5
]);
b43err
(
dev
->
wl
,
"This device does not support DMA "
"on your system. Please use PIO instead.
\n
"
);
b43err
(
dev
->
wl
,
"Unload the b43 module and reload "
"with 'pio=1'
\n
"
);
/* Fall back to PIO transfers if we get fatal DMA errors! */
dev
->
use_pio
=
1
;
b43_controller_restart
(
dev
,
"DMA error"
);
return
;
}
if
(
merged_dma_reason
&
B43_DMAIRQ_NONFATALMASK
)
{
...
...
@@ -4357,7 +4358,7 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
if
((
dev
->
dev
->
bus
->
bustype
==
SSB_BUSTYPE_PCMCIA
)
||
(
dev
->
dev
->
bus
->
bustype
==
SSB_BUSTYPE_SDIO
)
||
modparam
_pio
)
{
dev
->
use
_pio
)
{
dev
->
__using_pio_transfers
=
1
;
err
=
b43_pio_init
(
dev
);
}
else
{
...
...
@@ -4824,6 +4825,7 @@ static int b43_one_core_attach(struct ssb_device *dev, struct b43_wl *wl)
if
(
!
wldev
)
goto
out
;
wldev
->
use_pio
=
b43_modparam_pio
;
wldev
->
dev
=
dev
;
wldev
->
wl
=
wl
;
b43_set_status
(
wldev
,
B43_STAT_UNINIT
);
...
...
drivers/net/wireless/iwlwifi/iwl-agn.c
浏览文件 @
ce300c7f
...
...
@@ -2941,21 +2941,10 @@ static int iwl_mac_ampdu_action(struct ieee80211_hw *hw,
return
ret
;
case
IEEE80211_AMPDU_TX_START
:
IWL_DEBUG_HT
(
priv
,
"start Tx
\n
"
);
ret
=
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
;
return
iwl_tx_agg_start
(
priv
,
sta
->
addr
,
tid
,
ssn
);
case
IEEE80211_AMPDU_TX_STOP
:
IWL_DEBUG_HT
(
priv
,
"stop Tx
\n
"
);
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
))
return
0
;
else
...
...
@@ -3376,7 +3365,6 @@ static int iwl_init_drv(struct iwl_priv *priv)
priv
->
iw_mode
=
NL80211_IFTYPE_STATION
;
priv
->
current_ht_config
.
smps
=
IEEE80211_SMPS_STATIC
;
priv
->
missed_beacon_threshold
=
IWL_MISSED_BEACON_THRESHOLD_DEF
;
priv
->
agg_tids_count
=
0
;
/* initialize force reset */
priv
->
force_reset
[
IWL_RF_RESET
].
reset_duration
=
...
...
drivers/net/wireless/iwlwifi/iwl-commands.h
浏览文件 @
ce300c7f
...
...
@@ -2623,6 +2623,7 @@ struct iwl_ssid_ie {
#define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF)
#define IWL_GOOD_CRC_TH cpu_to_le16(1)
#define IWL_MAX_SCAN_SIZE 1024
#define IWL_MAX_CMD_SIZE 4096
#define IWL_MAX_PROBE_REQUEST 200
/*
...
...
drivers/net/wireless/iwlwifi/iwl-dev.h
浏览文件 @
ce300c7f
...
...
@@ -1084,9 +1084,6 @@ struct iwl_priv {
/* storing the jiffies when the plcp error rate is received */
unsigned
long
plcp_jiffies
;
/* reporting the number of tids has AGG on. 0 means no AGGREGATION */
u8
agg_tids_count
;
/* force reset */
struct
iwl_force_reset
force_reset
[
IWL_MAX_FORCE_RESET
];
...
...
drivers/net/wireless/iwlwifi/iwl-rx.c
浏览文件 @
ce300c7f
...
...
@@ -616,11 +616,6 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
#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"
void
iwl_rx_statistics
(
struct
iwl_priv
*
priv
,
struct
iwl_rx_mem_buffer
*
rxb
)
...
...
@@ -630,9 +625,6 @@ void iwl_rx_statistics(struct iwl_priv *priv,
int
combined_plcp_delta
;
unsigned
int
plcp_msec
;
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
"
,
(
int
)
sizeof
(
priv
->
statistics
),
...
...
@@ -647,44 +639,6 @@ void iwl_rx_statistics(struct iwl_priv *priv,
#ifdef CONFIG_IWLWIFI_DEBUG
iwl_accumulative_statistics
(
priv
,
(
__le32
*
)
&
pkt
->
u
.
stats
);
#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
* the plcp error threshold plcp_delta.
...
...
drivers/net/wireless/iwlwifi/iwl-tx.c
浏览文件 @
ce300c7f
...
...
@@ -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
++
)
{
/* only happens for cmd queue */
if
(
i
==
slots_num
)
len
+=
IWL_MAX_SCAN
_SIZE
;
len
=
IWL_MAX_CMD
_SIZE
;
txq
->
cmd
[
i
]
=
kmalloc
(
len
,
GFP_KERNEL
);
if
(
!
txq
->
cmd
[
i
])
...
...
@@ -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
* 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
)
&&
!
(
cmd
->
flags
&
CMD_SIZE_HUGE
));
BUG_ON
(
fix_size
>
IWL_MAX_CMD_SIZE
);
if
(
iwl_is_rfkill
(
priv
)
||
iwl_is_ctkill
(
priv
))
{
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)
if
(
cmd
->
flags
&
CMD_SIZE_HUGE
)
out_cmd
->
hdr
.
sequence
|=
SEQ_HUGE_FRAME
;
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
switch
(
out_cmd
->
hdr
.
cmd
)
{
...
...
include/linux/netdevice.h
浏览文件 @
ce300c7f
...
...
@@ -137,7 +137,7 @@ static inline bool dev_xmit_complete(int rc)
* 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)
# define LL_MAX_HEADER 128
# else
...
...
net/mac80211/main.c
浏览文件 @
ce300c7f
...
...
@@ -558,8 +558,12 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
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
)
local
->
hw
.
max_listen_interval
=
1
;
local
->
hw
.
max_listen_interval
=
5
;
local
->
hw
.
conf
.
listen_interval
=
local
->
hw
.
max_listen_interval
;
...
...
net/mac80211/work.c
浏览文件 @
ce300c7f
...
...
@@ -869,6 +869,7 @@ static void ieee80211_work_work(struct work_struct *work)
break
;
case
IEEE80211_WORK_ABORT
:
rma
=
WORK_ACT_TIMEOUT
;
break
;
case
IEEE80211_WORK_DIRECT_PROBE
:
rma
=
ieee80211_direct_probe
(
wk
);
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录