Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
d5dc056c
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d5dc056c
编写于
3月 31, 2010
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
00ae7028
73714004
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
55 addition
and
31 deletion
+55
-31
drivers/net/wireless/ath/ar9170/usb.c
drivers/net/wireless/ath/ar9170/usb.c
+3
-1
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl-4965.c
+2
-4
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.c
+10
-2
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
+2
-2
drivers/net/wireless/libertas/cfg.c
drivers/net/wireless/libertas/cfg.c
+6
-2
drivers/net/wireless/libertas/dev.h
drivers/net/wireless/libertas/dev.h
+1
-0
drivers/net/wireless/mwl8k.c
drivers/net/wireless/mwl8k.c
+1
-0
drivers/net/wireless/p54/p54usb.c
drivers/net/wireless/p54/p54usb.c
+1
-0
drivers/net/wireless/rt2x00/rt2500usb.c
drivers/net/wireless/rt2x00/rt2500usb.c
+5
-0
drivers/net/wireless/rt2x00/rt2800lib.c
drivers/net/wireless/rt2x00/rt2800lib.c
+2
-2
net/mac80211/mesh_hwmp.c
net/mac80211/mesh_hwmp.c
+2
-2
net/mac80211/tx.c
net/mac80211/tx.c
+6
-0
net/mac80211/util.c
net/mac80211/util.c
+9
-9
net/wireless/reg.c
net/wireless/reg.c
+5
-7
未找到文件。
drivers/net/wireless/ath/ar9170/usb.c
浏览文件 @
d5dc056c
...
...
@@ -94,6 +94,8 @@ static struct usb_device_id ar9170_usb_ids[] = {
{
USB_DEVICE
(
0x04bb
,
0x093f
)
},
/* AVM FRITZ!WLAN USB Stick N */
{
USB_DEVICE
(
0x057C
,
0x8401
)
},
/* NEC WL300NU-G */
{
USB_DEVICE
(
0x0409
,
0x0249
)
},
/* AVM FRITZ!WLAN USB Stick N 2.4 */
{
USB_DEVICE
(
0x057C
,
0x8402
),
.
driver_info
=
AR9170_REQ_FW1_ONLY
},
...
...
@@ -416,7 +418,7 @@ static int ar9170_usb_exec_cmd(struct ar9170 *ar, enum ar9170_cmd cmd,
spin_unlock_irqrestore
(
&
aru
->
common
.
cmdlock
,
flags
);
usb_fill_int_urb
(
urb
,
aru
->
udev
,
usb_snd
bulk
pipe
(
aru
->
udev
,
AR9170_EP_CMD
),
usb_snd
int
pipe
(
aru
->
udev
,
AR9170_EP_CMD
),
aru
->
common
.
cmdbuf
,
plen
+
4
,
ar9170_usb_tx_urb_complete
,
NULL
,
1
);
...
...
drivers/net/wireless/iwlwifi/iwl-4965.c
浏览文件 @
d5dc056c
...
...
@@ -2041,16 +2041,14 @@ static void iwl4965_rx_reply_tx(struct iwl_priv *priv,
tx_resp
->
failure_frame
);
freed
=
iwl_tx_queue_reclaim
(
priv
,
txq_id
,
index
);
if
(
qc
&&
likely
(
sta_id
!=
IWL_INVALID_STATION
))
priv
->
stations
[
sta_id
].
tid
[
tid
].
tfds_in_queue
-=
freed
;
iwl_free_tfds_in_queue
(
priv
,
sta_id
,
tid
,
freed
);
if
(
priv
->
mac80211_registered
&&
(
iwl_queue_space
(
&
txq
->
q
)
>
txq
->
q
.
low_mark
))
iwl_wake_queue
(
priv
,
txq_id
);
}
if
(
qc
&&
likely
(
sta_id
!=
IWL_INVALID_STATION
))
iwl_txq_check_empty
(
priv
,
sta_id
,
tid
,
txq_id
);
iwl_txq_check_empty
(
priv
,
sta_id
,
tid
,
txq_id
);
if
(
iwl_check_bits
(
status
,
TX_ABORT_REQUIRED_MSK
))
IWL_ERR
(
priv
,
"TODO: Implement Tx ABORT REQUIRED!!!
\n
"
);
...
...
drivers/net/wireless/iwlwifi/iwl-agn.c
浏览文件 @
d5dc056c
...
...
@@ -1258,7 +1258,15 @@ static void iwl_irq_tasklet(struct iwl_priv *priv)
/* Ack/clear/reset pending uCode interrupts.
* Note: Some bits in CSR_INT are "OR" of bits in CSR_FH_INT_STATUS,
*/
iwl_write32
(
priv
,
CSR_INT
,
priv
->
inta
);
/* There is a hardware bug in the interrupt mask function that some
* interrupts (i.e. CSR_INT_BIT_SCD) can still be generated even if
* they are disabled in the CSR_INT_MASK register. Furthermore the
* ICT interrupt handling mechanism has another bug that might cause
* these unmasked interrupts fail to be detected. We workaround the
* hardware bugs here by ACKing all the possible interrupts so that
* interrupt coalescing can still be achieved.
*/
iwl_write32
(
priv
,
CSR_INT
,
priv
->
inta
|
~
priv
->
inta_mask
);
inta
=
priv
->
inta
;
...
...
@@ -2644,7 +2652,7 @@ static int iwl_mac_setup_register(struct iwl_priv *priv)
BIT
(
NL80211_IFTYPE_STATION
)
|
BIT
(
NL80211_IFTYPE_ADHOC
);
hw
->
wiphy
->
flags
|=
WIPHY_FLAG_
STRICT
_REGULATORY
|
hw
->
wiphy
->
flags
|=
WIPHY_FLAG_
CUSTOM
_REGULATORY
|
WIPHY_FLAG_DISABLE_BEACON_HINTS
;
/*
...
...
drivers/net/wireless/iwlwifi/iwl3945-base.c
浏览文件 @
d5dc056c
...
...
@@ -1955,7 +1955,7 @@ static void iwl3945_init_hw_rates(struct iwl_priv *priv,
{
int
i
;
for
(
i
=
0
;
i
<
IWL_RATE_COUNT
;
i
++
)
{
for
(
i
=
0
;
i
<
IWL_RATE_COUNT
_LEGACY
;
i
++
)
{
rates
[
i
].
bitrate
=
iwl3945_rates
[
i
].
ieee
*
5
;
rates
[
i
].
hw_value
=
i
;
/* Rate scaling will work on indexes */
rates
[
i
].
hw_value_short
=
i
;
...
...
@@ -3921,7 +3921,7 @@ static int iwl3945_setup_mac(struct iwl_priv *priv)
BIT
(
NL80211_IFTYPE_STATION
)
|
BIT
(
NL80211_IFTYPE_ADHOC
);
hw
->
wiphy
->
flags
|=
WIPHY_FLAG_
STRICT
_REGULATORY
|
hw
->
wiphy
->
flags
|=
WIPHY_FLAG_
CUSTOM
_REGULATORY
|
WIPHY_FLAG_DISABLE_BEACON_HINTS
;
hw
->
wiphy
->
max_scan_ssids
=
PROBE_OPTION_MAX_3945
;
...
...
drivers/net/wireless/libertas/cfg.c
浏览文件 @
d5dc056c
...
...
@@ -172,6 +172,8 @@ int lbs_cfg_register(struct lbs_private *priv)
if
(
ret
<
0
)
lbs_pr_err
(
"cannot register wiphy device
\n
"
);
priv
->
wiphy_registered
=
true
;
ret
=
register_netdev
(
priv
->
dev
);
if
(
ret
)
lbs_pr_err
(
"cannot register network device
\n
"
);
...
...
@@ -190,9 +192,11 @@ void lbs_cfg_free(struct lbs_private *priv)
if
(
!
wdev
)
return
;
if
(
wdev
->
wiphy
)
{
if
(
priv
->
wiphy_registered
)
wiphy_unregister
(
wdev
->
wiphy
);
if
(
wdev
->
wiphy
)
wiphy_free
(
wdev
->
wiphy
);
}
kfree
(
wdev
);
}
drivers/net/wireless/libertas/dev.h
浏览文件 @
d5dc056c
...
...
@@ -36,6 +36,7 @@ struct lbs_private {
/* CFG80211 */
struct
wireless_dev
*
wdev
;
bool
wiphy_registered
;
/* Mesh */
struct
net_device
*
mesh_dev
;
/* Virtual device */
...
...
drivers/net/wireless/mwl8k.c
浏览文件 @
d5dc056c
...
...
@@ -3851,6 +3851,7 @@ MODULE_FIRMWARE("mwl8k/helper_8366.fw");
MODULE_FIRMWARE
(
"mwl8k/fmimage_8366.fw"
);
static
DEFINE_PCI_DEVICE_TABLE
(
mwl8k_pci_id_table
)
=
{
{
PCI_VDEVICE
(
MARVELL
,
0x2a0a
),
.
driver_data
=
MWL8363
,
},
{
PCI_VDEVICE
(
MARVELL
,
0x2a0c
),
.
driver_data
=
MWL8363
,
},
{
PCI_VDEVICE
(
MARVELL
,
0x2a24
),
.
driver_data
=
MWL8363
,
},
{
PCI_VDEVICE
(
MARVELL
,
0x2a2b
),
.
driver_data
=
MWL8687
,
},
...
...
drivers/net/wireless/p54/p54usb.c
浏览文件 @
d5dc056c
...
...
@@ -35,6 +35,7 @@ MODULE_FIRMWARE("isl3887usb");
static
struct
usb_device_id
p54u_table
[]
__devinitdata
=
{
/* Version 1 devices (pci chip + net2280) */
{
USB_DEVICE
(
0x0506
,
0x0a11
)},
/* 3COM 3CRWE254G72 */
{
USB_DEVICE
(
0x06b9
,
0x0120
)},
/* Thomson SpeedTouch 120g */
{
USB_DEVICE
(
0x0707
,
0xee06
)},
/* SMC 2862W-G */
{
USB_DEVICE
(
0x07aa
,
0x001c
)},
/* Corega CG-WLUSB2GT */
{
USB_DEVICE
(
0x083a
,
0x4501
)},
/* Accton 802.11g WN4501 USB */
...
...
drivers/net/wireless/rt2x00/rt2500usb.c
浏览文件 @
d5dc056c
...
...
@@ -1642,6 +1642,11 @@ static int rt2500usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
char
*
tx_power
;
unsigned
int
i
;
/*
* Disable powersaving as default.
*/
rt2x00dev
->
hw
->
wiphy
->
flags
&=
~
WIPHY_FLAG_PS_ON_BY_DEFAULT
;
/*
* Initialize all hw fields.
*/
...
...
drivers/net/wireless/rt2x00/rt2800lib.c
浏览文件 @
d5dc056c
...
...
@@ -812,9 +812,9 @@ static void rt2800_config_channel_rt3x(struct rt2x00_dev *rt2x00dev,
rt2800_rfcsr_write
(
rt2x00dev
,
24
,
rt2x00dev
->
calibration
[
conf_is_ht40
(
conf
)]);
rt2800_rfcsr_read
(
rt2x00dev
,
23
,
&
rfcsr
);
rt2800_rfcsr_read
(
rt2x00dev
,
7
,
&
rfcsr
);
rt2x00_set_field8
(
&
rfcsr
,
RFCSR7_RF_TUNING
,
1
);
rt2800_rfcsr_write
(
rt2x00dev
,
23
,
rfcsr
);
rt2800_rfcsr_write
(
rt2x00dev
,
7
,
rfcsr
);
}
static
void
rt2800_config_channel
(
struct
rt2x00_dev
*
rt2x00dev
,
...
...
net/mac80211/mesh_hwmp.c
浏览文件 @
d5dc056c
...
...
@@ -391,7 +391,7 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata,
if
(
SN_GT
(
mpath
->
sn
,
orig_sn
)
||
(
mpath
->
sn
==
orig_sn
&&
action
==
MPATH_PREQ
&&
new_metric
>
mpath
->
metric
))
{
new_metric
>
=
mpath
->
metric
))
{
process
=
false
;
fresh_info
=
false
;
}
...
...
@@ -611,7 +611,7 @@ static void hwmp_prep_frame_process(struct ieee80211_sub_if_data *sdata,
mesh_path_sel_frame_tx
(
MPATH_PREP
,
flags
,
orig_addr
,
cpu_to_le32
(
orig_sn
),
0
,
target_addr
,
cpu_to_le32
(
target_sn
),
mpath
->
next_hop
->
sta
.
addr
,
hopcount
,
cpu_to_le32
(
target_sn
),
next_hop
,
hopcount
,
ttl
,
cpu_to_le32
(
lifetime
),
cpu_to_le32
(
metric
),
0
,
sdata
);
rcu_read_unlock
();
...
...
net/mac80211/tx.c
浏览文件 @
d5dc056c
...
...
@@ -1991,6 +1991,7 @@ static bool ieee80211_tx_pending_skb(struct ieee80211_local *local,
void
ieee80211_tx_pending
(
unsigned
long
data
)
{
struct
ieee80211_local
*
local
=
(
struct
ieee80211_local
*
)
data
;
struct
ieee80211_sub_if_data
*
sdata
;
unsigned
long
flags
;
int
i
;
bool
txok
;
...
...
@@ -2029,6 +2030,11 @@ void ieee80211_tx_pending(unsigned long data)
if
(
!
txok
)
break
;
}
if
(
skb_queue_empty
(
&
local
->
pending
[
i
]))
list_for_each_entry_rcu
(
sdata
,
&
local
->
interfaces
,
list
)
netif_tx_wake_queue
(
netdev_get_tx_queue
(
sdata
->
dev
,
i
));
}
spin_unlock_irqrestore
(
&
local
->
queue_stop_reason_lock
,
flags
);
...
...
net/mac80211/util.c
浏览文件 @
d5dc056c
...
...
@@ -279,13 +279,13 @@ static void __ieee80211_wake_queue(struct ieee80211_hw *hw, int queue,
/* someone still has this queue stopped */
return
;
if
(
!
skb_queue_empty
(
&
local
->
pending
[
queue
]))
if
(
skb_queue_empty
(
&
local
->
pending
[
queue
]))
{
rcu_read_lock
();
list_for_each_entry_rcu
(
sdata
,
&
local
->
interfaces
,
list
)
netif_tx_wake_queue
(
netdev_get_tx_queue
(
sdata
->
dev
,
queue
));
rcu_read_unlock
();
}
else
tasklet_schedule
(
&
local
->
tx_pending_tasklet
);
rcu_read_lock
();
list_for_each_entry_rcu
(
sdata
,
&
local
->
interfaces
,
list
)
netif_tx_wake_queue
(
netdev_get_tx_queue
(
sdata
->
dev
,
queue
));
rcu_read_unlock
();
}
void
ieee80211_wake_queue_by_reason
(
struct
ieee80211_hw
*
hw
,
int
queue
,
...
...
@@ -1097,9 +1097,9 @@ int ieee80211_reconfig(struct ieee80211_local *local)
*/
res
=
drv_start
(
local
);
if
(
res
)
{
WARN
(
local
->
suspended
,
"Harware became unavailable "
"upon resume. This
is could be a software issue
"
"prior to suspend or a hardware issue
\n
"
);
WARN
(
local
->
suspended
,
"Har
d
ware became unavailable "
"upon resume. This
could be a software issue
"
"prior to suspend or a hardware issue
.
\n
"
);
return
res
;
}
...
...
net/wireless/reg.c
浏览文件 @
d5dc056c
...
...
@@ -324,7 +324,7 @@ struct reg_regdb_search_request {
};
static
LIST_HEAD
(
reg_regdb_search_list
);
static
DEFINE_
SPINLOCK
(
reg_regdb_search_lock
);
static
DEFINE_
MUTEX
(
reg_regdb_search_mutex
);
static
void
reg_regdb_search
(
struct
work_struct
*
work
)
{
...
...
@@ -332,7 +332,7 @@ static void reg_regdb_search(struct work_struct *work)
const
struct
ieee80211_regdomain
*
curdom
,
*
regdom
;
int
i
,
r
;
spin_lock
(
&
reg_regdb_search_lock
);
mutex_lock
(
&
reg_regdb_search_mutex
);
while
(
!
list_empty
(
&
reg_regdb_search_list
))
{
request
=
list_first_entry
(
&
reg_regdb_search_list
,
struct
reg_regdb_search_request
,
...
...
@@ -346,18 +346,16 @@ static void reg_regdb_search(struct work_struct *work)
r
=
reg_copy_regd
(
&
regdom
,
curdom
);
if
(
r
)
break
;
spin_unlock
(
&
reg_regdb_search_lock
);
mutex_lock
(
&
cfg80211_mutex
);
set_regdom
(
regdom
);
mutex_unlock
(
&
cfg80211_mutex
);
spin_lock
(
&
reg_regdb_search_lock
);
break
;
}
}
kfree
(
request
);
}
spin_unlock
(
&
reg_regdb_search_lock
);
mutex_unlock
(
&
reg_regdb_search_mutex
);
}
static
DECLARE_WORK
(
reg_regdb_work
,
reg_regdb_search
);
...
...
@@ -375,9 +373,9 @@ static void reg_regdb_query(const char *alpha2)
memcpy
(
request
->
alpha2
,
alpha2
,
2
);
spin_lock
(
&
reg_regdb_search_lock
);
mutex_lock
(
&
reg_regdb_search_mutex
);
list_add_tail
(
&
request
->
list
,
&
reg_regdb_search_list
);
spin_unlock
(
&
reg_regdb_search_lock
);
mutex_unlock
(
&
reg_regdb_search_mutex
);
schedule_work
(
&
reg_regdb_work
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录