Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
5d22df20
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5d22df20
编写于
12月 14, 2011
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
Conflicts: drivers/net/wireless/iwlwifi/iwl-agn.c
上级
8b1fdb53
78feb35b
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
70 addition
and
64 deletion
+70
-64
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/main.c
+1
-1
drivers/net/wireless/ath/ath9k/rc.c
drivers/net/wireless/ath/ath9k/rc.c
+3
-1
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
+2
-2
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
+4
-1
drivers/net/wireless/iwlwifi/iwl-mac80211.c
drivers/net/wireless/iwlwifi/iwl-mac80211.c
+6
-0
drivers/net/wireless/mwifiex/cmdevt.c
drivers/net/wireless/mwifiex/cmdevt.c
+2
-7
drivers/net/wireless/rtlwifi/rtl8192ce/phy.c
drivers/net/wireless/rtlwifi/rtl8192ce/phy.c
+1
-1
drivers/net/wireless/rtlwifi/rtl8192cu/phy.c
drivers/net/wireless/rtlwifi/rtl8192cu/phy.c
+1
-1
drivers/net/wireless/rtlwifi/rtl8192de/phy.c
drivers/net/wireless/rtlwifi/rtl8192de/phy.c
+1
-1
drivers/net/wireless/rtlwifi/rtl8192se/phy.c
drivers/net/wireless/rtlwifi/rtl8192se/phy.c
+1
-1
drivers/ssb/driver_pcicore.c
drivers/ssb/driver_pcicore.c
+6
-2
net/mac80211/agg-tx.c
net/mac80211/agg-tx.c
+41
-45
net/nfc/nci/core.c
net/nfc/nci/core.c
+1
-1
未找到文件。
drivers/net/wireless/ath/ath9k/main.c
浏览文件 @
5d22df20
...
...
@@ -286,7 +286,7 @@ static bool ath_complete_reset(struct ath_softc *sc, bool start)
ath_start_ani
(
common
);
}
if
(
ath9k_hw_ops
(
ah
)
->
antdiv_comb_conf_get
&&
sc
->
ant_rx
!=
3
)
{
if
(
(
ah
->
caps
.
hw_caps
&
ATH9K_HW_CAP_ANT_DIV_COMB
)
&&
sc
->
ant_rx
!=
3
)
{
struct
ath_hw_antcomb_conf
div_ant_conf
;
u8
lna_conf
;
...
...
drivers/net/wireless/ath/ath9k/rc.c
浏览文件 @
5d22df20
...
...
@@ -1271,7 +1271,9 @@ static void ath_rc_init(struct ath_softc *sc,
ath_rc_priv
->
max_valid_rate
=
k
;
ath_rc_sort_validrates
(
rate_table
,
ath_rc_priv
);
ath_rc_priv
->
rate_max_phy
=
ath_rc_priv
->
valid_rate_index
[
k
-
4
];
ath_rc_priv
->
rate_max_phy
=
(
k
>
4
)
?
ath_rc_priv
->
valid_rate_index
[
k
-
4
]
:
ath_rc_priv
->
valid_rate_index
[
k
-
1
];
ath_rc_priv
->
rate_table
=
rate_table
;
ath_dbg
(
common
,
ATH_DBG_CONFIG
,
...
...
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
浏览文件 @
5d22df20
...
...
@@ -610,8 +610,8 @@ int iwlagn_mac_config(struct ieee80211_hw *hw, u32 changed)
if
(
ctx
->
ht
.
enabled
)
{
/* if HT40 is used, it should not change
* after associated except channel switch */
if
(
iwl_is_associated_ctx
(
ctx
)
&&
!
ctx
->
ht
.
is_40mhz
)
if
(
!
ctx
->
ht
.
is_40mhz
||
!
iwl_is_associated_ctx
(
ctx
)
)
iwlagn_config_ht40
(
conf
,
ctx
);
}
else
ctx
->
ht
.
is_40mhz
=
false
;
...
...
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
浏览文件 @
5d22df20
...
...
@@ -91,7 +91,10 @@ static void iwlagn_tx_cmd_build_basic(struct iwl_priv *priv,
tx_cmd
->
tid_tspec
=
qc
[
0
]
&
0xf
;
tx_flags
&=
~
TX_CMD_FLG_SEQ_CTL_MSK
;
}
else
{
tx_flags
|=
TX_CMD_FLG_SEQ_CTL_MSK
;
if
(
info
->
flags
&
IEEE80211_TX_CTL_ASSIGN_SEQ
)
tx_flags
|=
TX_CMD_FLG_SEQ_CTL_MSK
;
else
tx_flags
&=
~
TX_CMD_FLG_SEQ_CTL_MSK
;
}
iwlagn_tx_cmd_protection
(
priv
,
info
,
fc
,
&
tx_flags
);
...
...
drivers/net/wireless/iwlwifi/iwl-mac80211.c
浏览文件 @
5d22df20
...
...
@@ -1048,6 +1048,9 @@ static int iwlagn_mac_tx_sync(struct ieee80211_hw *hw,
int
ret
;
u8
sta_id
;
if
(
ctx
->
ctxid
!=
IWL_RXON_CTX_PAN
)
return
0
;
IWL_DEBUG_MAC80211
(
priv
,
"enter
\n
"
);
mutex_lock
(
&
priv
->
shrd
->
mutex
);
...
...
@@ -1097,6 +1100,9 @@ static void iwlagn_mac_finish_tx_sync(struct ieee80211_hw *hw,
struct
iwl_vif_priv
*
vif_priv
=
(
void
*
)
vif
->
drv_priv
;
struct
iwl_rxon_context
*
ctx
=
vif_priv
->
ctx
;
if
(
ctx
->
ctxid
!=
IWL_RXON_CTX_PAN
)
return
;
IWL_DEBUG_MAC80211
(
priv
,
"enter
\n
"
);
mutex_lock
(
&
priv
->
shrd
->
mutex
);
...
...
drivers/net/wireless/mwifiex/cmdevt.c
浏览文件 @
5d22df20
...
...
@@ -939,7 +939,6 @@ mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter)
{
struct
cmd_ctrl_node
*
cmd_node
=
NULL
,
*
tmp_node
=
NULL
;
unsigned
long
cmd_flags
;
unsigned
long
cmd_pending_q_flags
;
unsigned
long
scan_pending_q_flags
;
uint16_t
cancel_scan_cmd
=
false
;
...
...
@@ -949,12 +948,9 @@ mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter)
cmd_node
=
adapter
->
curr_cmd
;
cmd_node
->
wait_q_enabled
=
false
;
cmd_node
->
cmd_flag
|=
CMD_F_CANCELED
;
spin_lock_irqsave
(
&
adapter
->
cmd_pending_q_lock
,
cmd_pending_q_flags
);
list_del
(
&
cmd_node
->
list
);
spin_unlock_irqrestore
(
&
adapter
->
cmd_pending_q_lock
,
cmd_pending_q_flags
);
mwifiex_insert_cmd_to_free_q
(
adapter
,
cmd_node
);
mwifiex_complete_cmd
(
adapter
,
adapter
->
curr_cmd
);
adapter
->
curr_cmd
=
NULL
;
spin_unlock_irqrestore
(
&
adapter
->
mwifiex_cmd_lock
,
cmd_flags
);
}
...
...
@@ -981,7 +977,6 @@ mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter)
spin_unlock_irqrestore
(
&
adapter
->
mwifiex_cmd_lock
,
cmd_flags
);
}
adapter
->
cmd_wait_q
.
status
=
-
1
;
mwifiex_complete_cmd
(
adapter
,
adapter
->
curr_cmd
);
}
/*
...
...
drivers/net/wireless/rtlwifi/rtl8192ce/phy.c
浏览文件 @
5d22df20
...
...
@@ -569,7 +569,7 @@ static bool _rtl92ce_phy_set_rf_power_state(struct ieee80211_hw *hw,
}
case
ERFSLEEP
:{
if
(
ppsc
->
rfpwr_state
==
ERFOFF
)
break
;
return
false
;
for
(
queue_id
=
0
,
i
=
0
;
queue_id
<
RTL_PCI_MAX_TX_QUEUE_COUNT
;)
{
ring
=
&
pcipriv
->
dev
.
tx_ring
[
queue_id
];
...
...
drivers/net/wireless/rtlwifi/rtl8192cu/phy.c
浏览文件 @
5d22df20
...
...
@@ -548,7 +548,7 @@ static bool _rtl92cu_phy_set_rf_power_state(struct ieee80211_hw *hw,
break
;
case
ERFSLEEP
:
if
(
ppsc
->
rfpwr_state
==
ERFOFF
)
break
;
return
false
;
for
(
queue_id
=
0
,
i
=
0
;
queue_id
<
RTL_PCI_MAX_TX_QUEUE_COUNT
;)
{
ring
=
&
pcipriv
->
dev
.
tx_ring
[
queue_id
];
...
...
drivers/net/wireless/rtlwifi/rtl8192de/phy.c
浏览文件 @
5d22df20
...
...
@@ -3374,7 +3374,7 @@ bool rtl92d_phy_set_rf_power_state(struct ieee80211_hw *hw,
break
;
case
ERFSLEEP
:
if
(
ppsc
->
rfpwr_state
==
ERFOFF
)
break
;
return
false
;
for
(
queue_id
=
0
,
i
=
0
;
queue_id
<
RTL_PCI_MAX_TX_QUEUE_COUNT
;)
{
...
...
drivers/net/wireless/rtlwifi/rtl8192se/phy.c
浏览文件 @
5d22df20
...
...
@@ -602,7 +602,7 @@ bool rtl92s_phy_set_rf_power_state(struct ieee80211_hw *hw,
}
case
ERFSLEEP
:
if
(
ppsc
->
rfpwr_state
==
ERFOFF
)
break
;
return
false
;
for
(
queue_id
=
0
,
i
=
0
;
queue_id
<
RTL_PCI_MAX_TX_QUEUE_COUNT
;)
{
...
...
drivers/ssb/driver_pcicore.c
浏览文件 @
5d22df20
...
...
@@ -517,10 +517,14 @@ static void ssb_pcicore_pcie_setup_workarounds(struct ssb_pcicore *pc)
static
void
__devinit
ssb_pcicore_init_clientmode
(
struct
ssb_pcicore
*
pc
)
{
ssb_pcicore_fix_sprom_core_index
(
pc
);
struct
ssb_device
*
pdev
=
pc
->
dev
;
struct
ssb_bus
*
bus
=
pdev
->
bus
;
if
(
bus
->
bustype
==
SSB_BUSTYPE_PCI
)
ssb_pcicore_fix_sprom_core_index
(
pc
);
/* Disable PCI interrupts. */
ssb_write32
(
p
c
->
dev
,
SSB_INTVEC
,
0
);
ssb_write32
(
pdev
,
SSB_INTVEC
,
0
);
/* Additional PCIe always once-executed workarounds */
if
(
pc
->
dev
->
id
.
coreid
==
SSB_DEV_PCIE
)
{
...
...
net/mac80211/agg-tx.c
浏览文件 @
5d22df20
...
...
@@ -309,6 +309,38 @@ ieee80211_wake_queue_agg(struct ieee80211_local *local, int tid)
__release
(
agg_queue
);
}
/*
* splice packets from the STA's pending to the local pending,
* requires a call to ieee80211_agg_splice_finish later
*/
static
void
__acquires
(
agg_queue
)
ieee80211_agg_splice_packets
(
struct
ieee80211_local
*
local
,
struct
tid_ampdu_tx
*
tid_tx
,
u16
tid
)
{
int
queue
=
ieee80211_ac_from_tid
(
tid
);
unsigned
long
flags
;
ieee80211_stop_queue_agg
(
local
,
tid
);
if
(
WARN
(
!
tid_tx
,
"TID %d gone but expected when splicing aggregates"
" from the pending queue
\n
"
,
tid
))
return
;
if
(
!
skb_queue_empty
(
&
tid_tx
->
pending
))
{
spin_lock_irqsave
(
&
local
->
queue_stop_reason_lock
,
flags
);
/* copy over remaining packets */
skb_queue_splice_tail_init
(
&
tid_tx
->
pending
,
&
local
->
pending
[
queue
]);
spin_unlock_irqrestore
(
&
local
->
queue_stop_reason_lock
,
flags
);
}
}
static
void
__releases
(
agg_queue
)
ieee80211_agg_splice_finish
(
struct
ieee80211_local
*
local
,
u16
tid
)
{
ieee80211_wake_queue_agg
(
local
,
tid
);
}
void
ieee80211_tx_ba_session_handle_start
(
struct
sta_info
*
sta
,
int
tid
)
{
struct
tid_ampdu_tx
*
tid_tx
;
...
...
@@ -320,19 +352,17 @@ void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid)
tid_tx
=
rcu_dereference_protected_tid_tx
(
sta
,
tid
);
/*
* While we're asking the driver about the aggregation,
* stop the AC queue so that we don't have to worry
* about frames that came in while we were doing that,
* which would require us to put them to the AC pending
* afterwards which just makes the code more complex.
* Start queuing up packets for this aggregation session.
* We're going to release them once the driver is OK with
* that.
*/
ieee80211_stop_queue_agg
(
local
,
tid
);
clear_bit
(
HT_AGG_STATE_WANT_START
,
&
tid_tx
->
state
);
/*
* make sure no packets are being processed to get
* valid starting sequence number
* Make sure no packets are being processed. This ensures that
* we have a valid starting sequence number and that in-flight
* packets have been flushed out and no packets for this TID
* will go into the driver during the ampdu_action call.
*/
synchronize_net
();
...
...
@@ -346,17 +376,15 @@ void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid)
" tid %d
\n
"
,
tid
);
#endif
spin_lock_bh
(
&
sta
->
lock
);
ieee80211_agg_splice_packets
(
local
,
tid_tx
,
tid
);
ieee80211_assign_tid_tx
(
sta
,
tid
,
NULL
);
ieee80211_agg_splice_finish
(
local
,
tid
);
spin_unlock_bh
(
&
sta
->
lock
);
ieee80211_wake_queue_agg
(
local
,
tid
);
kfree_rcu
(
tid_tx
,
rcu_head
);
return
;
}
/* we can take packets again now */
ieee80211_wake_queue_agg
(
local
,
tid
);
/* activate the timer for the recipient's addBA response */
mod_timer
(
&
tid_tx
->
addba_resp_timer
,
jiffies
+
ADDBA_RESP_INTERVAL
);
#ifdef CONFIG_MAC80211_HT_DEBUG
...
...
@@ -516,38 +544,6 @@ int ieee80211_start_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid,
}
EXPORT_SYMBOL
(
ieee80211_start_tx_ba_session
);
/*
* splice packets from the STA's pending to the local pending,
* requires a call to ieee80211_agg_splice_finish later
*/
static
void
__acquires
(
agg_queue
)
ieee80211_agg_splice_packets
(
struct
ieee80211_local
*
local
,
struct
tid_ampdu_tx
*
tid_tx
,
u16
tid
)
{
int
queue
=
ieee80211_ac_from_tid
(
tid
);
unsigned
long
flags
;
ieee80211_stop_queue_agg
(
local
,
tid
);
if
(
WARN
(
!
tid_tx
,
"TID %d gone but expected when splicing aggregates"
" from the pending queue
\n
"
,
tid
))
return
;
if
(
!
skb_queue_empty
(
&
tid_tx
->
pending
))
{
spin_lock_irqsave
(
&
local
->
queue_stop_reason_lock
,
flags
);
/* copy over remaining packets */
skb_queue_splice_tail_init
(
&
tid_tx
->
pending
,
&
local
->
pending
[
queue
]);
spin_unlock_irqrestore
(
&
local
->
queue_stop_reason_lock
,
flags
);
}
}
static
void
__releases
(
agg_queue
)
ieee80211_agg_splice_finish
(
struct
ieee80211_local
*
local
,
u16
tid
)
{
ieee80211_wake_queue_agg
(
local
,
tid
);
}
static
void
ieee80211_agg_tx_operational
(
struct
ieee80211_local
*
local
,
struct
sta_info
*
sta
,
u16
tid
)
{
...
...
net/nfc/nci/core.c
浏览文件 @
5d22df20
...
...
@@ -71,7 +71,7 @@ static int __nci_request(struct nci_dev *ndev,
__u32
timeout
)
{
int
rc
=
0
;
unsigned
long
completion_rc
;
long
completion_rc
;
ndev
->
req_status
=
NCI_REQ_PEND
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录