Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
6b8a3ecf
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看板
提交
6b8a3ecf
编写于
2月 13, 2014
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes
上级
348f7d4a
205e2210
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
48 addition
and
9 deletion
+48
-9
drivers/net/wireless/iwlwifi/dvm/mac80211.c
drivers/net/wireless/iwlwifi/dvm/mac80211.c
+20
-2
drivers/net/wireless/iwlwifi/iwl-drv.c
drivers/net/wireless/iwlwifi/iwl-drv.c
+1
-1
drivers/net/wireless/iwlwifi/iwl-modparams.h
drivers/net/wireless/iwlwifi/iwl-modparams.h
+7
-4
drivers/net/wireless/iwlwifi/mvm/mac80211.c
drivers/net/wireless/iwlwifi/mvm/mac80211.c
+20
-2
未找到文件。
drivers/net/wireless/iwlwifi/dvm/mac80211.c
浏览文件 @
6b8a3ecf
...
...
@@ -696,6 +696,24 @@ static int iwlagn_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
return
ret
;
}
static
inline
bool
iwl_enable_rx_ampdu
(
const
struct
iwl_cfg
*
cfg
)
{
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_DISABLE_HT_RXAGG
)
return
false
;
return
true
;
}
static
inline
bool
iwl_enable_tx_ampdu
(
const
struct
iwl_cfg
*
cfg
)
{
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_DISABLE_HT_TXAGG
)
return
false
;
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_ENABLE_HT_TXAGG
)
return
true
;
/* disabled by default */
return
false
;
}
static
int
iwlagn_mac_ampdu_action
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
enum
ieee80211_ampdu_mlme_action
action
,
...
...
@@ -717,7 +735,7 @@ static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
switch
(
action
)
{
case
IEEE80211_AMPDU_RX_START
:
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_DISABLE_HT_RXAGG
)
if
(
!
iwl_enable_rx_ampdu
(
priv
->
cfg
)
)
break
;
IWL_DEBUG_HT
(
priv
,
"start Rx
\n
"
);
ret
=
iwl_sta_rx_agg_start
(
priv
,
sta
,
tid
,
*
ssn
);
...
...
@@ -729,7 +747,7 @@ static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
case
IEEE80211_AMPDU_TX_START
:
if
(
!
priv
->
trans
->
ops
->
txq_enable
)
break
;
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_DISABLE_HT_TXAGG
)
if
(
!
iwl_enable_tx_ampdu
(
priv
->
cfg
)
)
break
;
IWL_DEBUG_HT
(
priv
,
"start Tx
\n
"
);
ret
=
iwlagn_tx_agg_start
(
priv
,
vif
,
sta
,
tid
,
ssn
);
...
...
drivers/net/wireless/iwlwifi/iwl-drv.c
浏览文件 @
6b8a3ecf
...
...
@@ -1286,7 +1286,7 @@ module_param_named(swcrypto, iwlwifi_mod_params.sw_crypto, int, S_IRUGO);
MODULE_PARM_DESC
(
swcrypto
,
"using crypto in software (default 0 [hardware])"
);
module_param_named
(
11
n_disable
,
iwlwifi_mod_params
.
disable_11n
,
uint
,
S_IRUGO
);
MODULE_PARM_DESC
(
11
n_disable
,
"disable 11n functionality, bitmap: 1: full, 2:
agg TX, 4: agg R
X"
);
"disable 11n functionality, bitmap: 1: full, 2:
disable agg TX, 4: disable agg RX, 8 enable agg T
X"
);
module_param_named
(
amsdu_size_8K
,
iwlwifi_mod_params
.
amsdu_size_8K
,
int
,
S_IRUGO
);
MODULE_PARM_DESC
(
amsdu_size_8K
,
"enable 8K amsdu size (default 0)"
);
...
...
drivers/net/wireless/iwlwifi/iwl-modparams.h
浏览文件 @
6b8a3ecf
...
...
@@ -79,9 +79,12 @@ enum iwl_power_level {
IWL_POWER_NUM
};
#define IWL_DISABLE_HT_ALL BIT(0)
#define IWL_DISABLE_HT_TXAGG BIT(1)
#define IWL_DISABLE_HT_RXAGG BIT(2)
enum
iwl_disable_11n
{
IWL_DISABLE_HT_ALL
=
BIT
(
0
),
IWL_DISABLE_HT_TXAGG
=
BIT
(
1
),
IWL_DISABLE_HT_RXAGG
=
BIT
(
2
),
IWL_ENABLE_HT_TXAGG
=
BIT
(
3
),
};
/**
* struct iwl_mod_params
...
...
@@ -90,7 +93,7 @@ enum iwl_power_level {
*
* @sw_crypto: using hardware encryption, default = 0
* @disable_11n: disable 11n capabilities, default = 0,
* use IWL_
DIS
ABLE_HT_* constants
* use IWL_
[DIS,EN]
ABLE_HT_* constants
* @amsdu_size_8K: enable 8K amsdu size, default = 0
* @restart_fw: restart firmware, default = 1
* @wd_disable: enable stuck queue check, default = 0
...
...
drivers/net/wireless/iwlwifi/mvm/mac80211.c
浏览文件 @
6b8a3ecf
...
...
@@ -328,6 +328,24 @@ static void iwl_mvm_mac_tx(struct ieee80211_hw *hw,
ieee80211_free_txskb
(
hw
,
skb
);
}
static
inline
bool
iwl_enable_rx_ampdu
(
const
struct
iwl_cfg
*
cfg
)
{
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_DISABLE_HT_RXAGG
)
return
false
;
return
true
;
}
static
inline
bool
iwl_enable_tx_ampdu
(
const
struct
iwl_cfg
*
cfg
)
{
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_DISABLE_HT_TXAGG
)
return
false
;
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_ENABLE_HT_TXAGG
)
return
true
;
/* enabled by default */
return
true
;
}
static
int
iwl_mvm_mac_ampdu_action
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
enum
ieee80211_ampdu_mlme_action
action
,
...
...
@@ -347,7 +365,7 @@ static int iwl_mvm_mac_ampdu_action(struct ieee80211_hw *hw,
switch
(
action
)
{
case
IEEE80211_AMPDU_RX_START
:
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_DISABLE_HT_RXAGG
)
{
if
(
!
iwl_enable_rx_ampdu
(
mvm
->
cfg
)
)
{
ret
=
-
EINVAL
;
break
;
}
...
...
@@ -357,7 +375,7 @@ static int iwl_mvm_mac_ampdu_action(struct ieee80211_hw *hw,
ret
=
iwl_mvm_sta_rx_agg
(
mvm
,
sta
,
tid
,
0
,
false
);
break
;
case
IEEE80211_AMPDU_TX_START
:
if
(
iwlwifi_mod_params
.
disable_11n
&
IWL_DISABLE_HT_TXAGG
)
{
if
(
!
iwl_enable_tx_ampdu
(
mvm
->
cfg
)
)
{
ret
=
-
EINVAL
;
break
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录