Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
07bfa524
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,发现更多精彩内容 >>
提交
07bfa524
编写于
11月 18, 2010
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
93908d19
3bf30b56
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
78 addition
and
8 deletion
+78
-8
drivers/net/wireless/ath/ath9k/eeprom_9287.c
drivers/net/wireless/ath/ath9k/eeprom_9287.c
+1
-1
drivers/net/wireless/ath/ath9k/hif_usb.c
drivers/net/wireless/ath/ath9k/hif_usb.c
+9
-0
drivers/net/wireless/ath/ath9k/htc_drv_init.c
drivers/net/wireless/ath/ath9k/htc_drv_init.c
+2
-0
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
+1
-1
drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/init.c
+1
-2
drivers/net/wireless/ath/ath9k/reg.h
drivers/net/wireless/ath/ath9k/reg.h
+7
-1
drivers/net/wireless/ath/carl9170/usb.c
drivers/net/wireless/ath/carl9170/usb.c
+2
-2
include/net/cfg80211.h
include/net/cfg80211.h
+1
-1
net/wireless/chan.c
net/wireless/chan.c
+54
-0
未找到文件。
drivers/net/wireless/ath/ath9k/eeprom_9287.c
浏览文件 @
07bfa524
...
@@ -37,7 +37,7 @@ static bool ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
...
@@ -37,7 +37,7 @@ static bool ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
int
addr
,
eep_start_loc
;
int
addr
,
eep_start_loc
;
eep_data
=
(
u16
*
)
eep
;
eep_data
=
(
u16
*
)
eep
;
if
(
ah
->
hw_version
.
devid
==
0x7015
)
if
(
AR9287_HTC_DEVID
(
ah
)
)
eep_start_loc
=
AR9287_HTC_EEP_START_LOC
;
eep_start_loc
=
AR9287_HTC_EEP_START_LOC
;
else
else
eep_start_loc
=
AR9287_EEP_START_LOC
;
eep_start_loc
=
AR9287_EEP_START_LOC
;
...
...
drivers/net/wireless/ath/ath9k/hif_usb.c
浏览文件 @
07bfa524
...
@@ -36,8 +36,13 @@ static struct usb_device_id ath9k_hif_usb_ids[] = {
...
@@ -36,8 +36,13 @@ static struct usb_device_id ath9k_hif_usb_ids[] = {
{
USB_DEVICE
(
0x13D3
,
0x3327
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3327
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3328
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3328
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3346
)
},
/* IMC Networks */
{
USB_DEVICE
(
0x13D3
,
0x3346
)
},
/* IMC Networks */
{
USB_DEVICE
(
0x13D3
,
0x3348
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3349
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3350
)
},
/* Azurewave */
{
USB_DEVICE
(
0x04CA
,
0x4605
)
},
/* Liteon */
{
USB_DEVICE
(
0x04CA
,
0x4605
)
},
/* Liteon */
{
USB_DEVICE
(
0x083A
,
0xA704
)
},
/* SMC Networks */
{
USB_DEVICE
(
0x083A
,
0xA704
)
},
/* SMC Networks */
{
USB_DEVICE
(
0x040D
,
0x3801
)
},
/* VIA */
{
USB_DEVICE
(
0x1668
,
0x1200
)
},
/* Verizon */
{
},
{
},
};
};
...
@@ -806,6 +811,8 @@ static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
...
@@ -806,6 +811,8 @@ static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
case
0x7010
:
case
0x7010
:
case
0x7015
:
case
0x7015
:
case
0x9018
:
case
0x9018
:
case
0xA704
:
case
0x1200
:
firm_offset
=
AR7010_FIRMWARE_TEXT
;
firm_offset
=
AR7010_FIRMWARE_TEXT
;
break
;
break
;
default:
default:
...
@@ -928,6 +935,8 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
...
@@ -928,6 +935,8 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
case
0x7010
:
case
0x7010
:
case
0x7015
:
case
0x7015
:
case
0x9018
:
case
0x9018
:
case
0xA704
:
case
0x1200
:
if
(
le16_to_cpu
(
udev
->
descriptor
.
bcdDevice
)
==
0x0202
)
if
(
le16_to_cpu
(
udev
->
descriptor
.
bcdDevice
)
==
0x0202
)
hif_dev
->
fw_name
=
FIRMWARE_AR7010_1_1
;
hif_dev
->
fw_name
=
FIRMWARE_AR7010_1_1
;
else
else
...
...
drivers/net/wireless/ath/ath9k/htc_drv_init.c
浏览文件 @
07bfa524
...
@@ -249,6 +249,8 @@ static int ath9k_init_htc_services(struct ath9k_htc_priv *priv, u16 devid)
...
@@ -249,6 +249,8 @@ static int ath9k_init_htc_services(struct ath9k_htc_priv *priv, u16 devid)
case
0x7010
:
case
0x7010
:
case
0x7015
:
case
0x7015
:
case
0x9018
:
case
0x9018
:
case
0xA704
:
case
0x1200
:
priv
->
htc
->
credits
=
45
;
priv
->
htc
->
credits
=
45
;
break
;
break
;
default:
default:
...
...
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
浏览文件 @
07bfa524
...
@@ -121,7 +121,7 @@ int ath9k_htc_tx_start(struct ath9k_htc_priv *priv, struct sk_buff *skb)
...
@@ -121,7 +121,7 @@ int ath9k_htc_tx_start(struct ath9k_htc_priv *priv, struct sk_buff *skb)
tx_hdr
.
data_type
=
ATH9K_HTC_NORMAL
;
tx_hdr
.
data_type
=
ATH9K_HTC_NORMAL
;
}
}
if
(
ieee80211_is_data
(
fc
))
{
if
(
ieee80211_is_data
_qos
(
fc
))
{
qc
=
ieee80211_get_qos_ctl
(
hdr
);
qc
=
ieee80211_get_qos_ctl
(
hdr
);
tx_hdr
.
tidno
=
qc
[
0
]
&
IEEE80211_QOS_CTL_TID_MASK
;
tx_hdr
.
tidno
=
qc
[
0
]
&
IEEE80211_QOS_CTL_TID_MASK
;
}
}
...
...
drivers/net/wireless/ath/ath9k/init.c
浏览文件 @
07bfa524
...
@@ -817,8 +817,6 @@ void ath9k_deinit_device(struct ath_softc *sc)
...
@@ -817,8 +817,6 @@ void ath9k_deinit_device(struct ath_softc *sc)
ath9k_ps_wakeup
(
sc
);
ath9k_ps_wakeup
(
sc
);
pm_qos_remove_request
(
&
ath9k_pm_qos_req
);
wiphy_rfkill_stop_polling
(
sc
->
hw
->
wiphy
);
wiphy_rfkill_stop_polling
(
sc
->
hw
->
wiphy
);
ath_deinit_leds
(
sc
);
ath_deinit_leds
(
sc
);
...
@@ -832,6 +830,7 @@ void ath9k_deinit_device(struct ath_softc *sc)
...
@@ -832,6 +830,7 @@ void ath9k_deinit_device(struct ath_softc *sc)
}
}
ieee80211_unregister_hw
(
hw
);
ieee80211_unregister_hw
(
hw
);
pm_qos_remove_request
(
&
ath9k_pm_qos_req
);
ath_rx_cleanup
(
sc
);
ath_rx_cleanup
(
sc
);
ath_tx_cleanup
(
sc
);
ath_tx_cleanup
(
sc
);
ath9k_deinit_softc
(
sc
);
ath9k_deinit_softc
(
sc
);
...
...
drivers/net/wireless/ath/ath9k/reg.h
浏览文件 @
07bfa524
...
@@ -866,7 +866,13 @@
...
@@ -866,7 +866,13 @@
#define AR_DEVID_7010(_ah) \
#define AR_DEVID_7010(_ah) \
(((_ah)->hw_version.devid == 0x7010) || \
(((_ah)->hw_version.devid == 0x7010) || \
((_ah)->hw_version.devid == 0x7015) || \
((_ah)->hw_version.devid == 0x7015) || \
((_ah)->hw_version.devid == 0x9018))
((_ah)->hw_version.devid == 0x9018) || \
((_ah)->hw_version.devid == 0xA704) || \
((_ah)->hw_version.devid == 0x1200))
#define AR9287_HTC_DEVID(_ah) \
(((_ah)->hw_version.devid == 0x7015) || \
((_ah)->hw_version.devid == 0x1200))
#define AR_RADIO_SREV_MAJOR 0xf0
#define AR_RADIO_SREV_MAJOR 0xf0
#define AR_RAD5133_SREV_MAJOR 0xc0
#define AR_RAD5133_SREV_MAJOR 0xc0
...
...
drivers/net/wireless/ath/carl9170/usb.c
浏览文件 @
07bfa524
...
@@ -553,12 +553,12 @@ static int carl9170_usb_flush(struct ar9170 *ar)
...
@@ -553,12 +553,12 @@ static int carl9170_usb_flush(struct ar9170 *ar)
usb_free_urb
(
urb
);
usb_free_urb
(
urb
);
}
}
ret
=
usb_wait_anchor_empty_timeout
(
&
ar
->
tx_cmd
,
HZ
);
ret
=
usb_wait_anchor_empty_timeout
(
&
ar
->
tx_cmd
,
1000
);
if
(
ret
==
0
)
if
(
ret
==
0
)
err
=
-
ETIMEDOUT
;
err
=
-
ETIMEDOUT
;
/* lets wait a while until the tx - queues are dried out */
/* lets wait a while until the tx - queues are dried out */
ret
=
usb_wait_anchor_empty_timeout
(
&
ar
->
tx_anch
,
HZ
);
ret
=
usb_wait_anchor_empty_timeout
(
&
ar
->
tx_anch
,
1000
);
if
(
ret
==
0
)
if
(
ret
==
0
)
err
=
-
ETIMEDOUT
;
err
=
-
ETIMEDOUT
;
...
...
include/net/cfg80211.h
浏览文件 @
07bfa524
...
@@ -1355,7 +1355,7 @@ enum wiphy_flags {
...
@@ -1355,7 +1355,7 @@ enum wiphy_flags {
WIPHY_FLAG_4ADDR_AP
=
BIT
(
5
),
WIPHY_FLAG_4ADDR_AP
=
BIT
(
5
),
WIPHY_FLAG_4ADDR_STATION
=
BIT
(
6
),
WIPHY_FLAG_4ADDR_STATION
=
BIT
(
6
),
WIPHY_FLAG_CONTROL_PORT_PROTOCOL
=
BIT
(
7
),
WIPHY_FLAG_CONTROL_PORT_PROTOCOL
=
BIT
(
7
),
WIPHY_FLAG_IBSS_RSN
=
BIT
(
7
),
WIPHY_FLAG_IBSS_RSN
=
BIT
(
8
),
};
};
struct
mac_address
{
struct
mac_address
{
...
...
net/wireless/chan.c
浏览文件 @
07bfa524
...
@@ -44,6 +44,38 @@ rdev_freq_to_chan(struct cfg80211_registered_device *rdev,
...
@@ -44,6 +44,38 @@ rdev_freq_to_chan(struct cfg80211_registered_device *rdev,
return
chan
;
return
chan
;
}
}
static
bool
can_beacon_sec_chan
(
struct
wiphy
*
wiphy
,
struct
ieee80211_channel
*
chan
,
enum
nl80211_channel_type
channel_type
)
{
struct
ieee80211_channel
*
sec_chan
;
int
diff
;
switch
(
channel_type
)
{
case
NL80211_CHAN_HT40PLUS
:
diff
=
20
;
break
;
case
NL80211_CHAN_HT40MINUS
:
diff
=
-
20
;
break
;
default:
return
false
;
}
sec_chan
=
ieee80211_get_channel
(
wiphy
,
chan
->
center_freq
+
diff
);
if
(
!
sec_chan
)
return
false
;
/* we'll need a DFS capability later */
if
(
sec_chan
->
flags
&
(
IEEE80211_CHAN_DISABLED
|
IEEE80211_CHAN_PASSIVE_SCAN
|
IEEE80211_CHAN_NO_IBSS
|
IEEE80211_CHAN_RADAR
))
return
false
;
return
true
;
}
int
cfg80211_set_freq
(
struct
cfg80211_registered_device
*
rdev
,
int
cfg80211_set_freq
(
struct
cfg80211_registered_device
*
rdev
,
struct
wireless_dev
*
wdev
,
int
freq
,
struct
wireless_dev
*
wdev
,
int
freq
,
enum
nl80211_channel_type
channel_type
)
enum
nl80211_channel_type
channel_type
)
...
@@ -68,6 +100,28 @@ int cfg80211_set_freq(struct cfg80211_registered_device *rdev,
...
@@ -68,6 +100,28 @@ int cfg80211_set_freq(struct cfg80211_registered_device *rdev,
if
(
!
chan
)
if
(
!
chan
)
return
-
EINVAL
;
return
-
EINVAL
;
/* Both channels should be able to initiate communication */
if
(
wdev
&&
(
wdev
->
iftype
==
NL80211_IFTYPE_ADHOC
||
wdev
->
iftype
==
NL80211_IFTYPE_AP
||
wdev
->
iftype
==
NL80211_IFTYPE_AP_VLAN
||
wdev
->
iftype
==
NL80211_IFTYPE_MESH_POINT
||
wdev
->
iftype
==
NL80211_IFTYPE_P2P_GO
))
{
switch
(
channel_type
)
{
case
NL80211_CHAN_HT40PLUS
:
case
NL80211_CHAN_HT40MINUS
:
if
(
!
can_beacon_sec_chan
(
&
rdev
->
wiphy
,
chan
,
channel_type
))
{
printk
(
KERN_DEBUG
"cfg80211: Secondary channel not "
"allowed to initiate communication
\n
"
);
return
-
EINVAL
;
}
break
;
default:
break
;
}
}
result
=
rdev
->
ops
->
set_channel
(
&
rdev
->
wiphy
,
result
=
rdev
->
ops
->
set_channel
(
&
rdev
->
wiphy
,
wdev
?
wdev
->
netdev
:
NULL
,
wdev
?
wdev
->
netdev
:
NULL
,
chan
,
channel_type
);
chan
,
channel_type
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录