Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
c0465559
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,发现更多精彩内容 >>
提交
c0465559
编写于
11月 05, 2013
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-john' of
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
上级
dce1ebab
c92f06a1
变更
13
显示空白变更内容
内联
并排
Showing
13 changed file
with
43 addition
and
29 deletion
+43
-29
drivers/net/wireless/iwlwifi/dvm/ucode.c
drivers/net/wireless/iwlwifi/dvm/ucode.c
+4
-5
drivers/net/wireless/iwlwifi/iwl-fw.h
drivers/net/wireless/iwlwifi/iwl-fw.h
+2
-1
drivers/net/wireless/iwlwifi/iwl-io.c
drivers/net/wireless/iwlwifi/iwl-io.c
+0
-1
drivers/net/wireless/iwlwifi/iwl-trans.h
drivers/net/wireless/iwlwifi/iwl-trans.h
+1
-1
drivers/net/wireless/iwlwifi/mvm/bt-coex.c
drivers/net/wireless/iwlwifi/mvm/bt-coex.c
+6
-2
drivers/net/wireless/iwlwifi/mvm/debugfs.c
drivers/net/wireless/iwlwifi/mvm/debugfs.c
+1
-0
drivers/net/wireless/iwlwifi/mvm/fw.c
drivers/net/wireless/iwlwifi/mvm/fw.c
+3
-5
drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c
drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c
+7
-1
drivers/net/wireless/iwlwifi/mvm/mac80211.c
drivers/net/wireless/iwlwifi/mvm/mac80211.c
+9
-5
drivers/net/wireless/iwlwifi/mvm/mvm.h
drivers/net/wireless/iwlwifi/mvm/mvm.h
+0
-1
drivers/net/wireless/iwlwifi/mvm/ops.c
drivers/net/wireless/iwlwifi/mvm/ops.c
+1
-1
drivers/net/wireless/iwlwifi/mvm/rx.c
drivers/net/wireless/iwlwifi/mvm/rx.c
+5
-1
drivers/net/wireless/iwlwifi/pcie/tx.c
drivers/net/wireless/iwlwifi/pcie/tx.c
+4
-5
未找到文件。
drivers/net/wireless/iwlwifi/dvm/ucode.c
浏览文件 @
c0465559
...
@@ -330,15 +330,14 @@ int iwl_load_ucode_wait_alive(struct iwl_priv *priv,
...
@@ -330,15 +330,14 @@ int iwl_load_ucode_wait_alive(struct iwl_priv *priv,
enum
iwl_ucode_type
old_type
;
enum
iwl_ucode_type
old_type
;
static
const
u8
alive_cmd
[]
=
{
REPLY_ALIVE
};
static
const
u8
alive_cmd
[]
=
{
REPLY_ALIVE
};
old_type
=
priv
->
cur_ucode
;
priv
->
cur_ucode
=
ucode_type
;
fw
=
iwl_get_ucode_image
(
priv
,
ucode_type
);
fw
=
iwl_get_ucode_image
(
priv
,
ucode_type
);
if
(
WARN_ON
(
!
fw
))
return
-
EINVAL
;
old_type
=
priv
->
cur_ucode
;
priv
->
cur_ucode
=
ucode_type
;
priv
->
ucode_loaded
=
false
;
priv
->
ucode_loaded
=
false
;
if
(
!
fw
)
return
-
EINVAL
;
iwl_init_notification_wait
(
&
priv
->
notif_wait
,
&
alive_wait
,
iwl_init_notification_wait
(
&
priv
->
notif_wait
,
&
alive_wait
,
alive_cmd
,
ARRAY_SIZE
(
alive_cmd
),
alive_cmd
,
ARRAY_SIZE
(
alive_cmd
),
iwl_alive_fn
,
&
alive_data
);
iwl_alive_fn
,
&
alive_data
);
...
...
drivers/net/wireless/iwlwifi/iwl-fw.h
浏览文件 @
c0465559
...
@@ -100,7 +100,7 @@ enum iwl_ucode_tlv_flag {
...
@@ -100,7 +100,7 @@ enum iwl_ucode_tlv_flag {
IWL_UCODE_TLV_FLAGS_P2P
=
BIT
(
3
),
IWL_UCODE_TLV_FLAGS_P2P
=
BIT
(
3
),
IWL_UCODE_TLV_FLAGS_DW_BC_TABLE
=
BIT
(
4
),
IWL_UCODE_TLV_FLAGS_DW_BC_TABLE
=
BIT
(
4
),
IWL_UCODE_TLV_FLAGS_NEWBT_COEX
=
BIT
(
5
),
IWL_UCODE_TLV_FLAGS_NEWBT_COEX
=
BIT
(
5
),
IWL_UCODE_TLV_FLAGS_
UAPSD
=
BIT
(
6
),
IWL_UCODE_TLV_FLAGS_
PM_CMD_SUPPORT
=
BIT
(
6
),
IWL_UCODE_TLV_FLAGS_SHORT_BL
=
BIT
(
7
),
IWL_UCODE_TLV_FLAGS_SHORT_BL
=
BIT
(
7
),
IWL_UCODE_TLV_FLAGS_RX_ENERGY_API
=
BIT
(
8
),
IWL_UCODE_TLV_FLAGS_RX_ENERGY_API
=
BIT
(
8
),
IWL_UCODE_TLV_FLAGS_TIME_EVENT_API_V2
=
BIT
(
9
),
IWL_UCODE_TLV_FLAGS_TIME_EVENT_API_V2
=
BIT
(
9
),
...
@@ -113,6 +113,7 @@ enum iwl_ucode_tlv_flag {
...
@@ -113,6 +113,7 @@ enum iwl_ucode_tlv_flag {
IWL_UCODE_TLV_FLAGS_SCHED_SCAN
=
BIT
(
17
),
IWL_UCODE_TLV_FLAGS_SCHED_SCAN
=
BIT
(
17
),
IWL_UCODE_TLV_FLAGS_STA_KEY_CMD
=
BIT
(
19
),
IWL_UCODE_TLV_FLAGS_STA_KEY_CMD
=
BIT
(
19
),
IWL_UCODE_TLV_FLAGS_DEVICE_PS_CMD
=
BIT
(
20
),
IWL_UCODE_TLV_FLAGS_DEVICE_PS_CMD
=
BIT
(
20
),
IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT
=
BIT
(
24
),
};
};
/* The default calibrate table size if not specified by firmware file */
/* The default calibrate table size if not specified by firmware file */
...
...
drivers/net/wireless/iwlwifi/iwl-io.c
浏览文件 @
c0465559
...
@@ -34,7 +34,6 @@
...
@@ -34,7 +34,6 @@
#include "iwl-csr.h"
#include "iwl-csr.h"
#include "iwl-debug.h"
#include "iwl-debug.h"
#include "iwl-fh.h"
#include "iwl-fh.h"
#include "iwl-csr.h"
#define IWL_POLL_INTERVAL 10
/* microseconds */
#define IWL_POLL_INTERVAL 10
/* microseconds */
...
...
drivers/net/wireless/iwlwifi/iwl-trans.h
浏览文件 @
c0465559
...
@@ -344,7 +344,7 @@ struct iwl_trans_config {
...
@@ -344,7 +344,7 @@ struct iwl_trans_config {
u8
cmd_queue
;
u8
cmd_queue
;
u8
cmd_fifo
;
u8
cmd_fifo
;
const
u8
*
no_reclaim_cmds
;
const
u8
*
no_reclaim_cmds
;
int
n_no_reclaim_cmds
;
unsigned
int
n_no_reclaim_cmds
;
bool
rx_buf_size_8k
;
bool
rx_buf_size_8k
;
bool
bc_table_dword
;
bool
bc_table_dword
;
...
...
drivers/net/wireless/iwlwifi/mvm/bt-coex.c
浏览文件 @
c0465559
...
@@ -505,12 +505,16 @@ static int iwl_mvm_bt_coex_reduced_txp(struct iwl_mvm *mvm, u8 sta_id,
...
@@ -505,12 +505,16 @@ static int iwl_mvm_bt_coex_reduced_txp(struct iwl_mvm *mvm, u8 sta_id,
struct
iwl_mvm_sta
*
mvmsta
;
struct
iwl_mvm_sta
*
mvmsta
;
int
ret
;
int
ret
;
/* This can happen if the station has been removed right now */
if
(
sta_id
==
IWL_MVM_STATION_COUNT
)
if
(
sta_id
==
IWL_MVM_STATION_COUNT
)
return
0
;
return
0
;
sta
=
rcu_dereference_protected
(
mvm
->
fw_id_to_mac_id
[
sta_id
],
sta
=
rcu_dereference_protected
(
mvm
->
fw_id_to_mac_id
[
sta_id
],
lockdep_is_held
(
&
mvm
->
mutex
));
lockdep_is_held
(
&
mvm
->
mutex
));
/* This can happen if the station has been removed right now */
if
(
IS_ERR_OR_NULL
(
sta
))
return
0
;
mvmsta
=
(
void
*
)
sta
->
drv_priv
;
mvmsta
=
(
void
*
)
sta
->
drv_priv
;
/* nothing to do */
/* nothing to do */
...
@@ -751,7 +755,7 @@ static void iwl_mvm_bt_coex_notif_handle(struct iwl_mvm *mvm)
...
@@ -751,7 +755,7 @@ static void iwl_mvm_bt_coex_notif_handle(struct iwl_mvm *mvm)
cmd
.
bt_secondary_ci
=
cmd
.
bt_secondary_ci
=
iwl_ci_mask
[
chan
->
def
.
chan
->
hw_value
][
ci_bw_idx
];
iwl_ci_mask
[
chan
->
def
.
chan
->
hw_value
][
ci_bw_idx
];
cmd
.
secondary_ch_phy_id
=
*
((
u16
*
)
data
.
prim
ary
->
drv_priv
);
cmd
.
secondary_ch_phy_id
=
*
((
u16
*
)
data
.
second
ary
->
drv_priv
);
}
}
rcu_read_unlock
();
rcu_read_unlock
();
...
...
drivers/net/wireless/iwlwifi/mvm/debugfs.c
浏览文件 @
c0465559
...
@@ -342,6 +342,7 @@ static void iwl_dbgfs_update_pm(struct iwl_mvm *mvm,
...
@@ -342,6 +342,7 @@ static void iwl_dbgfs_update_pm(struct iwl_mvm *mvm,
case
MVM_DEBUGFS_PM_DISABLE_POWER_OFF
:
case
MVM_DEBUGFS_PM_DISABLE_POWER_OFF
:
IWL_DEBUG_POWER
(
mvm
,
"disable_power_off=%d
\n
"
,
val
);
IWL_DEBUG_POWER
(
mvm
,
"disable_power_off=%d
\n
"
,
val
);
dbgfs_pm
->
disable_power_off
=
val
;
dbgfs_pm
->
disable_power_off
=
val
;
break
;
case
MVM_DEBUGFS_PM_LPRX_ENA
:
case
MVM_DEBUGFS_PM_LPRX_ENA
:
IWL_DEBUG_POWER
(
mvm
,
"lprx %s
\n
"
,
val
?
"enabled"
:
"disabled"
);
IWL_DEBUG_POWER
(
mvm
,
"lprx %s
\n
"
,
val
?
"enabled"
:
"disabled"
);
dbgfs_pm
->
lprx_ena
=
val
;
dbgfs_pm
->
lprx_ena
=
val
;
...
...
drivers/net/wireless/iwlwifi/mvm/fw.c
浏览文件 @
c0465559
...
@@ -151,13 +151,11 @@ static int iwl_mvm_load_ucode_wait_alive(struct iwl_mvm *mvm,
...
@@ -151,13 +151,11 @@ static int iwl_mvm_load_ucode_wait_alive(struct iwl_mvm *mvm,
enum
iwl_ucode_type
old_type
=
mvm
->
cur_ucode
;
enum
iwl_ucode_type
old_type
=
mvm
->
cur_ucode
;
static
const
u8
alive_cmd
[]
=
{
MVM_ALIVE
};
static
const
u8
alive_cmd
[]
=
{
MVM_ALIVE
};
mvm
->
cur_ucode
=
ucode_type
;
fw
=
iwl_get_ucode_image
(
mvm
,
ucode_type
);
fw
=
iwl_get_ucode_image
(
mvm
,
ucode_type
);
if
(
WARN_ON
(
!
fw
))
mvm
->
ucode_loaded
=
false
;
if
(
!
fw
)
return
-
EINVAL
;
return
-
EINVAL
;
mvm
->
cur_ucode
=
ucode_type
;
mvm
->
ucode_loaded
=
false
;
iwl_init_notification_wait
(
&
mvm
->
notif_wait
,
&
alive_wait
,
iwl_init_notification_wait
(
&
mvm
->
notif_wait
,
&
alive_wait
,
alive_cmd
,
ARRAY_SIZE
(
alive_cmd
),
alive_cmd
,
ARRAY_SIZE
(
alive_cmd
),
...
...
drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c
浏览文件 @
c0465559
...
@@ -719,7 +719,9 @@ static int iwl_mvm_mac_ctxt_cmd_listener(struct iwl_mvm *mvm,
...
@@ -719,7 +719,9 @@ static int iwl_mvm_mac_ctxt_cmd_listener(struct iwl_mvm *mvm,
cmd
.
filter_flags
=
cpu_to_le32
(
MAC_FILTER_IN_PROMISC
|
cmd
.
filter_flags
=
cpu_to_le32
(
MAC_FILTER_IN_PROMISC
|
MAC_FILTER_IN_CONTROL_AND_MGMT
|
MAC_FILTER_IN_CONTROL_AND_MGMT
|
MAC_FILTER_IN_BEACON
|
MAC_FILTER_IN_BEACON
|
MAC_FILTER_IN_PROBE_REQUEST
);
MAC_FILTER_IN_PROBE_REQUEST
|
MAC_FILTER_IN_CRC32
);
mvm
->
hw
->
flags
|=
IEEE80211_HW_RX_INCLUDES_FCS
;
return
iwl_mvm_mac_ctxt_send_cmd
(
mvm
,
&
cmd
);
return
iwl_mvm_mac_ctxt_send_cmd
(
mvm
,
&
cmd
);
}
}
...
@@ -1122,6 +1124,10 @@ int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
...
@@ -1122,6 +1124,10 @@ int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
}
}
mvmvif
->
uploaded
=
false
;
mvmvif
->
uploaded
=
false
;
if
(
vif
->
type
==
NL80211_IFTYPE_MONITOR
)
mvm
->
hw
->
flags
&=
~
IEEE80211_HW_RX_INCLUDES_FCS
;
return
0
;
return
0
;
}
}
...
...
drivers/net/wireless/iwlwifi/mvm/mac80211.c
浏览文件 @
c0465559
...
@@ -164,8 +164,7 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
...
@@ -164,8 +164,7 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
IEEE80211_HW_TIMING_BEACON_ONLY
|
IEEE80211_HW_TIMING_BEACON_ONLY
|
IEEE80211_HW_CONNECTION_MONITOR
|
IEEE80211_HW_CONNECTION_MONITOR
|
IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS
|
IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS
|
IEEE80211_HW_SUPPORTS_STATIC_SMPS
|
IEEE80211_HW_SUPPORTS_STATIC_SMPS
;
IEEE80211_HW_SUPPORTS_UAPSD
;
hw
->
queues
=
mvm
->
first_agg_queue
;
hw
->
queues
=
mvm
->
first_agg_queue
;
hw
->
offchannel_tx_hw_queue
=
IWL_MVM_OFFCHANNEL_QUEUE
;
hw
->
offchannel_tx_hw_queue
=
IWL_MVM_OFFCHANNEL_QUEUE
;
...
@@ -180,6 +179,12 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
...
@@ -180,6 +179,12 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
!
iwlwifi_mod_params
.
sw_crypto
)
!
iwlwifi_mod_params
.
sw_crypto
)
hw
->
flags
|=
IEEE80211_HW_MFP_CAPABLE
;
hw
->
flags
|=
IEEE80211_HW_MFP_CAPABLE
;
if
(
mvm
->
fw
->
ucode_capa
.
flags
&
IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT
)
{
hw
->
flags
|=
IEEE80211_HW_SUPPORTS_UAPSD
;
hw
->
uapsd_queues
=
IWL_UAPSD_AC_INFO
;
hw
->
uapsd_max_sp_len
=
IWL_UAPSD_MAX_SP
;
}
hw
->
sta_data_size
=
sizeof
(
struct
iwl_mvm_sta
);
hw
->
sta_data_size
=
sizeof
(
struct
iwl_mvm_sta
);
hw
->
vif_data_size
=
sizeof
(
struct
iwl_mvm_vif
);
hw
->
vif_data_size
=
sizeof
(
struct
iwl_mvm_vif
);
hw
->
chanctx_data_size
=
sizeof
(
u16
);
hw
->
chanctx_data_size
=
sizeof
(
u16
);
...
@@ -204,8 +209,6 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
...
@@ -204,8 +209,6 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
hw
->
wiphy
->
max_remain_on_channel_duration
=
10000
;
hw
->
wiphy
->
max_remain_on_channel_duration
=
10000
;
hw
->
max_listen_interval
=
IWL_CONN_MAX_LISTEN_INTERVAL
;
hw
->
max_listen_interval
=
IWL_CONN_MAX_LISTEN_INTERVAL
;
hw
->
uapsd_queues
=
IWL_UAPSD_AC_INFO
;
hw
->
uapsd_max_sp_len
=
IWL_UAPSD_MAX_SP
;
/* Extract MAC address */
/* Extract MAC address */
memcpy
(
mvm
->
addresses
[
0
].
addr
,
mvm
->
nvm_data
->
hw_addr
,
ETH_ALEN
);
memcpy
(
mvm
->
addresses
[
0
].
addr
,
mvm
->
nvm_data
->
hw_addr
,
ETH_ALEN
);
...
@@ -861,7 +864,8 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm,
...
@@ -861,7 +864,8 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm,
/* reset rssi values */
/* reset rssi values */
mvmvif
->
bf_data
.
ave_beacon_signal
=
0
;
mvmvif
->
bf_data
.
ave_beacon_signal
=
0
;
if
(
!
(
mvm
->
fw
->
ucode_capa
.
flags
&
IWL_UCODE_TLV_FLAGS_UAPSD
))
{
if
(
!
(
mvm
->
fw
->
ucode_capa
.
flags
&
IWL_UCODE_TLV_FLAGS_PM_CMD_SUPPORT
))
{
/* Workaround for FW bug, otherwise FW disables device
/* Workaround for FW bug, otherwise FW disables device
* power save upon disassociation
* power save upon disassociation
*/
*/
...
...
drivers/net/wireless/iwlwifi/mvm/mvm.h
浏览文件 @
c0465559
...
@@ -73,7 +73,6 @@
...
@@ -73,7 +73,6 @@
#include "iwl-trans.h"
#include "iwl-trans.h"
#include "iwl-notif-wait.h"
#include "iwl-notif-wait.h"
#include "iwl-eeprom-parse.h"
#include "iwl-eeprom-parse.h"
#include "iwl-trans.h"
#include "sta.h"
#include "sta.h"
#include "fw-api.h"
#include "fw-api.h"
#include "constants.h"
#include "constants.h"
...
...
drivers/net/wireless/iwlwifi/mvm/ops.c
浏览文件 @
c0465559
...
@@ -459,7 +459,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
...
@@ -459,7 +459,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
if
(
err
)
if
(
err
)
goto
out_unregister
;
goto
out_unregister
;
if
(
mvm
->
fw
->
ucode_capa
.
flags
&
IWL_UCODE_TLV_FLAGS_
UAPSD
)
if
(
mvm
->
fw
->
ucode_capa
.
flags
&
IWL_UCODE_TLV_FLAGS_
PM_CMD_SUPPORT
)
mvm
->
pm_ops
=
&
pm_mac_ops
;
mvm
->
pm_ops
=
&
pm_mac_ops
;
else
else
mvm
->
pm_ops
=
&
pm_legacy_ops
;
mvm
->
pm_ops
=
&
pm_legacy_ops
;
...
...
drivers/net/wireless/iwlwifi/mvm/rx.c
浏览文件 @
c0465559
...
@@ -300,10 +300,14 @@ int iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb,
...
@@ -300,10 +300,14 @@ int iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb,
return
0
;
return
0
;
}
}
/*
* Keep packets with CRC errors (and with overrun) for monitor mode
* (otherwise the firmware discards them) but mark them as bad.
*/
if
(
!
(
rx_pkt_status
&
RX_MPDU_RES_STATUS_CRC_OK
)
||
if
(
!
(
rx_pkt_status
&
RX_MPDU_RES_STATUS_CRC_OK
)
||
!
(
rx_pkt_status
&
RX_MPDU_RES_STATUS_OVERRUN_OK
))
{
!
(
rx_pkt_status
&
RX_MPDU_RES_STATUS_OVERRUN_OK
))
{
IWL_DEBUG_RX
(
mvm
,
"Bad CRC or FIFO: 0x%08X.
\n
"
,
rx_pkt_status
);
IWL_DEBUG_RX
(
mvm
,
"Bad CRC or FIFO: 0x%08X.
\n
"
,
rx_pkt_status
);
r
eturn
0
;
r
x_status
.
flag
|=
RX_FLAG_FAILED_FCS_CRC
;
}
}
/* This will be used in several places later */
/* This will be used in several places later */
...
...
drivers/net/wireless/iwlwifi/pcie/tx.c
浏览文件 @
c0465559
...
@@ -1499,12 +1499,11 @@ static int iwl_pcie_send_hcmd_sync(struct iwl_trans *trans,
...
@@ -1499,12 +1499,11 @@ static int iwl_pcie_send_hcmd_sync(struct iwl_trans *trans,
IWL_DEBUG_INFO
(
trans
,
"Attempting to send sync command %s
\n
"
,
IWL_DEBUG_INFO
(
trans
,
"Attempting to send sync command %s
\n
"
,
get_cmd_string
(
trans_pcie
,
cmd
->
id
));
get_cmd_string
(
trans_pcie
,
cmd
->
id
));
if
(
WARN
_ON
(
test_and_set_bit
(
STATUS_HCMD_ACTIVE
,
if
(
WARN
(
test_and_set_bit
(
STATUS_HCMD_ACTIVE
,
&
trans_pcie
->
status
)))
{
&
trans_pcie
->
status
),
IWL_ERR
(
trans
,
"Command %s: a command is already active!
\n
"
,
"Command %s: a command is already active!
\n
"
,
get_cmd_string
(
trans_pcie
,
cmd
->
id
));
get_cmd_string
(
trans_pcie
,
cmd
->
id
)))
return
-
EIO
;
return
-
EIO
;
}
IWL_DEBUG_INFO
(
trans
,
"Setting HCMD_ACTIVE for command %s
\n
"
,
IWL_DEBUG_INFO
(
trans
,
"Setting HCMD_ACTIVE for command %s
\n
"
,
get_cmd_string
(
trans_pcie
,
cmd
->
id
));
get_cmd_string
(
trans_pcie
,
cmd
->
id
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录