Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
6440be17
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
6440be17
编写于
4月 23, 2008
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
49186b4a
09971493
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
129 addition
and
38 deletion
+129
-38
MAINTAINERS
MAINTAINERS
+2
-4
drivers/net/wireless/ath5k/hw.c
drivers/net/wireless/ath5k/hw.c
+10
-4
drivers/net/wireless/b43/dma.c
drivers/net/wireless/b43/dma.c
+39
-8
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/main.c
+28
-4
drivers/net/wireless/b43/phy.c
drivers/net/wireless/b43/phy.c
+1
-1
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
+0
-1
drivers/net/wireless/iwlwifi/iwl4965-base.c
drivers/net/wireless/iwlwifi/iwl4965-base.c
+0
-1
drivers/net/wireless/prism54/isl_ioctl.c
drivers/net/wireless/prism54/isl_ioctl.c
+1
-1
drivers/net/wireless/rndis_wlan.c
drivers/net/wireless/rndis_wlan.c
+3
-2
drivers/ssb/pci.c
drivers/ssb/pci.c
+5
-0
include/linux/ieee80211.h
include/linux/ieee80211.h
+13
-7
net/mac80211/mlme.c
net/mac80211/mlme.c
+25
-3
net/mac80211/rx.c
net/mac80211/rx.c
+1
-1
net/mac80211/wme.c
net/mac80211/wme.c
+1
-1
未找到文件。
MAINTAINERS
浏览文件 @
6440be17
...
...
@@ -2547,12 +2547,10 @@ W: http://www.tazenda.demon.co.uk/phil/linux-hp
S: Maintained
MAC80211
P: Michael Wu
M: flamingice@sourmilk.net
P: Johannes Berg
M: johannes@sipsolutions.net
P:
Jiri Benc
M:
jbenc@suse.cz
P:
Michael Wu
M:
flamingice@sourmilk.net
L: linux-wireless@vger.kernel.org
W: http://linuxwireless.org/
T: git kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6.git
...
...
drivers/net/wireless/ath5k/hw.c
浏览文件 @
6440be17
...
...
@@ -304,14 +304,20 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
ah
->
ah_radio
=
AR5K_RF2413
;
ah
->
ah_phy_spending
=
AR5K_PHY_SPENDING_RF5112A
;
}
else
if
(
ah
->
ah_radio_5ghz_revision
<
AR5K_SREV_RAD_SC2
)
{
ah
->
ah_radio
=
AR5K_RF5413
;
ah
->
ah_phy_spending
=
AR5K_PHY_SPENDING_RF5112A
;
}
else
if
(
ah
->
ah_radio_5ghz_revision
<
AR5K_SREV_RAD_5133
)
{
if
(
ah
->
ah_mac_srev
<=
AR5K_SREV_VER_AR5424
&&
ah
->
ah_mac_srev
>=
AR5K_SREV_VER_AR2424
)
/* AR5424 */
if
(
srev
>=
AR5K_SREV_VER_AR5424
)
{
ah
->
ah_radio
=
AR5K_RF5413
;
ah
->
ah_phy_spending
=
AR5K_PHY_SPENDING_RF5424
;
else
/* AR2424 */
}
else
{
ah
->
ah_radio
=
AR5K_RF2413
;
/* For testing */
ah
->
ah_phy_spending
=
AR5K_PHY_SPENDING_RF5112A
;
}
/*
* Register returns 0x4 for radio revision
* so ath5k_hw_radio_revision doesn't parse the value
...
...
drivers/net/wireless/b43/dma.c
浏览文件 @
6440be17
...
...
@@ -980,6 +980,42 @@ void b43_dma_free(struct b43_wldev *dev)
destroy_ring
(
dma
,
tx_ring_mcast
);
}
static
int
b43_dma_set_mask
(
struct
b43_wldev
*
dev
,
u64
mask
)
{
u64
orig_mask
=
mask
;
bool
fallback
=
0
;
int
err
;
/* Try to set the DMA mask. If it fails, try falling back to a
* lower mask, as we can always also support a lower one. */
while
(
1
)
{
err
=
ssb_dma_set_mask
(
dev
->
dev
,
mask
);
if
(
!
err
)
break
;
if
(
mask
==
DMA_64BIT_MASK
)
{
mask
=
DMA_32BIT_MASK
;
fallback
=
1
;
continue
;
}
if
(
mask
==
DMA_32BIT_MASK
)
{
mask
=
DMA_30BIT_MASK
;
fallback
=
1
;
continue
;
}
b43err
(
dev
->
wl
,
"The machine/kernel does not support "
"the required %u-bit DMA mask
\n
"
,
(
unsigned
int
)
dma_mask_to_engine_type
(
orig_mask
));
return
-
EOPNOTSUPP
;
}
if
(
fallback
)
{
b43info
(
dev
->
wl
,
"DMA mask fallback from %u-bit to %u-bit
\n
"
,
(
unsigned
int
)
dma_mask_to_engine_type
(
orig_mask
),
(
unsigned
int
)
dma_mask_to_engine_type
(
mask
));
}
return
0
;
}
int
b43_dma_init
(
struct
b43_wldev
*
dev
)
{
struct
b43_dma
*
dma
=
&
dev
->
dma
;
...
...
@@ -989,14 +1025,9 @@ int b43_dma_init(struct b43_wldev *dev)
dmamask
=
supported_dma_mask
(
dev
);
type
=
dma_mask_to_engine_type
(
dmamask
);
err
=
ssb_dma_set_mask
(
dev
->
dev
,
dmamask
);
if
(
err
)
{
b43err
(
dev
->
wl
,
"The machine/kernel does not support "
"the required DMA mask (0x%08X%08X)
\n
"
,
(
unsigned
int
)((
dmamask
&
0xFFFFFFFF00000000ULL
)
>>
32
),
(
unsigned
int
)(
dmamask
&
0x00000000FFFFFFFFULL
));
return
-
EOPNOTSUPP
;
}
err
=
b43_dma_set_mask
(
dev
,
dmamask
);
if
(
err
)
return
err
;
err
=
-
ENOMEM
;
/* setup TX DMA channels. */
...
...
drivers/net/wireless/b43/main.c
浏览文件 @
6440be17
...
...
@@ -84,6 +84,10 @@ int b43_modparam_qos = 1;
module_param_named
(
qos
,
b43_modparam_qos
,
int
,
0444
);
MODULE_PARM_DESC
(
qos
,
"Enable QOS support (default on)"
);
static
int
modparam_btcoex
=
1
;
module_param_named
(
btcoex
,
modparam_btcoex
,
int
,
0444
);
MODULE_PARM_DESC
(
btcoex
,
"Enable Bluetooth coexistance (default on)"
);
static
const
struct
ssb_device_id
b43_ssb_tbl
[]
=
{
SSB_DEVICE
(
SSB_VENDOR_BROADCOM
,
SSB_DEV_80211
,
5
),
...
...
@@ -3706,8 +3710,10 @@ static void setup_struct_wldev_for_init(struct b43_wldev *dev)
static
void
b43_bluetooth_coext_enable
(
struct
b43_wldev
*
dev
)
{
struct
ssb_sprom
*
sprom
=
&
dev
->
dev
->
bus
->
sprom
;
u
32
hf
;
u
64
hf
;
if
(
!
modparam_btcoex
)
return
;
if
(
!
(
sprom
->
boardflags_lo
&
B43_BFL_BTCOEXIST
))
return
;
if
(
dev
->
phy
.
type
!=
B43_PHYTYPE_B
&&
!
dev
->
phy
.
gmode
)
...
...
@@ -3719,11 +3725,13 @@ static void b43_bluetooth_coext_enable(struct b43_wldev *dev)
else
hf
|=
B43_HF_BTCOEX
;
b43_hf_write
(
dev
,
hf
);
//TODO
}
static
void
b43_bluetooth_coext_disable
(
struct
b43_wldev
*
dev
)
{
//TODO
{
if
(
!
modparam_btcoex
)
return
;
//TODO
}
static
void
b43_imcfglo_timeouts_workaround
(
struct
b43_wldev
*
dev
)
...
...
@@ -3852,7 +3860,8 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
struct
ssb_sprom
*
sprom
=
&
bus
->
sprom
;
struct
b43_phy
*
phy
=
&
dev
->
phy
;
int
err
;
u32
hf
,
tmp
;
u64
hf
;
u32
tmp
;
B43_WARN_ON
(
b43_status
(
dev
)
!=
B43_STAT_UNINIT
);
...
...
@@ -4414,8 +4423,16 @@ static int b43_one_core_attach(struct ssb_device *dev, struct b43_wl *wl)
return
err
;
}
#define IS_PDEV(pdev, _vendor, _device, _subvendor, _subdevice) ( \
(pdev->vendor == PCI_VENDOR_ID_##_vendor) && \
(pdev->device == _device) && \
(pdev->subsystem_vendor == PCI_VENDOR_ID_##_subvendor) && \
(pdev->subsystem_device == _subdevice) )
static
void
b43_sprom_fixup
(
struct
ssb_bus
*
bus
)
{
struct
pci_dev
*
pdev
;
/* boardflags workarounds */
if
(
bus
->
boardinfo
.
vendor
==
SSB_BOARDVENDOR_DELL
&&
bus
->
chip_id
==
0x4301
&&
bus
->
boardinfo
.
rev
==
0x74
)
...
...
@@ -4423,6 +4440,13 @@ static void b43_sprom_fixup(struct ssb_bus *bus)
if
(
bus
->
boardinfo
.
vendor
==
PCI_VENDOR_ID_APPLE
&&
bus
->
boardinfo
.
type
==
0x4E
&&
bus
->
boardinfo
.
rev
>
0x40
)
bus
->
sprom
.
boardflags_lo
|=
B43_BFL_PACTRL
;
if
(
bus
->
bustype
==
SSB_BUSTYPE_PCI
)
{
pdev
=
bus
->
host_pci
;
if
(
IS_PDEV
(
pdev
,
BROADCOM
,
0x4318
,
ASUSTEK
,
0x100F
)
||
IS_PDEV
(
pdev
,
BROADCOM
,
0x4320
,
LINKSYS
,
0x0015
)
||
IS_PDEV
(
pdev
,
BROADCOM
,
0x4320
,
LINKSYS
,
0x0013
))
bus
->
sprom
.
boardflags_lo
&=
~
B43_BFL_BTCOEXIST
;
}
}
static
void
b43_wireless_exit
(
struct
ssb_device
*
dev
,
struct
b43_wl
*
wl
)
...
...
drivers/net/wireless/b43/phy.c
浏览文件 @
6440be17
...
...
@@ -2043,7 +2043,7 @@ int b43_phy_init(struct b43_wldev *dev)
void
b43_set_rx_antenna
(
struct
b43_wldev
*
dev
,
int
antenna
)
{
struct
b43_phy
*
phy
=
&
dev
->
phy
;
u
32
hf
;
u
64
hf
;
u16
tmp
;
int
autodiv
=
0
;
...
...
drivers/net/wireless/iwlwifi/iwl3945-base.c
浏览文件 @
6440be17
...
...
@@ -6907,7 +6907,6 @@ static int iwl3945_mac_config_interface(struct ieee80211_hw *hw,
if
(
priv
->
vif
!=
vif
)
{
IWL_DEBUG_MAC80211
(
"leave - priv->vif != vif
\n
"
);
mutex_unlock
(
&
priv
->
mutex
);
return
0
;
}
...
...
drivers/net/wireless/iwlwifi/iwl4965-base.c
浏览文件 @
6440be17
...
...
@@ -6473,7 +6473,6 @@ static int iwl4965_mac_config_interface(struct ieee80211_hw *hw,
if
(
priv
->
vif
!=
vif
)
{
IWL_DEBUG_MAC80211
(
"leave - priv->vif != vif
\n
"
);
mutex_unlock
(
&
priv
->
mutex
);
return
0
;
}
...
...
drivers/net/wireless/prism54/isl_ioctl.c
浏览文件 @
6440be17
...
...
@@ -1186,7 +1186,7 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info,
rvalue
|=
mgt_get_request
(
priv
,
DOT11_OID_DEFKEYID
,
0
,
NULL
,
&
r
);
devindex
=
r
.
u
;
/* Now get the key, return it */
if
(
(
index
<
0
)
||
(
index
>
3
)
)
if
(
index
==
-
1
||
index
>
3
)
/* no index provided, use the current one */
index
=
devindex
;
rvalue
|=
mgt_get_request
(
priv
,
DOT11_OID_DEFKEYX
,
index
,
NULL
,
&
r
);
...
...
drivers/net/wireless/rndis_wlan.c
浏览文件 @
6440be17
...
...
@@ -2402,7 +2402,6 @@ static int bcm4320_early_init(struct usbnet *dev)
priv
->
param_power_output
=
modparam_power_output
;
priv
->
param_roamtrigger
=
modparam_roamtrigger
;
priv
->
param_roamdelta
=
modparam_roamdelta
;
priv
->
param_workaround_interval
=
modparam_workaround_interval
;
priv
->
param_country
[
0
]
=
toupper
(
priv
->
param_country
[
0
]);
priv
->
param_country
[
1
]
=
toupper
(
priv
->
param_country
[
1
]);
...
...
@@ -2425,8 +2424,10 @@ static int bcm4320_early_init(struct usbnet *dev)
else
if
(
priv
->
param_roamdelta
>
2
)
priv
->
param_roamdelta
=
2
;
if
(
priv
->
param_workaround_interval
<
0
)
if
(
mod
param_workaround_interval
<
0
)
priv
->
param_workaround_interval
=
500
;
else
priv
->
param_workaround_interval
=
modparam_workaround_interval
;
rndis_set_config_parameter_str
(
dev
,
"Country"
,
priv
->
param_country
);
rndis_set_config_parameter_str
(
dev
,
"FrameBursting"
,
...
...
drivers/ssb/pci.c
浏览文件 @
6440be17
...
...
@@ -484,6 +484,11 @@ static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out,
goto
unsupported
;
}
if
(
out
->
boardflags_lo
==
0xFFFF
)
out
->
boardflags_lo
=
0
;
/* per specs */
if
(
out
->
boardflags_hi
==
0xFFFF
)
out
->
boardflags_hi
=
0
;
/* per specs */
return
0
;
unsupported:
ssb_printk
(
KERN_WARNING
PFX
"Unsupported SPROM revision %d "
...
...
include/linux/ieee80211.h
浏览文件 @
6440be17
...
...
@@ -465,13 +465,19 @@ enum ieee80211_eid {
WLAN_EID_TS_DELAY
=
43
,
WLAN_EID_TCLAS_PROCESSING
=
44
,
WLAN_EID_QOS_CAPA
=
46
,
/* 802.11s */
WLAN_EID_MESH_CONFIG
=
36
,
/* Pending IEEE 802.11 ANA approval */
WLAN_EID_MESH_ID
=
37
,
/* Pending IEEE 802.11 ANA approval */
WLAN_EID_PEER_LINK
=
40
,
/* Pending IEEE 802.11 ANA approval */
WLAN_EID_PREQ
=
53
,
/* Pending IEEE 802.11 ANA approval */
WLAN_EID_PREP
=
54
,
/* Pending IEEE 802.11 ANA approval */
WLAN_EID_PERR
=
55
,
/* Pending IEEE 802.11 ANA approval */
/* 802.11s
*
* All mesh EID numbers are pending IEEE 802.11 ANA approval.
* The numbers have been incremented from those suggested in
* 802.11s/D2.0 so that MESH_CONFIG does not conflict with
* EXT_SUPP_RATES.
*/
WLAN_EID_MESH_CONFIG
=
51
,
WLAN_EID_MESH_ID
=
52
,
WLAN_EID_PEER_LINK
=
55
,
WLAN_EID_PREQ
=
68
,
WLAN_EID_PREP
=
69
,
WLAN_EID_PERR
=
70
,
/* 802.11h */
WLAN_EID_PWR_CONSTRAINT
=
32
,
WLAN_EID_PWR_CAPABILITY
=
33
,
...
...
net/mac80211/mlme.c
浏览文件 @
6440be17
...
...
@@ -2248,10 +2248,13 @@ static void ieee80211_rx_bss_put(struct net_device *dev,
struct
ieee80211_sta_bss
*
bss
)
{
struct
ieee80211_local
*
local
=
wdev_priv
(
dev
->
ieee80211_ptr
);
if
(
!
atomic_dec_and_test
(
&
bss
->
users
))
local_bh_disable
();
if
(
!
atomic_dec_and_lock
(
&
bss
->
users
,
&
local
->
sta_bss_lock
))
{
local_bh_enable
();
return
;
}
spin_lock_bh
(
&
local
->
sta_bss_lock
);
__ieee80211_rx_bss_hash_del
(
dev
,
bss
);
list_del
(
&
bss
->
list
);
spin_unlock_bh
(
&
local
->
sta_bss_lock
);
...
...
@@ -2709,7 +2712,26 @@ static void ieee80211_rx_bss_info(struct net_device *dev,
bss
->
wmm_ie_len
=
elems
.
wmm_param_len
+
2
;
}
else
bss
->
wmm_ie_len
=
0
;
}
else
if
(
!
elems
.
wmm_param
&&
bss
->
wmm_ie
)
{
}
else
if
(
elems
.
wmm_info
&&
(
!
bss
->
wmm_ie
||
bss
->
wmm_ie_len
!=
elems
.
wmm_info_len
||
memcmp
(
bss
->
wmm_ie
,
elems
.
wmm_info
,
elems
.
wmm_info_len
)))
{
/* As for certain AP's Fifth bit is not set in WMM IE in
* beacon frames.So while parsing the beacon frame the
* wmm_info structure is used instead of wmm_param.
* wmm_info structure was never used to set bss->wmm_ie.
* This code fixes this problem by copying the WME
* information from wmm_info to bss->wmm_ie and enabling
* n-band association.
*/
kfree
(
bss
->
wmm_ie
);
bss
->
wmm_ie
=
kmalloc
(
elems
.
wmm_info_len
+
2
,
GFP_ATOMIC
);
if
(
bss
->
wmm_ie
)
{
memcpy
(
bss
->
wmm_ie
,
elems
.
wmm_info
-
2
,
elems
.
wmm_info_len
+
2
);
bss
->
wmm_ie_len
=
elems
.
wmm_info_len
+
2
;
}
else
bss
->
wmm_ie_len
=
0
;
}
else
if
(
!
elems
.
wmm_param
&&
!
elems
.
wmm_info
&&
bss
->
wmm_ie
)
{
kfree
(
bss
->
wmm_ie
);
bss
->
wmm_ie
=
NULL
;
bss
->
wmm_ie_len
=
0
;
...
...
net/mac80211/rx.c
浏览文件 @
6440be17
...
...
@@ -2170,7 +2170,7 @@ void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb,
struct
ieee80211_supported_band
*
sband
;
if
(
status
->
band
<
0
||
status
->
band
>
IEEE80211_NUM_BANDS
)
{
status
->
band
>
=
IEEE80211_NUM_BANDS
)
{
WARN_ON
(
1
);
return
;
}
...
...
net/mac80211/wme.c
浏览文件 @
6440be17
...
...
@@ -709,7 +709,7 @@ void ieee80211_requeue(struct ieee80211_local *local, int queue)
struct
ieee80211_sched_data
*
q
=
qdisc_priv
(
root_qd
);
struct
Qdisc
*
qdisc
=
q
->
queues
[
queue
];
struct
sk_buff
*
skb
=
NULL
;
u32
len
=
qdisc
->
q
.
qlen
;
u32
len
;
if
(
!
qdisc
||
!
qdisc
->
dequeue
)
return
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录