Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
8715fa28
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看板
提交
8715fa28
编写于
4月 16, 2010
作者:
R
Reinette Chatre
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'wireless-2.6' into wireless-next-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl-6000.c
上级
a5e944f1
f2fa1b01
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
41 addition
and
15 deletion
+41
-15
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-6000.c
+2
-2
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.c
+1
-0
drivers/net/wireless/iwlwifi/iwl-calib.c
drivers/net/wireless/iwlwifi/iwl-calib.c
+12
-0
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.c
+0
-1
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-core.h
+1
-1
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-dev.h
+1
-0
drivers/net/wireless/iwlwifi/iwl-eeprom.h
drivers/net/wireless/iwlwifi/iwl-eeprom.h
+4
-0
drivers/net/wireless/iwlwifi/iwl-scan.c
drivers/net/wireless/iwlwifi/iwl-scan.c
+20
-11
未找到文件。
drivers/net/wireless/iwlwifi/iwl-6000.c
浏览文件 @
8715fa28
...
...
@@ -261,7 +261,7 @@ static struct iwl_lib_ops iwl6000_lib = {
EEPROM_REG_BAND_3_CHANNELS
,
EEPROM_REG_BAND_4_CHANNELS
,
EEPROM_REG_BAND_5_CHANNELS
,
EEPROM_REG_BAND_24_HT40_CHANNELS
,
EEPROM_
6000_
REG_BAND_24_HT40_CHANNELS
,
EEPROM_REG_BAND_52_HT40_CHANNELS
},
.
verify_signature
=
iwlcore_eeprom_verify_signature
,
...
...
@@ -328,7 +328,7 @@ static struct iwl_lib_ops iwl6050_lib = {
EEPROM_REG_BAND_3_CHANNELS
,
EEPROM_REG_BAND_4_CHANNELS
,
EEPROM_REG_BAND_5_CHANNELS
,
EEPROM_REG_BAND_24_HT40_CHANNELS
,
EEPROM_
6000_
REG_BAND_24_HT40_CHANNELS
,
EEPROM_REG_BAND_52_HT40_CHANNELS
},
.
verify_signature
=
iwlcore_eeprom_verify_signature
,
...
...
drivers/net/wireless/iwlwifi/iwl-agn.c
浏览文件 @
8715fa28
...
...
@@ -3304,6 +3304,7 @@ static void iwl_cancel_deferred_work(struct iwl_priv *priv)
cancel_delayed_work_sync
(
&
priv
->
init_alive_start
);
cancel_delayed_work
(
&
priv
->
scan_check
);
cancel_work_sync
(
&
priv
->
start_internal_scan
);
cancel_delayed_work
(
&
priv
->
alive_start
);
cancel_work_sync
(
&
priv
->
beacon_update
);
del_timer_sync
(
&
priv
->
statistics_periodic
);
...
...
drivers/net/wireless/iwlwifi/iwl-calib.c
浏览文件 @
8715fa28
...
...
@@ -807,6 +807,18 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv,
}
}
/*
* The above algorithm sometimes fails when the ucode
* reports 0 for all chains. It's not clear why that
* happens to start with, but it is then causing trouble
* because this can make us enable more chains than the
* hardware really has.
*
* To be safe, simply mask out any chains that we know
* are not on the device.
*/
active_chains
&=
priv
->
hw_params
.
valid_rx_ant
;
num_tx_chains
=
0
;
for
(
i
=
0
;
i
<
NUM_RX_CHAINS
;
i
++
)
{
/* loops on all the bits of
...
...
drivers/net/wireless/iwlwifi/iwl-core.c
浏览文件 @
8715fa28
...
...
@@ -2801,7 +2801,6 @@ static void iwl_force_rf_reset(struct iwl_priv *priv)
*/
IWL_DEBUG_INFO
(
priv
,
"perform radio reset.
\n
"
);
iwl_internal_short_hw_scan
(
priv
);
return
;
}
...
...
drivers/net/wireless/iwlwifi/iwl-core.h
浏览文件 @
8715fa28
...
...
@@ -502,7 +502,7 @@ void iwl_init_scan_params(struct iwl_priv *priv);
int
iwl_scan_cancel
(
struct
iwl_priv
*
priv
);
int
iwl_scan_cancel_timeout
(
struct
iwl_priv
*
priv
,
unsigned
long
ms
);
int
iwl_mac_hw_scan
(
struct
ieee80211_hw
*
hw
,
struct
cfg80211_scan_request
*
req
);
int
iwl_internal_short_hw_scan
(
struct
iwl_priv
*
priv
);
void
iwl_internal_short_hw_scan
(
struct
iwl_priv
*
priv
);
int
iwl_force_reset
(
struct
iwl_priv
*
priv
,
int
mode
);
u16
iwl_fill_probe_req
(
struct
iwl_priv
*
priv
,
struct
ieee80211_mgmt
*
frame
,
const
u8
*
ie
,
int
ie_len
,
int
left
);
...
...
drivers/net/wireless/iwlwifi/iwl-dev.h
浏览文件 @
8715fa28
...
...
@@ -1264,6 +1264,7 @@ struct iwl_priv {
struct
work_struct
tt_work
;
struct
work_struct
ct_enter
;
struct
work_struct
ct_exit
;
struct
work_struct
start_internal_scan
;
struct
tasklet_struct
irq_tasklet
;
...
...
drivers/net/wireless/iwlwifi/iwl-eeprom.h
浏览文件 @
8715fa28
...
...
@@ -203,6 +203,10 @@ struct iwl_eeprom_enhanced_txpwr {
#define EEPROM_REG_BAND_52_HT40_CHANNELS ((0x92)\
| INDIRECT_ADDRESS | INDIRECT_REGULATORY)
/* 22 bytes */
/* 6000 regulatory - indirect access */
#define EEPROM_6000_REG_BAND_24_HT40_CHANNELS ((0x80)\
| INDIRECT_ADDRESS | INDIRECT_REGULATORY)
/* 14 bytes */
/* 6000 and up regulatory tx power - indirect access */
/* max. elements per section */
#define EEPROM_MAX_TXPOWER_SECTION_ELEMENTS (8)
...
...
drivers/net/wireless/iwlwifi/iwl-scan.c
浏览文件 @
8715fa28
...
...
@@ -469,6 +469,8 @@ EXPORT_SYMBOL(iwl_init_scan_params);
static
int
iwl_scan_initiate
(
struct
iwl_priv
*
priv
)
{
WARN_ON
(
!
mutex_is_locked
(
&
priv
->
mutex
));
IWL_DEBUG_INFO
(
priv
,
"Starting scan...
\n
"
);
set_bit
(
STATUS_SCANNING
,
&
priv
->
status
);
priv
->
is_internal_short_scan
=
false
;
...
...
@@ -546,24 +548,31 @@ EXPORT_SYMBOL(iwl_mac_hw_scan);
* internal short scan, this function should only been called while associated.
* It will reset and tune the radio to prevent possible RF related problem
*/
int
iwl_internal_short_hw_scan
(
struct
iwl_priv
*
priv
)
void
iwl_internal_short_hw_scan
(
struct
iwl_priv
*
priv
)
{
int
ret
=
0
;
queue_work
(
priv
->
workqueue
,
&
priv
->
start_internal_scan
);
}
static
void
iwl_bg_start_internal_scan
(
struct
work_struct
*
work
)
{
struct
iwl_priv
*
priv
=
container_of
(
work
,
struct
iwl_priv
,
start_internal_scan
);
mutex_lock
(
&
priv
->
mutex
);
if
(
!
iwl_is_ready_rf
(
priv
))
{
ret
=
-
EIO
;
IWL_DEBUG_SCAN
(
priv
,
"not ready or exit pending
\n
"
);
goto
out
;
goto
unlock
;
}
if
(
test_bit
(
STATUS_SCANNING
,
&
priv
->
status
))
{
IWL_DEBUG_SCAN
(
priv
,
"Scan already in progress.
\n
"
);
ret
=
-
EAGAIN
;
goto
out
;
goto
unlock
;
}
if
(
test_bit
(
STATUS_SCAN_ABORTING
,
&
priv
->
status
))
{
IWL_DEBUG_SCAN
(
priv
,
"Scan request while abort pending
\n
"
);
ret
=
-
EAGAIN
;
goto
out
;
goto
unlock
;
}
priv
->
scan_bands
=
0
;
...
...
@@ -576,9 +585,8 @@ int iwl_internal_short_hw_scan(struct iwl_priv *priv)
set_bit
(
STATUS_SCANNING
,
&
priv
->
status
);
priv
->
is_internal_short_scan
=
true
;
queue_work
(
priv
->
workqueue
,
&
priv
->
request_scan
);
out:
return
ret
;
unlock:
mutex_unlock
(
&
priv
->
mutex
);
}
#define IWL_SCAN_CHECK_WATCHDOG (7 * HZ)
...
...
@@ -962,6 +970,7 @@ void iwl_setup_scan_deferred_work(struct iwl_priv *priv)
INIT_WORK
(
&
priv
->
scan_completed
,
iwl_bg_scan_completed
);
INIT_WORK
(
&
priv
->
request_scan
,
iwl_bg_request_scan
);
INIT_WORK
(
&
priv
->
abort_scan
,
iwl_bg_abort_scan
);
INIT_WORK
(
&
priv
->
start_internal_scan
,
iwl_bg_start_internal_scan
);
INIT_DELAYED_WORK
(
&
priv
->
scan_check
,
iwl_bg_scan_check
);
}
EXPORT_SYMBOL
(
iwl_setup_scan_deferred_work
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录