Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
4d69c752
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
14
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4d69c752
编写于
8月 30, 2011
作者:
S
Stanislaw Gruszka
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
iwlegacy: rename REPLY_ to N_ or C_
Signed-off-by:
N
Stanislaw Gruszka
<
sgruszka@redhat.com
>
上级
db7746f7
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
317 addition
and
317 deletion
+317
-317
drivers/net/wireless/iwlegacy/3945-mac.c
drivers/net/wireless/iwlegacy/3945-mac.c
+31
-31
drivers/net/wireless/iwlegacy/3945.c
drivers/net/wireless/iwlegacy/3945.c
+12
-12
drivers/net/wireless/iwlegacy/4965-calib.c
drivers/net/wireless/iwlegacy/4965-calib.c
+6
-6
drivers/net/wireless/iwlegacy/4965-mac.c
drivers/net/wireless/iwlegacy/4965-mac.c
+48
-48
drivers/net/wireless/iwlegacy/4965-rs.c
drivers/net/wireless/iwlegacy/4965-rs.c
+2
-2
drivers/net/wireless/iwlegacy/4965.c
drivers/net/wireless/iwlegacy/4965.c
+12
-12
drivers/net/wireless/iwlegacy/4965.h
drivers/net/wireless/iwlegacy/4965.h
+2
-2
drivers/net/wireless/iwlegacy/iwl-commands.h
drivers/net/wireless/iwlegacy/iwl-commands.h
+130
-130
drivers/net/wireless/iwlegacy/iwl-core.c
drivers/net/wireless/iwlegacy/iwl-core.c
+3
-3
drivers/net/wireless/iwlegacy/iwl-debugfs.c
drivers/net/wireless/iwlegacy/iwl-debugfs.c
+1
-1
drivers/net/wireless/iwlegacy/iwl-dev.h
drivers/net/wireless/iwlegacy/iwl-dev.h
+4
-4
drivers/net/wireless/iwlegacy/iwl-hcmd.c
drivers/net/wireless/iwlegacy/iwl-hcmd.c
+43
-43
drivers/net/wireless/iwlegacy/iwl-power.c
drivers/net/wireless/iwlegacy/iwl-power.c
+1
-1
drivers/net/wireless/iwlegacy/iwl-prph.h
drivers/net/wireless/iwlegacy/iwl-prph.h
+1
-1
drivers/net/wireless/iwlegacy/iwl-scan.c
drivers/net/wireless/iwlegacy/iwl-scan.c
+9
-9
drivers/net/wireless/iwlegacy/iwl-sta.c
drivers/net/wireless/iwlegacy/iwl-sta.c
+10
-10
drivers/net/wireless/iwlegacy/iwl-tx.c
drivers/net/wireless/iwlegacy/iwl-tx.c
+2
-2
未找到文件。
drivers/net/wireless/iwlegacy/3945-mac.c
浏览文件 @
4d69c752
...
...
@@ -348,7 +348,7 @@ static int il3945_send_beacon_cmd(struct il_priv *il)
frame_size
=
il3945_hw_get_beacon_cmd
(
il
,
frame
,
rate
);
rc
=
il_send_cmd_pdu
(
il
,
REPLY
_TX_BEACON
,
frame_size
,
rc
=
il_send_cmd_pdu
(
il
,
C
_TX_BEACON
,
frame_size
,
&
frame
->
u
.
cmd
[
0
]);
il3945_free_frame
(
il
,
frame
);
...
...
@@ -406,7 +406,7 @@ static void il3945_build_tx_cmd_hwcrypto(struct il_priv *il,
}
/*
* handle build
REPLY
_TX command notification.
* handle build
C
_TX command notification.
*/
static
void
il3945_build_tx_cmd_basic
(
struct
il_priv
*
il
,
struct
il_device_cmd
*
cmd
,
...
...
@@ -460,7 +460,7 @@ static void il3945_build_tx_cmd_basic(struct il_priv *il,
}
/*
* start
REPLY
_TX command process
* start
C
_TX command process
*/
static
int
il3945_tx_skb
(
struct
il_priv
*
il
,
struct
sk_buff
*
skb
)
{
...
...
@@ -560,7 +560,7 @@ static int il3945_tx_skb(struct il_priv *il, struct sk_buff *skb)
* after Tx, uCode's Tx response will return this value so driver can
* locate the frame within the tx queue and do post-tx processing.
*/
out_cmd
->
hdr
.
cmd
=
REPLY
_TX
;
out_cmd
->
hdr
.
cmd
=
C
_TX
;
out_cmd
->
hdr
.
sequence
=
cpu_to_le16
((
u16
)(
QUEUE_TO_SEQ
(
txq_id
)
|
IDX_TO_SEQ
(
q
->
write_ptr
)));
...
...
@@ -672,7 +672,7 @@ static int il3945_get_measurement(struct il_priv *il,
struct
il_spectrum_cmd
spectrum
;
struct
il_rx_pkt
*
pkt
;
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY_SPECTRUM_MEASUREMENT_CMD
,
.
id
=
C_SPECTRUM_MEASUREMENT
,
.
data
=
(
void
*
)
&
spectrum
,
.
flags
=
CMD_WANT_SKB
,
};
...
...
@@ -717,7 +717,7 @@ static int il3945_get_measurement(struct il_priv *il,
pkt
=
(
struct
il_rx_pkt
*
)
cmd
.
reply_page
;
if
(
pkt
->
hdr
.
flags
&
IL_CMD_FAILED_MSK
)
{
IL_ERR
(
"Bad return from
REPLY
_RX_ON_ASSOC command
\n
"
);
IL_ERR
(
"Bad return from
N
_RX_ON_ASSOC command
\n
"
);
rc
=
-
EIO
;
}
...
...
@@ -786,7 +786,7 @@ static void il3945_rx_reply_add_sta(struct il_priv *il,
struct
il_rx_pkt
*
pkt
=
rxb_addr
(
rxb
);
#endif
D_RX
(
"Received
REPLY
_ADD_STA: 0x%02X
\n
"
,
pkt
->
u
.
status
);
D_RX
(
"Received
C
_ADD_STA: 0x%02X
\n
"
,
pkt
->
u
.
status
);
}
static
void
il3945_rx_beacon_notif
(
struct
il_priv
*
il
,
...
...
@@ -853,27 +853,27 @@ static void il3945_rx_card_state_notif(struct il_priv *il,
*/
static
void
il3945_setup_rx_handlers
(
struct
il_priv
*
il
)
{
il
->
rx_handlers
[
REPLY
_ALIVE
]
=
il3945_rx_reply_alive
;
il
->
rx_handlers
[
REPLY
_ADD_STA
]
=
il3945_rx_reply_add_sta
;
il
->
rx_handlers
[
REPLY
_ERROR
]
=
il_rx_reply_error
;
il
->
rx_handlers
[
CHANNEL_SWITCH_NOTIFICATION
]
=
il_rx_csa
;
il
->
rx_handlers
[
SPECTRUM_MEASURE_NOTIFICATION
]
=
il
->
rx_handlers
[
N
_ALIVE
]
=
il3945_rx_reply_alive
;
il
->
rx_handlers
[
C
_ADD_STA
]
=
il3945_rx_reply_add_sta
;
il
->
rx_handlers
[
N
_ERROR
]
=
il_rx_reply_error
;
il
->
rx_handlers
[
N_CHANNEL_SWITCH
]
=
il_rx_csa
;
il
->
rx_handlers
[
N_SPECTRUM_MEASUREMENT
]
=
il_rx_spectrum_measure_notif
;
il
->
rx_handlers
[
PM_SLEEP_NOTIFICATION
]
=
il_rx_pm_sleep_notif
;
il
->
rx_handlers
[
PM_DEBUG_STATISTIC_NOTIFIC
]
=
il
->
rx_handlers
[
N_PM_SLEEP
]
=
il_rx_pm_sleep_notif
;
il
->
rx_handlers
[
N_PM_DEBUG_STATS
]
=
il_rx_pm_debug_stats_notif
;
il
->
rx_handlers
[
BEACON_NOTIFICATI
ON
]
=
il3945_rx_beacon_notif
;
il
->
rx_handlers
[
N_BEAC
ON
]
=
il3945_rx_beacon_notif
;
/*
* The same handler is used for both the REPLY to a discrete
* stats request from the host as well as for the periodic
* stats notifications (after received beacons) from the uCode.
*/
il
->
rx_handlers
[
REPLY_STATS_CMD
]
=
il3945_reply_stats
;
il
->
rx_handlers
[
STATS_NOTIFICATION
]
=
il3945_hw_rx_stats
;
il
->
rx_handlers
[
C_STATS
]
=
il3945_reply_stats
;
il
->
rx_handlers
[
N_STATS
]
=
il3945_hw_rx_stats
;
il_setup_rx_scan_handlers
(
il
);
il
->
rx_handlers
[
CARD_STATE_NOTIFICATION
]
=
il3945_rx_card_state_notif
;
il
->
rx_handlers
[
N_CARD_STATE
]
=
il3945_rx_card_state_notif
;
/* Set up hardware specific Rx handlers */
il3945_hw_rx_handler_setup
(
il
);
...
...
@@ -1253,8 +1253,8 @@ static void il3945_rx_handle(struct il_priv *il)
* Ucode should set SEQ_RX_FRAME bit if ucode-originated,
* but apparently a few don't get set; catch them here. */
reclaim
=
!
(
pkt
->
hdr
.
sequence
&
SEQ_RX_FRAME
)
&&
pkt
->
hdr
.
cmd
!=
STATS_NOTIFICATION
&&
pkt
->
hdr
.
cmd
!=
REPLY
_TX
;
pkt
->
hdr
.
cmd
!=
N_STATS
&&
pkt
->
hdr
.
cmd
!=
C
_TX
;
/* Based on type of command response or notification,
* handle those that need handling via function in
...
...
@@ -2137,9 +2137,9 @@ static int il3945_set_ucode_ptrs(struct il_priv *il)
}
/**
* il3945_init_alive_start - Called after
REPLY
_ALIVE notification received
* il3945_init_alive_start - Called after
N
_ALIVE notification received
*
* Called after
REPLY
_ALIVE notification received from "initialize" uCode.
* Called after
N
_ALIVE notification received from "initialize" uCode.
*
* Tell "initialize" uCode to go ahead and load the runtime uCode.
*/
...
...
@@ -2180,7 +2180,7 @@ static void il3945_init_alive_start(struct il_priv *il)
}
/**
* il3945_alive_start - called after
REPLY
_ALIVE notification received
* il3945_alive_start - called after
N
_ALIVE notification received
* from protocol/runtime uCode (initialization uCode's
* Alive gets handled by il3945_init_alive_start()).
*/
...
...
@@ -2553,7 +2553,7 @@ static void il3945_rfkill_poll(struct work_struct *data)
int
il3945_request_scan
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
)
{
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY_SCAN_CMD
,
.
id
=
C_SCAN
,
.
len
=
sizeof
(
struct
il3945_scan_cmd
),
.
flags
=
CMD_SIZE_HUGE
,
};
...
...
@@ -2767,7 +2767,7 @@ void il3945_post_associate(struct il_priv *il)
rc
=
il_send_rxon_timing
(
il
,
ctx
);
if
(
rc
)
IL_WARN
(
"
REPLY
_RXON_TIMING failed - "
IL_WARN
(
"
C
_RXON_TIMING failed - "
"Attempting to continue.
\n
"
);
ctx
->
staging
.
filter_flags
|=
RXON_FILTER_ASSOC_MSK
;
...
...
@@ -2931,7 +2931,7 @@ void il3945_config_ap(struct il_priv *il)
/* RXON Timing */
rc
=
il_send_rxon_timing
(
il
,
ctx
);
if
(
rc
)
IL_WARN
(
"
REPLY
_RXON_TIMING failed - "
IL_WARN
(
"
C
_RXON_TIMING failed - "
"Attempting to continue.
\n
"
);
ctx
->
staging
.
assoc_id
=
0
;
...
...
@@ -3657,12 +3657,12 @@ static int il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *en
il
->
ctx
.
ctxid
=
0
;
il
->
ctx
.
rxon_cmd
=
REPLY
_RXON
;
il
->
ctx
.
rxon_timing_cmd
=
REPLY
_RXON_TIMING
;
il
->
ctx
.
rxon_assoc_cmd
=
REPLY
_RXON_ASSOC
;
il
->
ctx
.
qos_cmd
=
REPLY
_QOS_PARAM
;
il
->
ctx
.
rxon_cmd
=
C
_RXON
;
il
->
ctx
.
rxon_timing_cmd
=
C
_RXON_TIMING
;
il
->
ctx
.
rxon_assoc_cmd
=
C
_RXON_ASSOC
;
il
->
ctx
.
qos_cmd
=
C
_QOS_PARAM
;
il
->
ctx
.
ap_sta_id
=
IL_AP_ID
;
il
->
ctx
.
wep_key_cmd
=
REPLY
_WEPKEY
;
il
->
ctx
.
wep_key_cmd
=
C
_WEPKEY
;
il
->
ctx
.
interface_modes
=
BIT
(
NL80211_IFTYPE_STATION
)
|
BIT
(
NL80211_IFTYPE_ADHOC
);
...
...
drivers/net/wireless/iwlegacy/3945.c
浏览文件 @
4d69c752
...
...
@@ -53,7 +53,7 @@ static int il3945_send_led_cmd(struct il_priv *il,
struct
il_led_cmd
*
led_cmd
)
{
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY_LEDS_CMD
,
.
id
=
C_LEDS
,
.
len
=
sizeof
(
struct
il_led_cmd
),
.
data
=
led_cmd
,
.
flags
=
CMD_ASYNC
,
...
...
@@ -1444,7 +1444,7 @@ static int il3945_send_tx_power(struct il_priv *il)
txpower
.
power
[
i
].
rate
);
}
return
il_send_cmd_pdu
(
il
,
REPLY_TX_PWR_TBL_CMD
,
return
il_send_cmd_pdu
(
il
,
C_TX_PWR_TBL
,
sizeof
(
struct
il3945_txpowertable_cmd
),
&
txpower
);
...
...
@@ -1673,7 +1673,7 @@ static int il3945_send_rxon_assoc(struct il_priv *il,
struct
il_rx_pkt
*
pkt
;
struct
il3945_rxon_assoc_cmd
rxon_assoc
;
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY
_RXON_ASSOC
,
.
id
=
C
_RXON_ASSOC
,
.
len
=
sizeof
(
rxon_assoc
),
.
flags
=
CMD_WANT_SKB
,
.
data
=
&
rxon_assoc
,
...
...
@@ -1701,7 +1701,7 @@ static int il3945_send_rxon_assoc(struct il_priv *il,
pkt
=
(
struct
il_rx_pkt
*
)
cmd
.
reply_page
;
if
(
pkt
->
hdr
.
flags
&
IL_CMD_FAILED_MSK
)
{
IL_ERR
(
"Bad return from
REPLY
_RXON_ASSOC command
\n
"
);
IL_ERR
(
"Bad return from
C
_RXON_ASSOC command
\n
"
);
rc
=
-
EIO
;
}
...
...
@@ -1782,7 +1782,7 @@ int il3945_commit_rxon(struct il_priv *il, struct il_rxon_context *ctx)
*/
active_rxon
->
reserved4
=
0
;
active_rxon
->
reserved5
=
0
;
rc
=
il_send_cmd_pdu
(
il
,
REPLY
_RXON
,
rc
=
il_send_cmd_pdu
(
il
,
C
_RXON
,
sizeof
(
struct
il3945_rxon_cmd
),
&
il
->
ctx
.
active
);
...
...
@@ -1818,7 +1818,7 @@ int il3945_commit_rxon(struct il_priv *il, struct il_rxon_context *ctx)
il_set_rxon_hwcrypto
(
il
,
ctx
,
!
il3945_mod_params
.
sw_crypto
);
/* Apply the new configuration */
rc
=
il_send_cmd_pdu
(
il
,
REPLY
_RXON
,
rc
=
il_send_cmd_pdu
(
il
,
C
_RXON
,
sizeof
(
struct
il3945_rxon_cmd
),
staging_rxon
);
if
(
rc
)
{
...
...
@@ -2237,9 +2237,9 @@ int il3945_hw_tx_queue_init(struct il_priv *il, struct il_tx_queue *txq)
static
u16
il3945_get_hcmd_size
(
u8
cmd_id
,
u16
len
)
{
switch
(
cmd_id
)
{
case
REPLY
_RXON
:
case
C
_RXON
:
return
sizeof
(
struct
il3945_rxon_cmd
);
case
POWER_TBL_CMD
:
case
C_POWER_TBL
:
return
sizeof
(
struct
il3945_powertable_cmd
);
default:
return
len
;
...
...
@@ -2383,14 +2383,14 @@ int il3945_init_hw_rate_table(struct il_priv *il)
/* Update the rate scaling for control frame Tx */
rate_cmd
.
table_id
=
0
;
rc
=
il_send_cmd_pdu
(
il
,
REPLY
_RATE_SCALE
,
sizeof
(
rate_cmd
),
rc
=
il_send_cmd_pdu
(
il
,
C
_RATE_SCALE
,
sizeof
(
rate_cmd
),
&
rate_cmd
);
if
(
rc
)
return
rc
;
/* Update the rate scaling for data frame Tx */
rate_cmd
.
table_id
=
1
;
return
il_send_cmd_pdu
(
il
,
REPLY
_RATE_SCALE
,
sizeof
(
rate_cmd
),
return
il_send_cmd_pdu
(
il
,
C
_RATE_SCALE
,
sizeof
(
rate_cmd
),
&
rate_cmd
);
}
...
...
@@ -2464,8 +2464,8 @@ unsigned int il3945_hw_get_beacon_cmd(struct il_priv *il,
void
il3945_hw_rx_handler_setup
(
struct
il_priv
*
il
)
{
il
->
rx_handlers
[
REPLY
_TX
]
=
il3945_rx_reply_tx
;
il
->
rx_handlers
[
REPLY
_3945_RX
]
=
il3945_rx_reply_rx
;
il
->
rx_handlers
[
C
_TX
]
=
il3945_rx_reply_tx
;
il
->
rx_handlers
[
N
_3945_RX
]
=
il3945_rx_reply_rx
;
}
void
il3945_hw_setup_deferred_work
(
struct
il_priv
*
il
)
...
...
drivers/net/wireless/iwlegacy/4965-calib.c
浏览文件 @
4d69c752
...
...
@@ -410,13 +410,13 @@ static void il4965_prepare_legacy_sensitivity_tbl(struct il_priv *il,
data
->
nrg_th_cck
);
}
/* Prepare a
SENSITIVITY_CMD
, send to uCode if values have changed */
/* Prepare a
C_SENSITIVITY
, send to uCode if values have changed */
static
int
il4965_sensitivity_write
(
struct
il_priv
*
il
)
{
struct
il_sensitivity_cmd
cmd
;
struct
il_sensitivity_data
*
data
=
NULL
;
struct
il_host_cmd
cmd_out
=
{
.
id
=
SENSITIVITY_CMD
,
.
id
=
C_SENSITIVITY
,
.
len
=
sizeof
(
struct
il_sensitivity_cmd
),
.
flags
=
CMD_ASYNC
,
.
data
=
&
cmd
,
...
...
@@ -429,12 +429,12 @@ static int il4965_sensitivity_write(struct il_priv *il)
il4965_prepare_legacy_sensitivity_tbl
(
il
,
data
,
&
cmd
.
table
[
0
]);
/* Update uCode's "work" table, and copy it to DSP */
cmd
.
control
=
SENSITIVITY_CMD
_CONTROL_WORK_TBL
;
cmd
.
control
=
C_SENSITIVITY
_CONTROL_WORK_TBL
;
/* Don't send command to uCode if nothing has changed */
if
(
!
memcmp
(
&
cmd
.
table
[
0
],
&
(
il
->
sensitivity_tbl
[
0
]),
sizeof
(
u16
)
*
HD_TBL_SIZE
))
{
D_CALIB
(
"No change in
SENSITIVITY_CMD
\n
"
);
D_CALIB
(
"No change in
C_SENSITIVITY
\n
"
);
return
0
;
}
...
...
@@ -776,11 +776,11 @@ static void il4965_gain_computation(struct il_priv *il,
cmd
.
diff_gain_a
=
data
->
delta_gain_code
[
0
];
cmd
.
diff_gain_b
=
data
->
delta_gain_code
[
1
];
cmd
.
diff_gain_c
=
data
->
delta_gain_code
[
2
];
ret
=
il_send_cmd_pdu
(
il
,
REPLY_PHY_CALIBRATION_CMD
,
ret
=
il_send_cmd_pdu
(
il
,
C_PHY_CALIBRATION
,
sizeof
(
cmd
),
&
cmd
);
if
(
ret
)
D_CALIB
(
"fail sending cmd "
"
REPLY_PHY_CALIBRATION_CMD
\n
"
);
"
C_PHY_CALIBRATION
\n
"
);
/* TODO we might want recalculate
* rx_chain in rxon cmd */
...
...
drivers/net/wireless/iwlegacy/4965-mac.c
浏览文件 @
4d69c752
...
...
@@ -608,8 +608,8 @@ static void il4965_pass_packet_to_mac80211(struct il_priv *il,
rxb
->
page
=
NULL
;
}
/* Called for
REPLY
_RX (legacy ABG frames), or
*
REPLY_RX_MPDU_CMD
(HT high-throughput N frames). */
/* Called for
N
_RX (legacy ABG frames), or
*
N_RX_MPDU
(HT high-throughput N frames). */
void
il4965_rx_reply_rx
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
)
{
...
...
@@ -624,15 +624,15 @@ void il4965_rx_reply_rx(struct il_priv *il,
u32
rate_n_flags
;
/**
*
REPLY_RX and REPLY_RX_MPDU_CMD
are handled differently.
*
REPLY
_RX: physical layer info is in this buffer
*
REPLY_RX_MPDU_CMD
: physical layer info was sent in separate
*
N_RX and N_RX_MPDU
are handled differently.
*
N
_RX: physical layer info is in this buffer
*
N_RX_MPDU
: physical layer info was sent in separate
* command and cached in il->last_phy_res
*
* Here we set up local variables depending on which command is
* received.
*/
if
(
pkt
->
hdr
.
cmd
==
REPLY
_RX
)
{
if
(
pkt
->
hdr
.
cmd
==
N
_RX
)
{
phy_res
=
(
struct
il_rx_phy_res
*
)
pkt
->
u
.
raw
;
header
=
(
struct
ieee80211_hdr
*
)(
pkt
->
u
.
raw
+
sizeof
(
*
phy_res
)
+
phy_res
->
cfg_phy_cnt
);
...
...
@@ -728,8 +728,8 @@ void il4965_rx_reply_rx(struct il_priv *il,
rxb
,
&
rx_status
);
}
/* Cache phy data (Rx signal strength, etc) for HT frame (
REPLY_RX_PHY_CMD
).
* This will be used later in il_rx_reply_rx() for
REPLY_RX_MPDU_CMD
. */
/* Cache phy data (Rx signal strength, etc) for HT frame (
N_RX_PHY
).
* This will be used later in il_rx_reply_rx() for
N_RX_MPDU
. */
void
il4965_rx_reply_rx_phy
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
)
{
...
...
@@ -827,7 +827,7 @@ static inline u32 il4965_ant_idx_to_flags(u8 ant_idx)
int
il4965_request_scan
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
)
{
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY_SCAN_CMD
,
.
id
=
C_SCAN
,
.
len
=
sizeof
(
struct
il_scan_cmd
),
.
flags
=
CMD_SIZE_HUGE
,
};
...
...
@@ -1388,7 +1388,7 @@ void il4965_rx_stats(struct il_priv *il,
msecs_to_jiffies
(
REG_RECALIB_PERIOD
*
1000
));
if
(
unlikely
(
!
test_bit
(
S_SCANNING
,
&
il
->
status
))
&&
(
pkt
->
hdr
.
cmd
==
STATS_NOTIFICATION
))
{
(
pkt
->
hdr
.
cmd
==
N_STATS
))
{
il4965_rx_calc_noise
(
il
);
queue_work
(
il
->
workqueue
,
&
il
->
run_time_calib_work
);
}
...
...
@@ -1473,7 +1473,7 @@ il4965_get_fifo_from_tid(struct il_rxon_context *ctx, u16 tid)
}
/*
* handle build
REPLY
_TX command notification.
* handle build
C
_TX command notification.
*/
static
void
il4965_tx_cmd_build_basic
(
struct
il_priv
*
il
,
struct
sk_buff
*
skb
,
...
...
@@ -1640,7 +1640,7 @@ static void il4965_tx_cmd_build_hwcrypto(struct il_priv *il,
}
/*
* start
REPLY
_TX command process
* start
C
_TX command process
*/
int
il4965_tx_skb
(
struct
il_priv
*
il
,
struct
sk_buff
*
skb
)
{
...
...
@@ -1797,7 +1797,7 @@ int il4965_tx_skb(struct il_priv *il, struct sk_buff *skb)
* after Tx, uCode's Tx response will return this value so driver can
* locate the frame within the tx queue and do post-tx processing.
*/
out_cmd
->
hdr
.
cmd
=
REPLY
_TX
;
out_cmd
->
hdr
.
cmd
=
C
_TX
;
out_cmd
->
hdr
.
sequence
=
cpu_to_le16
((
u16
)(
QUEUE_TO_SEQ
(
txq_id
)
|
IDX_TO_SEQ
(
q
->
write_ptr
)));
...
...
@@ -2616,7 +2616,7 @@ void il4965_hwrate_to_tx_control(struct il_priv *il, u32 rate_n_flags,
}
/**
* il4965_rx_reply_compressed_ba - Handler for
REPLY
_COMPRESSED_BA
* il4965_rx_reply_compressed_ba - Handler for
N
_COMPRESSED_BA
*
* Handles block-acknowledge notification from device, which reports success
* of frames sent via aggregation.
...
...
@@ -2668,7 +2668,7 @@ void il4965_rx_reply_compressed_ba(struct il_priv *il,
spin_lock_irqsave
(
&
il
->
sta_lock
,
flags
);
D_TX_REPLY
(
"
REPLY
_COMPRESSED_BA [%d] Received from %pM, "
D_TX_REPLY
(
"
N
_COMPRESSED_BA [%d] Received from %pM, "
"sta_id = %d
\n
"
,
agg
->
wait_for_ba
,
(
u8
*
)
&
ba_resp
->
sta_addr_lo32
,
...
...
@@ -2917,7 +2917,7 @@ int il4965_remove_default_wep_key(struct il_priv *il,
memset
(
&
ctx
->
wep_keys
[
keyconf
->
keyidx
],
0
,
sizeof
(
ctx
->
wep_keys
[
0
]));
if
(
il_is_rfkill
(
il
))
{
D_WEP
(
"Not sending
REPLY
_WEPKEY command due to RFKILL.
\n
"
);
"Not sending
C
_WEPKEY command due to RFKILL.
\n
"
);
/* but keys in device are clear anyway so return success */
return
0
;
}
...
...
@@ -3201,7 +3201,7 @@ int il4965_remove_dynamic_key(struct il_priv *il,
if
(
il_is_rfkill
(
il
))
{
D_WEP
(
"Not sending
REPLY
_ADD_STA command because RFKILL enabled.
\n
"
);
"Not sending
C
_ADD_STA command because RFKILL enabled.
\n
"
);
spin_unlock_irqrestore
(
&
il
->
sta_lock
,
flags
);
return
0
;
}
...
...
@@ -3598,7 +3598,7 @@ int il4965_send_beacon_cmd(struct il_priv *il)
return
-
EINVAL
;
}
rc
=
il_send_cmd_pdu
(
il
,
REPLY
_TX_BEACON
,
frame_size
,
rc
=
il_send_cmd_pdu
(
il
,
C
_TX_BEACON
,
frame_size
,
&
frame
->
u
.
cmd
[
0
]);
il4965_free_frame
(
il
,
frame
);
...
...
@@ -3801,7 +3801,7 @@ static void il4965_rx_reply_alive(struct il_priv *il,
* This callback is provided in order to send a stats request.
*
* This timer function is continually reset to execute within
* REG_RECALIB_PERIOD seconds since the last
STATS_NOTIFICATION
* REG_RECALIB_PERIOD seconds since the last
N_STATS
* was received. We need to ensure we receive the stats in order
* to update the temperature used for calibrating the TXPOWER.
*/
...
...
@@ -3921,37 +3921,37 @@ static void il4965_rx_card_state_notif(struct il_priv *il,
*/
static
void
il4965_setup_rx_handlers
(
struct
il_priv
*
il
)
{
il
->
rx_handlers
[
REPLY
_ALIVE
]
=
il4965_rx_reply_alive
;
il
->
rx_handlers
[
REPLY
_ERROR
]
=
il_rx_reply_error
;
il
->
rx_handlers
[
CHANNEL_SWITCH_NOTIFICATION
]
=
il_rx_csa
;
il
->
rx_handlers
[
SPECTRUM_MEASURE_NOTIFICATION
]
=
il
->
rx_handlers
[
N
_ALIVE
]
=
il4965_rx_reply_alive
;
il
->
rx_handlers
[
N
_ERROR
]
=
il_rx_reply_error
;
il
->
rx_handlers
[
N_CHANNEL_SWITCH
]
=
il_rx_csa
;
il
->
rx_handlers
[
N_SPECTRUM_MEASUREMENT
]
=
il_rx_spectrum_measure_notif
;
il
->
rx_handlers
[
PM_SLEEP_NOTIFICATION
]
=
il_rx_pm_sleep_notif
;
il
->
rx_handlers
[
PM_DEBUG_STATISTIC_NOTIFIC
]
=
il
->
rx_handlers
[
N_PM_SLEEP
]
=
il_rx_pm_sleep_notif
;
il
->
rx_handlers
[
N_PM_DEBUG_STATS
]
=
il_rx_pm_debug_stats_notif
;
il
->
rx_handlers
[
BEACON_NOTIFICATI
ON
]
=
il4965_rx_beacon_notif
;
il
->
rx_handlers
[
N_BEAC
ON
]
=
il4965_rx_beacon_notif
;
/*
* The same handler is used for both the REPLY to a discrete
* stats request from the host as well as for the periodic
* stats notifications (after received beacons) from the uCode.
*/
il
->
rx_handlers
[
REPLY_STATS_CMD
]
=
il4965_reply_stats
;
il
->
rx_handlers
[
STATS_NOTIFICATION
]
=
il4965_rx_stats
;
il
->
rx_handlers
[
C_STATS
]
=
il4965_reply_stats
;
il
->
rx_handlers
[
N_STATS
]
=
il4965_rx_stats
;
il_setup_rx_scan_handlers
(
il
);
/* status change handler */
il
->
rx_handlers
[
CARD_STATE_NOTIFICATION
]
=
il
->
rx_handlers
[
N_CARD_STATE
]
=
il4965_rx_card_state_notif
;
il
->
rx_handlers
[
MISSED_BEACONS_NOTIFICATION
]
=
il
->
rx_handlers
[
N_MISSED_BEACONS
]
=
il4965_rx_missed_beacon_notif
;
/* Rx handlers */
il
->
rx_handlers
[
REPLY_RX_PHY_CMD
]
=
il4965_rx_reply_rx_phy
;
il
->
rx_handlers
[
REPLY_RX_MPDU_CMD
]
=
il4965_rx_reply_rx
;
il
->
rx_handlers
[
N_RX_PHY
]
=
il4965_rx_reply_rx_phy
;
il
->
rx_handlers
[
N_RX_MPDU
]
=
il4965_rx_reply_rx
;
/* block ack */
il
->
rx_handlers
[
REPLY
_COMPRESSED_BA
]
=
il4965_rx_reply_compressed_ba
;
il
->
rx_handlers
[
N
_COMPRESSED_BA
]
=
il4965_rx_reply_compressed_ba
;
/* Set up hardware specific Rx handlers */
il
->
cfg
->
ops
->
lib
->
rx_handler_setup
(
il
);
}
...
...
@@ -4019,12 +4019,12 @@ void il4965_rx_handle(struct il_priv *il)
* Ucode should set SEQ_RX_FRAME bit if ucode-originated,
* but apparently a few don't get set; catch them here. */
reclaim
=
!
(
pkt
->
hdr
.
sequence
&
SEQ_RX_FRAME
)
&&
(
pkt
->
hdr
.
cmd
!=
REPLY_RX_PHY_CMD
)
&&
(
pkt
->
hdr
.
cmd
!=
REPLY
_RX
)
&&
(
pkt
->
hdr
.
cmd
!=
REPLY_RX_MPDU_CMD
)
&&
(
pkt
->
hdr
.
cmd
!=
REPLY
_COMPRESSED_BA
)
&&
(
pkt
->
hdr
.
cmd
!=
STATS_NOTIFICATION
)
&&
(
pkt
->
hdr
.
cmd
!=
REPLY
_TX
);
(
pkt
->
hdr
.
cmd
!=
N_RX_PHY
)
&&
(
pkt
->
hdr
.
cmd
!=
N
_RX
)
&&
(
pkt
->
hdr
.
cmd
!=
N_RX_MPDU
)
&&
(
pkt
->
hdr
.
cmd
!=
N
_COMPRESSED_BA
)
&&
(
pkt
->
hdr
.
cmd
!=
N_STATS
)
&&
(
pkt
->
hdr
.
cmd
!=
C
_TX
);
/* Based on type of command response or notification,
* handle those that need handling via function in
...
...
@@ -4923,12 +4923,12 @@ static void il4965_rf_kill_ct_config(struct il_priv *il)
cmd
.
critical_temperature_R
=
cpu_to_le32
(
il
->
hw_params
.
ct_kill_threshold
);
ret
=
il_send_cmd_pdu
(
il
,
REPLY_CT_KILL_CONFIG_CMD
,
ret
=
il_send_cmd_pdu
(
il
,
C_CT_KILL_CONFIG
,
sizeof
(
cmd
),
&
cmd
);
if
(
ret
)
IL_ERR
(
"
REPLY_CT_KILL_CONFIG_CMD
failed
\n
"
);
IL_ERR
(
"
C_CT_KILL_CONFIG
failed
\n
"
);
else
D_INFO
(
"
REPLY_CT_KILL_CONFIG_CMD
"
D_INFO
(
"
C_CT_KILL_CONFIG
"
"succeeded, "
"critical temperature is %d
\n
"
,
il
->
hw_params
.
ct_kill_threshold
);
...
...
@@ -5042,7 +5042,7 @@ static int il4965_alive_notify(struct il_priv *il)
}
/**
* il4965_alive_start - called after
REPLY
_ALIVE notification received
* il4965_alive_start - called after
N
_ALIVE notification received
* from protocol/runtime uCode (initialization uCode's
* Alive gets handled by il_init_alive_start()).
*/
...
...
@@ -6200,12 +6200,12 @@ il4965_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
il
->
ctx
.
always_active
=
true
;
il
->
ctx
.
is_active
=
true
;
il
->
ctx
.
rxon_cmd
=
REPLY
_RXON
;
il
->
ctx
.
rxon_timing_cmd
=
REPLY
_RXON_TIMING
;
il
->
ctx
.
rxon_assoc_cmd
=
REPLY
_RXON_ASSOC
;
il
->
ctx
.
qos_cmd
=
REPLY
_QOS_PARAM
;
il
->
ctx
.
rxon_cmd
=
C
_RXON
;
il
->
ctx
.
rxon_timing_cmd
=
C
_RXON_TIMING
;
il
->
ctx
.
rxon_assoc_cmd
=
C
_RXON_ASSOC
;
il
->
ctx
.
qos_cmd
=
C
_QOS_PARAM
;
il
->
ctx
.
ap_sta_id
=
IL_AP_ID
;
il
->
ctx
.
wep_key_cmd
=
REPLY
_WEPKEY
;
il
->
ctx
.
wep_key_cmd
=
C
_WEPKEY
;
il
->
ctx
.
ac_to_fifo
=
il4965_bss_ac_to_fifo
;
il
->
ctx
.
ac_to_queue
=
il4965_bss_ac_to_queue
;
il
->
ctx
.
exclusive_interface_modes
=
...
...
drivers/net/wireless/iwlegacy/4965-rs.c
浏览文件 @
4d69c752
...
...
@@ -2172,8 +2172,8 @@ static void il4965_rs_rate_scale_perform(struct il_priv *il,
* if the driver's iwl-4965-rs rate scaling algorithm is used, instead of
* rc80211_simple.
*
* NOTE: Run
REPLY
_ADD_STA command to set up station table entry, before
* calling this function (which runs
REPLY
_TX_LINK_QUALITY_CMD,
* NOTE: Run
C
_ADD_STA command to set up station table entry, before
* calling this function (which runs
C
_TX_LINK_QUALITY_CMD,
* which requires station table entry to exist).
*/
static
void
il4965_rs_initialize_lq
(
struct
il_priv
*
il
,
...
...
drivers/net/wireless/iwlegacy/4965.c
浏览文件 @
4d69c752
...
...
@@ -249,7 +249,7 @@ static int
il4965_send_led_cmd
(
struct
il_priv
*
il
,
struct
il_led_cmd
*
led_cmd
)
{
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY_LEDS_CMD
,
.
id
=
C_LEDS
,
.
len
=
sizeof
(
struct
il_led_cmd
),
.
data
=
led_cmd
,
.
flags
=
CMD_ASYNC
,
...
...
@@ -465,9 +465,9 @@ static int il4965_set_ucode_ptrs(struct il_priv *il)
}
/**
* il4965_init_alive_start - Called after
REPLY
_ALIVE notification received
* il4965_init_alive_start - Called after
N
_ALIVE notification received
*
* Called after
REPLY
_ALIVE notification received from "initialize" uCode.
* Called after
N
_ALIVE notification received from "initialize" uCode.
*
* The 4965 "initialize" ALIVE reply contains calibration data for:
* Voltage, temperature, and MIMO tx gain correction, now stored in il
...
...
@@ -567,10 +567,10 @@ static void il4965_chain_noise_reset(struct il_priv *il)
cmd
.
diff_gain_a
=
0
;
cmd
.
diff_gain_b
=
0
;
cmd
.
diff_gain_c
=
0
;
if
(
il_send_cmd_pdu
(
il
,
REPLY_PHY_CALIBRATION_CMD
,
if
(
il_send_cmd_pdu
(
il
,
C_PHY_CALIBRATION
,
sizeof
(
cmd
),
&
cmd
))
IL_ERR
(
"Could not send
REPLY_PHY_CALIBRATION_CMD
\n
"
);
"Could not send
C_PHY_CALIBRATION
\n
"
);
data
->
state
=
IL_CHAIN_NOISE_ACCUMULATE
;
D_CALIB
(
"Run chain_noise_calibrate
\n
"
);
}
...
...
@@ -1370,7 +1370,7 @@ static int il4965_send_tx_power(struct il_priv *il)
goto
out
;
ret
=
il_send_cmd_pdu
(
il
,
REPLY_TX_PWR_TBL_CMD
,
sizeof
(
cmd
),
&
cmd
);
C_TX_PWR_TBL
,
sizeof
(
cmd
),
&
cmd
);
out:
return
ret
;
...
...
@@ -1408,7 +1408,7 @@ static int il4965_send_rxon_assoc(struct il_priv *il,
ctx
->
staging
.
ofdm_ht_dual_stream_basic_rates
;
rxon_assoc
.
rx_chain_select_flags
=
ctx
->
staging
.
rx_chain
;
ret
=
il_send_cmd_pdu_async
(
il
,
REPLY
_RXON_ASSOC
,
ret
=
il_send_cmd_pdu_async
(
il
,
C
_RXON_ASSOC
,
sizeof
(
rxon_assoc
),
&
rxon_assoc
,
NULL
);
return
ret
;
...
...
@@ -1632,7 +1632,7 @@ static int il4965_hw_channel_switch(struct il_priv *il,
}
return
il_send_cmd_pdu
(
il
,
REPLY
_CHANNEL_SWITCH
,
sizeof
(
cmd
),
&
cmd
);
C
_CHANNEL_SWITCH
,
sizeof
(
cmd
),
&
cmd
);
}
/**
...
...
@@ -1795,7 +1795,7 @@ static void il4965_temperature_calib(struct il_priv *il)
static
u16
il4965_get_hcmd_size
(
u8
cmd_id
,
u16
len
)
{
switch
(
cmd_id
)
{
case
REPLY
_RXON
:
case
C
_RXON
:
return
(
u16
)
sizeof
(
struct
il4965_rxon_cmd
);
default:
return
len
;
...
...
@@ -2145,10 +2145,10 @@ static void il4965_rx_beacon_notif(struct il_priv *il,
static
void
il4965_rx_handler_setup
(
struct
il_priv
*
il
)
{
/* Legacy Rx frames */
il
->
rx_handlers
[
REPLY
_RX
]
=
il4965_rx_reply_rx
;
il
->
rx_handlers
[
N
_RX
]
=
il4965_rx_reply_rx
;
/* Tx response */
il
->
rx_handlers
[
REPLY
_TX
]
=
il4965_rx_reply_tx
;
il
->
rx_handlers
[
BEACON_NOTIFICATI
ON
]
=
il4965_rx_beacon_notif
;
il
->
rx_handlers
[
C
_TX
]
=
il4965_rx_reply_tx
;
il
->
rx_handlers
[
N_BEAC
ON
]
=
il4965_rx_beacon_notif
;
}
static
struct
il_hcmd_ops
il4965_hcmd
=
{
...
...
drivers/net/wireless/iwlegacy/4965.h
浏览文件 @
4d69c752
...
...
@@ -278,8 +278,8 @@ static inline int il4965_hw_valid_rtc_data_addr(u32 addr)
* uCode provides all 4 values to the driver via the "initialize alive"
* notification (see struct il4965_init_alive_resp). After the runtime uCode
* image loads, uCode updates the R4 value via stats notifications
* (see
STATS_NOTIFICATION
), which occur after each received beacon
* when associated, or can be requested via
REPLY_STATS_CMD
.
* (see
N_STATS
), which occur after each received beacon
* when associated, or can be requested via
C_STATS
.
*
* NOTE: uCode provides the R4 value as a 23-bit signed value. Driver
* must sign-extend to 32 bits before applying formula below.
...
...
drivers/net/wireless/iwlegacy/iwl-commands.h
浏览文件 @
4d69c752
...
...
@@ -84,76 +84,76 @@ struct il_priv;
#define IL_MAX_RATES (IL_CCK_RATES + IL_OFDM_RATES)
enum
{
REPLY
_ALIVE
=
0x1
,
REPLY
_ERROR
=
0x2
,
N
_ALIVE
=
0x1
,
N
_ERROR
=
0x2
,
/* RXON and QOS commands */
REPLY
_RXON
=
0x10
,
REPLY
_RXON_ASSOC
=
0x11
,
REPLY
_QOS_PARAM
=
0x13
,
REPLY
_RXON_TIMING
=
0x14
,
C
_RXON
=
0x10
,
C
_RXON_ASSOC
=
0x11
,
C
_QOS_PARAM
=
0x13
,
C
_RXON_TIMING
=
0x14
,
/* Multi-Station support */
REPLY
_ADD_STA
=
0x18
,
REPLY_REMOVE
_STA
=
0x19
,
C
_ADD_STA
=
0x18
,
C_REM
_STA
=
0x19
,
/* Security */
REPLY
_WEPKEY
=
0x20
,
C
_WEPKEY
=
0x20
,
/* RX, TX, LEDs */
REPLY
_3945_RX
=
0x1b
,
/* 3945 only */
REPLY
_TX
=
0x1c
,
REPLY
_RATE_SCALE
=
0x47
,
/* 3945 only */
REPLY_LEDS_CMD
=
0x48
,
REPLY_TX_LINK_QUALITY_CMD
=
0x4e
,
/* for 4965 and up
*/
N
_3945_RX
=
0x1b
,
/* 3945 only */
C
_TX
=
0x1c
,
C
_RATE_SCALE
=
0x47
,
/* 3945 only */
C_LEDS
=
0x48
,
C_TX_LINK_QUALITY_CMD
=
0x4e
,
/* for 4965
*/
/* 802.11h related */
REPLY
_CHANNEL_SWITCH
=
0x72
,
CHANNEL_SWITCH_NOTIFICATION
=
0x73
,
REPLY_SPECTRUM_MEASUREMENT_CMD
=
0x74
,
SPECTRUM_MEASURE_NOTIFICATION
=
0x75
,
C
_CHANNEL_SWITCH
=
0x72
,
N_CHANNEL_SWITCH
=
0x73
,
C_SPECTRUM_MEASUREMENT
=
0x74
,
N_SPECTRUM_MEASUREMENT
=
0x75
,
/* Power Management */
POWER_TBL_CMD
=
0x77
,
PM_SLEEP_NOTIFICATION
=
0x7A
,
PM_DEBUG_STATISTIC_NOTIFIC
=
0x7B
,
C_POWER_TBL
=
0x77
,
N_PM_SLEEP
=
0x7A
,
N_PM_DEBUG_STATS
=
0x7B
,
/* Scan commands and notifications */
REPLY_SCAN_CMD
=
0x80
,
REPLY_SCAN_ABORT_CMD
=
0x81
,
SCAN_START_NOTIFICATION
=
0x82
,
SCAN_RESULTS_NOTIFICATION
=
0x83
,
SCAN_COMPLETE_NOTIFICATION
=
0x84
,
C_SCAN
=
0x80
,
C_SCAN_ABORT
=
0x81
,
N_SCAN_START
=
0x82
,
N_SCAN_RESULTS
=
0x83
,
N_SCAN_COMPLETE
=
0x84
,
/* IBSS/AP commands */
BEACON_NOTIFICATI
ON
=
0x90
,
REPLY_TX_BEACON
=
0x91
,
N_BEAC
ON
=
0x90
,
C_TX_BEACON
=
0x91
,
/* Miscellaneous commands */
REPLY_TX_PWR_TBL_CMD
=
0x97
,
C_TX_PWR_TBL
=
0x97
,
/* Bluetooth device coexistence config command */
REPLY
_BT_CONFIG
=
0x9b
,
C
_BT_CONFIG
=
0x9b
,
/* Statistics */
REPLY_STATS_CMD
=
0x9c
,
STATS_NOTIFICATION
=
0x9d
,
C_STATS
=
0x9c
,
N_STATS
=
0x9d
,
/* RF-KILL commands and notifications */
CARD_STATE_NOTIFICATION
=
0xa1
,
N_CARD_STATE
=
0xa1
,
/* Missed beacons notification */
MISSED_BEACONS_NOTIFICATION
=
0xa2
,
N_MISSED_BEACONS
=
0xa2
,
REPLY_CT_KILL_CONFIG_CMD
=
0xa4
,
SENSITIVITY_CMD
=
0xa8
,
REPLY_PHY_CALIBRATION_CMD
=
0xb0
,
REPLY_RX_PHY_CMD
=
0xc0
,
REPLY_RX_MPDU_CMD
=
0xc1
,
REPLY
_RX
=
0xc3
,
REPLY
_COMPRESSED_BA
=
0xc5
,
C_CT_KILL_CONFIG
=
0xa4
,
C_SENSITIVITY
=
0xa8
,
C_PHY_CALIBRATION
=
0xb0
,
N_RX_PHY
=
0xc0
,
N_RX_MPDU
=
0xc1
,
N
_RX
=
0xc3
,
N
_COMPRESSED_BA
=
0xc5
,
REPLY
_MAX
=
0xff
IL_CN
_MAX
=
0xff
};
/******************************************************************************
...
...
@@ -180,7 +180,7 @@ enum {
* driver, and each response/notification received from uCode.
*/
struct
il_cmd_header
{
u8
cmd
;
/* Command ID:
REPLY
_RXON, etc. */
u8
cmd
;
/* Command ID:
C
_RXON, etc. */
u8
flags
;
/* 0:5 reserved, 6 abort, 7 internal */
/*
* The driver sets up the sequence number to values of its choosing.
...
...
@@ -192,7 +192,7 @@ struct il_cmd_header {
* There is one exception: uCode sets bit 15 when it originates
* the response/notification, i.e. when the response/notification
* is not a direct response to a command sent by the driver. For
* example, uCode issues
REPLY
_3945_RX when it sends a received frame
* example, uCode issues
N
_3945_RX when it sends a received frame
* to the driver; it is not a direct response to any driver command.
*
* The Linux driver uses the following format:
...
...
@@ -214,7 +214,7 @@ struct il_cmd_header {
/**
* struct il3945_tx_power
*
* Used in
REPLY_TX_PWR_TBL_CMD, REPLY_SCAN_CMD, REPLY
_CHANNEL_SWITCH
* Used in
C_TX_PWR_TBL, C_SCAN, C
_CHANNEL_SWITCH
*
* Each entry contains two values:
* 1) DSP gain (or sometimes called DSP attenuation). This is a fine-grained
...
...
@@ -233,7 +233,7 @@ struct il3945_tx_power {
/**
* struct il3945_power_per_rate
*
* Used in
REPLY_TX_PWR_TBL_CMD, REPLY
_CHANNEL_SWITCH
* Used in
C_TX_PWR_TBL, C
_CHANNEL_SWITCH
*/
struct
il3945_power_per_rate
{
u8
rate
;
/* plcp */
...
...
@@ -245,10 +245,10 @@ struct il3945_power_per_rate {
* iwl4965 rate_n_flags bit fields
*
* rate_n_flags format is used in following iwl4965 commands:
*
REPLY
_RX (response only)
*
REPLY
_RX_MPDU (response only)
*
REPLY
_TX (both command and response)
*
REPLY
_TX_LINK_QUALITY_CMD
*
N
_RX (response only)
*
N
_RX_MPDU (response only)
*
C
_TX (both command and response)
*
C
_TX_LINK_QUALITY_CMD
*
* High-throughput (HT) rate format for bits 7:0 (bit 8 must be "1"):
* 2-0: 0) 6 Mbps
...
...
@@ -336,7 +336,7 @@ struct il3945_power_per_rate {
/**
* union il4965_tx_power_dual_stream
*
* Host format used for
REPLY_TX_PWR_TBL_CMD, REPLY
_CHANNEL_SWITCH
* Host format used for
C_TX_PWR_TBL, C
_CHANNEL_SWITCH
* Use __le32 version (struct tx_power_dual_stream) when building command.
*
* Driver provides radio gain and DSP attenuation settings to device in pairs,
...
...
@@ -360,7 +360,7 @@ union il4965_tx_power_dual_stream {
/**
* struct tx_power_dual_stream
*
* Table entries in
REPLY_TX_PWR_TBL_CMD, REPLY
_CHANNEL_SWITCH
* Table entries in
C_TX_PWR_TBL, C
_CHANNEL_SWITCH
*
* Same format as il_tx_power_dual_stream, but __le32
*/
...
...
@@ -371,7 +371,7 @@ struct tx_power_dual_stream {
/**
* struct il4965_tx_power_db
*
* Entire table within
REPLY_TX_PWR_TBL_CMD, REPLY
_CHANNEL_SWITCH
* Entire table within
C_TX_PWR_TBL, C
_CHANNEL_SWITCH
*/
struct
il4965_tx_power_db
{
struct
tx_power_dual_stream
power_tbl
[
POWER_TBL_NUM_ENTRIES
];
...
...
@@ -387,7 +387,7 @@ struct il4965_tx_power_db {
#define INITIALIZE_SUBTYPE (9)
/*
* ("Initialize")
REPLY
_ALIVE = 0x1 (response only, not a command)
* ("Initialize")
N
_ALIVE = 0x1 (response only, not a command)
*
* uCode issues this "initialize alive" notification once the initialization
* uCode image has completed its work, and is ready to load the runtime image.
...
...
@@ -435,7 +435,7 @@ struct il_init_alive_resp {
/**
*
REPLY
_ALIVE = 0x1 (response only, not a command)
*
N
_ALIVE = 0x1 (response only, not a command)
*
* uCode issues this "alive" notification once the runtime image is ready
* to receive commands from the driver. This is the *second* "alive"
...
...
@@ -526,7 +526,7 @@ struct il_alive_resp {
}
__packed
;
/*
*
REPLY
_ERROR = 0x2 (response only, not a command)
*
N
_ERROR = 0x2 (response only, not a command)
*/
struct
il_error_resp
{
__le32
error_type
;
...
...
@@ -640,7 +640,7 @@ enum {
#define RXON_FILTER_BCON_AWARE_MSK cpu_to_le32(1 << 6)
/**
*
REPLY
_RXON = 0x10 (command, has simple generic response)
*
C
_RXON = 0x10 (command, has simple generic response)
*
* RXON tunes the radio tuner to a service channel, and sets up a number
* of parameters that are used primarily for Rx, but also for Tx operations.
...
...
@@ -653,7 +653,7 @@ enum {
* channel.
*
* NOTE: All RXONs wipe clean the internal txpower table. Driver must
* issue a new
REPLY_TX_PWR_TBL_CMD after each REPLY
_RXON (0x10),
* issue a new
C_TX_PWR_TBL after each C
_RXON (0x10),
* regardless of whether RXON_FILTER_ASSOC_MSK is set.
*/
...
...
@@ -723,7 +723,7 @@ struct il_rxon_cmd {
/*
*
REPLY
_RXON_ASSOC = 0x11 (command, has simple generic response)
*
C
_RXON_ASSOC = 0x11 (command, has simple generic response)
*/
struct
il3945_rxon_assoc_cmd
{
__le32
flags
;
...
...
@@ -749,7 +749,7 @@ struct il4965_rxon_assoc_cmd {
#define IL39_MAX_UCODE_BEACON_INTERVAL 1
/* 1024 */
/*
*
REPLY
_RXON_TIMING = 0x14 (command, has simple generic response)
*
C
_RXON_TIMING = 0x14 (command, has simple generic response)
*/
struct
il_rxon_time_cmd
{
__le64
timestamp
;
...
...
@@ -762,7 +762,7 @@ struct il_rxon_time_cmd {
}
__packed
;
/*
*
REPLY
_CHANNEL_SWITCH = 0x72 (command, has simple generic response)
*
C
_CHANNEL_SWITCH = 0x72 (command, has simple generic response)
*/
struct
il3945_channel_switch_cmd
{
u8
band
;
...
...
@@ -785,7 +785,7 @@ struct il4965_channel_switch_cmd {
}
__packed
;
/*
*
CHANNEL_SWITCH_NOTIFICATION
= 0x73 (notification only, not a command)
*
N_CHANNEL_SWITCH
= 0x73 (notification only, not a command)
*/
struct
il_csa_notification
{
__le16
band
;
...
...
@@ -800,7 +800,7 @@ struct il_csa_notification {
*****************************************************************************/
/**
* struct il_ac_qos -- QOS timing params for
REPLY
_QOS_PARAM
* struct il_ac_qos -- QOS timing params for
C
_QOS_PARAM
* One for each of 4 EDCA access categories in struct il_qosparam_cmd
*
* @cw_min: Contention win, start value in numbers of slots.
...
...
@@ -832,7 +832,7 @@ struct il_ac_qos {
#define AC_NUM 4
/*
*
REPLY
_QOS_PARAM = 0x13 (command, has simple generic response)
*
C
_QOS_PARAM = 0x13 (command, has simple generic response)
*
* This command sets up timings for each of the 4 prioritized EDCA Tx FIFOs
* 0: Background, 1: Best Effort, 2: Video, 3: Voice.
...
...
@@ -936,15 +936,15 @@ struct sta_id_modify {
}
__packed
;
/*
*
REPLY
_ADD_STA = 0x18 (command)
*
C
_ADD_STA = 0x18 (command)
*
* The device contains an internal table of per-station information,
* with info on security keys, aggregation parameters, and Tx rates for
* initial Tx attempt and any retries (4965 devices uses
*
REPLY
_TX_LINK_QUALITY_CMD,
* 3945 uses
REPLY
_RATE_SCALE to set up rate tables).
*
C
_TX_LINK_QUALITY_CMD,
* 3945 uses
C
_RATE_SCALE to set up rate tables).
*
*
REPLY
_ADD_STA sets up the table entry for one station, either creating
*
C
_ADD_STA sets up the table entry for one station, either creating
* a new entry, or modifying a pre-existing one.
*
* NOTE: RXON command (without "associated" bit set) wipes the station table
...
...
@@ -1071,7 +1071,7 @@ struct il_addsta_cmd {
#define ADD_STA_NO_BLOCK_ACK_RESOURCE 0x4
#define ADD_STA_MODIFY_NON_EXIST_STA 0x8
/*
*
REPLY
_ADD_STA = 0x18 (response)
*
C
_ADD_STA = 0x18 (response)
*/
struct
il_add_sta_resp
{
u8
status
;
/* ADD_STA_* */
...
...
@@ -1079,14 +1079,14 @@ struct il_add_sta_resp {
#define REM_STA_SUCCESS_MSK 0x1
/*
*
REPLY
_REM_STA = 0x19 (response)
*
C
_REM_STA = 0x19 (response)
*/
struct
il_rem_sta_resp
{
u8
status
;
}
__packed
;
/*
*
REPLY
_REM_STA = 0x19 (command)
*
C
_REM_STA = 0x19 (command)
*/
struct
il_rem_sta_cmd
{
u8
num_sta
;
/* number of removed stations */
...
...
@@ -1195,7 +1195,7 @@ struct il3945_rx_frame_end {
}
__packed
;
/*
*
REPLY
_3945_RX = 0x1b (response only, not a command)
*
N
_3945_RX = 0x1b (response only, not a command)
*
* NOTE: DO NOT dereference from casts to this structure
* It is provided only for calculating minimum data set size.
...
...
@@ -1226,7 +1226,7 @@ struct il4965_rx_non_cfg_phy {
/*
*
REPLY
_RX = 0xc3 (response only, not a command)
*
N
_RX = 0xc3 (response only, not a command)
* Used only for legacy (non 11n) frames.
*/
struct
il_rx_phy_res
{
...
...
@@ -1254,7 +1254,7 @@ struct il_rx_mpdu_res_start {
* (5)
* Tx Commands & Responses:
*
* Driver must place each
REPLY
_TX command into one of the prioritized Tx
* Driver must place each
C
_TX command into one of the prioritized Tx
* queues in host DRAM, shared between driver and device (see comments for
* SCD registers and Tx/Rx Queues). When the device's Tx scheduler and uCode
* are preparing to transmit, the device pulls the Tx command over the PCI
...
...
@@ -1264,18 +1264,18 @@ struct il_rx_mpdu_res_start {
* uCode handles all timing and protocol related to control frames
* (RTS/CTS/ACK), based on flags in the Tx command. uCode and Tx scheduler
* handle reception of block-acks; uCode updates the host driver via
*
REPLY
_COMPRESSED_BA.
*
N
_COMPRESSED_BA.
*
* uCode handles retrying Tx when an ACK is expected but not received.
* This includes trying lower data rates than the one requested in the Tx
* command, as set up by the
REPLY
_RATE_SCALE (for 3945) or
*
REPLY
_TX_LINK_QUALITY_CMD (4965).
* command, as set up by the
C
_RATE_SCALE (for 3945) or
*
C
_TX_LINK_QUALITY_CMD (4965).
*
* Driver sets up transmit power for various rates via
REPLY_TX_PWR_TBL_CMD
.
* Driver sets up transmit power for various rates via
C_TX_PWR_TBL
.
* This command must be executed after every RXON command, before Tx can occur.
*****************************************************************************/
/*
REPLY
_TX Tx flags field */
/*
C
_TX Tx flags field */
/*
* 1: Use Request-To-Send protocol before this frame.
...
...
@@ -1296,7 +1296,7 @@ struct il_rx_mpdu_res_start {
#define TX_CMD_FLG_ACK_MSK cpu_to_le32(1 << 3)
/* For 4965 devices:
* 1: Use rate scale table (see
REPLY
_TX_LINK_QUALITY_CMD).
* 1: Use rate scale table (see
C
_TX_LINK_QUALITY_CMD).
* Tx command's initial_rate_idx indicates first rate to try;
* uCode walks through table for additional Tx attempts.
* 0: Use Tx rate/MCS from Tx command's rate_n_flags field.
...
...
@@ -1322,7 +1322,7 @@ struct il_rx_mpdu_res_start {
/* 1: uCode overrides sequence control field in MAC header.
* 0: Driver provides sequence control field in MAC header.
* Set this for management frames, non-QOS data frames, non-unicast frames,
* and also in Tx command embedded in
REPLY_SCAN_CMD
for active scans. */
* and also in Tx command embedded in
C_SCAN
for active scans. */
#define TX_CMD_FLG_SEQ_CTL_MSK cpu_to_le32(1 << 13)
/* 1: This frame is non-last MPDU; more fragments are coming.
...
...
@@ -1369,7 +1369,7 @@ struct il_rx_mpdu_res_start {
#define TKIP_ICV_LEN 4
/*
*
REPLY
_TX = 0x1c (command)
*
C
_TX = 0x1c (command)
*/
struct
il3945_tx_cmd
{
...
...
@@ -1434,7 +1434,7 @@ struct il3945_tx_cmd {
}
__packed
;
/*
*
REPLY
_TX = 0x1c (response)
*
C
_TX = 0x1c (response)
*/
struct
il3945_tx_resp
{
u8
failure_rts
;
...
...
@@ -1493,7 +1493,7 @@ struct il_tx_cmd {
u8
sec_ctl
;
/* TX_CMD_SEC_* */
/*
* Index into rate table (see
REPLY
_TX_LINK_QUALITY_CMD) for initial
* Index into rate table (see
C
_TX_LINK_QUALITY_CMD) for initial
* Tx attempt, if TX_CMD_FLG_STA_RATE_MSK is set. Normally "0" for
* data frames, this field may be used to selectively reduce initial
* rate (via non-0 value) for special frames (e.g. management), while
...
...
@@ -1671,7 +1671,7 @@ enum {
#define AGG_TX_STATE_SEQ_NUM_MSK 0xffff0000
/*
*
REPLY
_TX = 0x1c (response)
*
C
_TX = 0x1c (response)
*
* This response may be in one of two slightly different formats, indicated
* by the frame_count field:
...
...
@@ -1735,7 +1735,7 @@ struct il4965_tx_resp {
}
__packed
;
/*
*
REPLY
_COMPRESSED_BA = 0xc5 (response only, not a command)
*
N
_COMPRESSED_BA = 0xc5 (response only, not a command)
*
* Reports Block-Acknowledge from recipient station
*/
...
...
@@ -1754,7 +1754,7 @@ struct il_compressed_ba_resp {
}
__packed
;
/*
*
REPLY_TX_PWR_TBL_CMD
= 0x97 (command, has simple generic response)
*
C_TX_PWR_TBL
= 0x97 (command, has simple generic response)
*
* See details under "TXPOWER" in 4965.h.
*/
...
...
@@ -1777,7 +1777,7 @@ struct il4965_txpowertable_cmd {
/**
* struct il3945_rate_scaling_cmd - Rate Scaling Command & Response
*
*
REPLY
_RATE_SCALE = 0x47 (command, has simple generic response)
*
C
_RATE_SCALE = 0x47 (command, has simple generic response)
*
* NOTE: The table of rates passed to the uCode via the
* RATE_SCALE command sets up the corresponding order of
...
...
@@ -1786,7 +1786,7 @@ struct il4965_txpowertable_cmd {
*
* For example, if you set 9MB (PLCP 0x0f) as the first
* rate in the rate table, the bit mask for that rate
* when passed through ofdm_basic_rates on the
REPLY
_RXON
* when passed through ofdm_basic_rates on the
C
_RXON
* command would be bit 0 (1 << 0)
*/
struct
il3945_rate_scaling_info
{
...
...
@@ -1820,7 +1820,7 @@ struct il3945_rate_scaling_cmd {
/**
* struct il_link_qual_general_params
*
* Used in
REPLY
_TX_LINK_QUALITY_CMD
* Used in
C
_TX_LINK_QUALITY_CMD
*/
struct
il_link_qual_general_params
{
u8
flags
;
...
...
@@ -1863,7 +1863,7 @@ struct il_link_qual_general_params {
/**
* struct il_link_qual_agg_params
*
* Used in
REPLY
_TX_LINK_QUALITY_CMD
* Used in
C
_TX_LINK_QUALITY_CMD
*/
struct
il_link_qual_agg_params
{
...
...
@@ -1892,9 +1892,9 @@ struct il_link_qual_agg_params {
}
__packed
;
/*
*
REPLY
_TX_LINK_QUALITY_CMD = 0x4e (command, has simple generic response)
*
C
_TX_LINK_QUALITY_CMD = 0x4e (command, has simple generic response)
*
* For 4965 devices only; 3945 uses
REPLY
_RATE_SCALE.
* For 4965 devices only; 3945 uses
C
_RATE_SCALE.
*
* Each station in the 4965 device's internal station table has its own table
* of 16
...
...
@@ -1903,7 +1903,7 @@ struct il_link_qual_agg_params {
* one station.
*
* NOTE: Station must already be in 4965 device's station table.
* Use
REPLY
_ADD_STA.
* Use
C
_ADD_STA.
*
* The rate scaling procedures described below work well. Of course, other
* procedures are possible, and may work better for particular environments.
...
...
@@ -2117,7 +2117,7 @@ struct il_link_quality_cmd {
#define BT_MAX_KILL_DEF (0x5)
/*
*
REPLY
_BT_CONFIG = 0x9b (command, has simple generic response)
*
C
_BT_CONFIG = 0x9b (command, has simple generic response)
*
* 3945 and 4965 devices support hardware handshake with Bluetooth device on
* same platform. Bluetooth device alerts wireless device when it will Tx;
...
...
@@ -2159,7 +2159,7 @@ struct il_measure_channel {
}
__packed
;
/*
*
REPLY_SPECTRUM_MEASUREMENT_CMD
= 0x74 (command)
*
C_SPECTRUM_MEASUREMENT
= 0x74 (command)
*/
struct
il_spectrum_cmd
{
__le16
len
;
/* number of bytes starting from token */
...
...
@@ -2178,7 +2178,7 @@ struct il_spectrum_cmd {
}
__packed
;
/*
*
REPLY_SPECTRUM_MEASUREMENT_CMD
= 0x74 (response)
*
C_SPECTRUM_MEASUREMENT
= 0x74 (response)
*/
struct
il_spectrum_resp
{
u8
token
;
...
...
@@ -2228,7 +2228,7 @@ enum il_measure_type {
};
/*
*
SPECTRUM_MEASURE_NOTIFICATION
= 0x75 (notification only, not a command)
*
N_SPECTRUM_MEASUREMENT
= 0x75 (notification only, not a command)
*/
struct
il_spectrum_notification
{
u8
id
;
/* measurement id -- 0 or 1 */
...
...
@@ -2263,7 +2263,7 @@ struct il_spectrum_notification {
* struct il_powertable_cmd - Power Table Command
* @flags: See below:
*
*
POWER_TBL_CMD
= 0x77 (command, has simple generic response)
*
C_POWER_TBL
= 0x77 (command, has simple generic response)
*
* PM allow:
* bit 0 - '0' Driver not allow power management
...
...
@@ -2318,7 +2318,7 @@ struct il_powertable_cmd {
}
__packed
;
/*
*
PM_SLEEP_NOTIFICATION
= 0x7A (notification only, not a command)
*
N_PM_SLEEP
= 0x7A (notification only, not a command)
* all devices identical.
*/
struct
il_sleep_notification
{
...
...
@@ -2346,7 +2346,7 @@ enum {
};
/*
*
CARD_STATE_NOTIFICATION
= 0xa1 (notification only, not a command)
*
N_CARD_STATE
= 0xa1 (notification only, not a command)
*/
struct
il_card_state_notif
{
__le32
flags
;
...
...
@@ -2373,7 +2373,7 @@ struct il_ct_kill_config {
#define SCAN_CHANNEL_TYPE_ACTIVE cpu_to_le32(1)
/**
* struct il_scan_channel - entry in
REPLY_SCAN_CMD
channel table
* struct il_scan_channel - entry in
C_SCAN
channel table
*
* One for each channel in the scan list.
* Each channel can independently select:
...
...
@@ -2431,7 +2431,7 @@ struct il_scan_channel {
/**
* struct il_ssid_ie - directed scan network information element
*
* Up to 20 of these may appear in
REPLY_SCAN_CMD
(Note: Only 4 are in
* Up to 20 of these may appear in
C_SCAN
(Note: Only 4 are in
* 3945 SCAN api), selected by "type" bit field in struct il_scan_channel;
* each channel may select different ssids from among the 20 (4) entries.
* SSID IEs get transmitted in reverse order of entry.
...
...
@@ -2452,7 +2452,7 @@ struct il_ssid_ie {
#define IL_MAX_CMD_SIZE 4096
/*
*
REPLY_SCAN_CMD
= 0x80 (command)
*
C_SCAN
= 0x80 (command)
*
* The hardware scan command is very powerful; the driver can set it up to
* maintain (relatively) normal network traffic while doing a scan in the
...
...
@@ -2542,7 +2542,7 @@ struct il3945_scan_cmd {
*
* NOTE: Only one band of channels can be scanned per pass. You
* must not mix 2.4GHz channels and 5.2GHz channels, and you must wait
* for one scan to complete (i.e. receive
SCAN_COMPLETE_NOTIFICATION
)
* for one scan to complete (i.e. receive
N_SCAN_COMPLETE
)
* before requesting another scan.
*/
u8
data
[
0
];
...
...
@@ -2586,7 +2586,7 @@ struct il_scan_cmd {
*
* NOTE: Only one band of channels can be scanned per pass. You
* must not mix 2.4GHz channels and 5.2GHz channels, and you must wait
* for one scan to complete (i.e. receive
SCAN_COMPLETE_NOTIFICATION
)
* for one scan to complete (i.e. receive
N_SCAN_COMPLETE
)
* before requesting another scan.
*/
u8
data
[
0
];
...
...
@@ -2598,14 +2598,14 @@ struct il_scan_cmd {
#define ABORT_STATUS 0x2
/*
*
REPLY_SCAN_CMD
= 0x80 (response)
*
C_SCAN
= 0x80 (response)
*/
struct
il_scanreq_notification
{
__le32
status
;
/* 1: okay, 2: cannot fulfill request */
}
__packed
;
/*
*
SCAN_START_NOTIFICATION
= 0x82 (notification only, not a command)
*
N_SCAN_START
= 0x82 (notification only, not a command)
*/
struct
il_scanstart_notification
{
__le32
tsf_low
;
...
...
@@ -2628,7 +2628,7 @@ struct il_scanstart_notification {
#define NUMBER_OF_STATS 1
/* first __le32 is good CRC */
/*
*
SCAN_RESULTS_NOTIFICATION
= 0x83 (notification only, not a command)
*
N_SCAN_RESULTS
= 0x83 (notification only, not a command)
*/
struct
il_scanresults_notification
{
u8
channel
;
...
...
@@ -2641,7 +2641,7 @@ struct il_scanresults_notification {
}
__packed
;
/*
*
SCAN_COMPLETE_NOTIFICATION
= 0x84 (notification only, not a command)
*
N_SCAN_COMPLETE
= 0x84 (notification only, not a command)
*/
struct
il_scancomplete_notification
{
u8
scanned_channels
;
...
...
@@ -2664,7 +2664,7 @@ enum il_ibss_manager {
};
/*
*
BEACON_NOTIFICATI
ON = 0x90 (notification only, not a command)
*
N_BEAC
ON = 0x90 (notification only, not a command)
*/
struct
il3945_beacon_notif
{
...
...
@@ -2682,7 +2682,7 @@ struct il4965_beacon_notif {
}
__packed
;
/*
*
REPLY_TX_BEACON
= 0x91 (command, has simple generic response)
*
C_TX_BEACON
= 0x91 (command, has simple generic response)
*/
struct
il3945_tx_beacon_cmd
{
...
...
@@ -2963,19 +2963,19 @@ struct stats_general {
#define UCODE_STATS_NARROW_BAND_MSK (0x1 << 2)
/*
*
REPLY_STATS_CMD
= 0x9c,
*
C_STATS
= 0x9c,
* all devices identical.
*
* This command triggers an immediate response containing uCode stats.
* The response is in the same format as
STATS_NOTIFICATION
0x9d, below.
* The response is in the same format as
N_STATS
0x9d, below.
*
* If the CLEAR_STATS configuration flag is set, uCode will clear its
* internal copy of the stats (counters) after issuing the response.
* This flag does not affect
STATS_NOTIFICATION
s after beacons (see below).
* This flag does not affect
N_STATS
s after beacons (see below).
*
* If the DISABLE_NOTIF configuration flag is set, uCode will not issue
*
STATS_NOTIFICATION
s after received beacons (see below). This flag
* does not affect the response to the
REPLY_STATS_CMD
0x9c itself.
*
N_STATS
s after received beacons (see below). This flag
* does not affect the response to the
C_STATS
0x9c itself.
*/
#define IL_STATS_CONF_CLEAR_STATS cpu_to_le32(0x1)
/* see above */
#define IL_STATS_CONF_DISABLE_NOTIF cpu_to_le32(0x2)
/* see above */
...
...
@@ -2984,14 +2984,14 @@ struct il_stats_cmd {
}
__packed
;
/*
*
STATS_NOTIFICATION
= 0x9d (notification only, not a command)
*
N_STATS
= 0x9d (notification only, not a command)
*
* By default, uCode issues this notification after receiving a beacon
* while associated. To disable this behavior, set DISABLE_NOTIF flag in the
*
REPLY_STATS_CMD
0x9c, above.
*
C_STATS
0x9c, above.
*
* Statistics counters continue to increment beacon after beacon, but are
* cleared when changing channels or when driver issues
REPLY_STATS_CMD
* cleared when changing channels or when driver issues
C_STATS
* 0x9c with CLEAR_STATS bit set (see above).
*
* uCode also issues this notification during scans. uCode clears stats
...
...
@@ -3016,9 +3016,9 @@ struct il_notif_stats {
}
__packed
;
/*
*
MISSED_BEACONS_NOTIFICATION
= 0xa2 (notification only, not a command)
*
N_MISSED_BEACONS
= 0xa2 (notification only, not a command)
*
* uCode send
MISSED_BEACONS_NOTIFICATION
to driver when detect beacon missed
* uCode send
N_MISSED_BEACONS
to driver when detect beacon missed
* in regardless of how many missed beacons, which mean when driver receive the
* notification, inside the command, it can find all the beacons information
* which include number of total missed beacons, number of consecutive missed
...
...
@@ -3062,7 +3062,7 @@ struct il_missed_beacon_notif {
*****************************************************************************/
/**
*
SENSITIVITY_CMD
= 0xa8 (command, has simple generic response)
*
C_SENSITIVITY
= 0xa8 (command, has simple generic response)
*
* This command sets up the Rx signal detector for a sensitivity level that
* is high enough to lock onto all signals within the associated network,
...
...
@@ -3076,7 +3076,7 @@ struct il_missed_beacon_notif {
* time listening, not transmitting). Driver must adjust sensitivity so that
* the ratio of actual false alarms to actual Rx time falls within this range.
*
* While associated, uCode delivers
STATS_NOTIFICATION
s after each
* While associated, uCode delivers
N_STATS
s after each
* received beacon. These provide information to the driver to analyze the
* sensitivity. Don't analyze stats that come in from scanning, or any
* other non-associated-network source. Pertinent stats include:
...
...
@@ -3217,7 +3217,7 @@ struct il_missed_beacon_notif {
*/
/*
* Table entries in
SENSITIVITY_CMD
(struct il_sensitivity_cmd)
* Table entries in
C_SENSITIVITY
(struct il_sensitivity_cmd)
*/
#define HD_TBL_SIZE (11)
/* number of entries */
#define HD_MIN_ENERGY_CCK_DET_IDX (0)
/* table idxes */
...
...
@@ -3233,8 +3233,8 @@ struct il_missed_beacon_notif {
#define HD_OFDM_ENERGY_TH_IN_IDX (10)
/* Control field in struct il_sensitivity_cmd */
#define
SENSITIVITY_CMD
_CONTROL_DEFAULT_TBL cpu_to_le16(0)
#define
SENSITIVITY_CMD
_CONTROL_WORK_TBL cpu_to_le16(1)
#define
C_SENSITIVITY
_CONTROL_DEFAULT_TBL cpu_to_le16(0)
#define
C_SENSITIVITY
_CONTROL_WORK_TBL cpu_to_le16(1)
/**
* struct il_sensitivity_cmd
...
...
@@ -3250,12 +3250,12 @@ struct il_sensitivity_cmd {
/**
*
REPLY_PHY_CALIBRATION_CMD
= 0xb0 (command, has simple generic response)
*
C_PHY_CALIBRATION
= 0xb0 (command, has simple generic response)
*
* This command sets the relative gains of 4965 device's 3 radio receiver chains.
*
* After the first association, driver should accumulate signal and noise
* stats from the
STATS_NOTIFICATION
s that follow the first 20
* stats from the
N_STATS
s that follow the first 20
* beacons from the associated network (don't collect stats that come
* in from scanning, or any other non-network source).
*
...
...
@@ -3338,7 +3338,7 @@ struct il_calib_diff_gain_cmd {
/*
* LEDs Command & Response
*
REPLY_LEDS_CMD
= 0x48 (command, has simple generic response)
*
C_LEDS
= 0x48 (command, has simple generic response)
*
* For each of 3 possible LEDs (Activity/Link/Tech, selected by "id" field),
* this command turns it on or off, or sets up a periodic blinking cycle.
...
...
drivers/net/wireless/iwlegacy/iwl-core.c
浏览文件 @
4d69c752
...
...
@@ -1165,7 +1165,7 @@ void il_send_bt_config(struct il_priv *il)
D_INFO
(
"BT coex %s
\n
"
,
(
bt_cmd
.
flags
==
BT_COEX_DISABLE
)
?
"disable"
:
"active"
);
if
(
il_send_cmd_pdu
(
il
,
REPLY
_BT_CONFIG
,
if
(
il_send_cmd_pdu
(
il
,
C
_BT_CONFIG
,
sizeof
(
struct
il_bt_cmd
),
&
bt_cmd
))
IL_ERR
(
"failed to send BT Coex Config
\n
"
);
}
...
...
@@ -1179,11 +1179,11 @@ int il_send_stats_request(struct il_priv *il, u8 flags, bool clear)
};
if
(
flags
&
CMD_ASYNC
)
return
il_send_cmd_pdu_async
(
il
,
REPLY_STATS_CMD
,
return
il_send_cmd_pdu_async
(
il
,
C_STATS
,
sizeof
(
struct
il_stats_cmd
),
&
stats_cmd
,
NULL
);
else
return
il_send_cmd_pdu
(
il
,
REPLY_STATS_CMD
,
return
il_send_cmd_pdu
(
il
,
C_STATS
,
sizeof
(
struct
il_stats_cmd
),
&
stats_cmd
);
}
...
...
drivers/net/wireless/iwlegacy/iwl-debugfs.c
浏览文件 @
4d69c752
...
...
@@ -554,7 +554,7 @@ static ssize_t il_dbgfs_interrupt_read(struct file *file,
pos
+=
scnprintf
(
buf
+
pos
,
bufsz
-
pos
,
"Rx command responses:
\t\t
%u
\n
"
,
il
->
isr_stats
.
rx
);
for
(
cnt
=
0
;
cnt
<
REPLY
_MAX
;
cnt
++
)
{
for
(
cnt
=
0
;
cnt
<
IL_CN
_MAX
;
cnt
++
)
{
if
(
il
->
isr_stats
.
rx_handlers
[
cnt
]
>
0
)
pos
+=
scnprintf
(
buf
+
pos
,
bufsz
-
pos
,
"
\t
Rx handler[%36s]:
\t\t
%u
\n
"
,
...
...
drivers/net/wireless/iwlegacy/iwl-dev.h
浏览文件 @
4d69c752
...
...
@@ -383,8 +383,8 @@ struct il_rx_queue {
* @bitmap1: High order, one bit for each frame pending ACK in Tx win
* @rate_n_flags: Rate at which Tx was attempted
*
* If
REPLY
_TX indicates that aggregation was attempted, driver must wait
* for block ack (
REPLY
_COMPRESSED_BA). This struct stores tx reply info
* If
C
_TX indicates that aggregation was attempted, driver must wait
* for block ack (
N
_COMPRESSED_BA). This struct stores tx reply info
* until block ack arrives.
*/
struct
il_ht_agg
{
...
...
@@ -813,7 +813,7 @@ struct isr_stats {
u32
ctkill
;
u32
wakeup
;
u32
rx
;
u32
rx_handlers
[
REPLY
_MAX
];
u32
rx_handlers
[
IL_CN
_MAX
];
u32
tx
;
u32
unhandled
;
};
...
...
@@ -968,7 +968,7 @@ struct il_priv {
enum
ieee80211_band
band
;
int
alloc_rxb_page
;
void
(
*
rx_handlers
[
REPLY
_MAX
])(
struct
il_priv
*
il
,
void
(
*
rx_handlers
[
IL_CN
_MAX
])(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
struct
ieee80211_supported_band
bands
[
IEEE80211_NUM_BANDS
];
...
...
drivers/net/wireless/iwlegacy/iwl-hcmd.c
浏览文件 @
4d69c752
...
...
@@ -40,47 +40,47 @@
const
char
*
il_get_cmd_string
(
u8
cmd
)
{
switch
(
cmd
)
{
IL_CMD
(
REPLY
_ALIVE
);
IL_CMD
(
REPLY
_ERROR
);
IL_CMD
(
REPLY
_RXON
);
IL_CMD
(
REPLY
_RXON_ASSOC
);
IL_CMD
(
REPLY
_QOS_PARAM
);
IL_CMD
(
REPLY
_RXON_TIMING
);
IL_CMD
(
REPLY
_ADD_STA
);
IL_CMD
(
REPLY_REMOVE
_STA
);
IL_CMD
(
REPLY
_WEPKEY
);
IL_CMD
(
REPLY
_3945_RX
);
IL_CMD
(
REPLY
_TX
);
IL_CMD
(
REPLY
_RATE_SCALE
);
IL_CMD
(
REPLY_LEDS_CMD
);
IL_CMD
(
REPLY
_TX_LINK_QUALITY_CMD
);
IL_CMD
(
REPLY
_CHANNEL_SWITCH
);
IL_CMD
(
CHANNEL_SWITCH_NOTIFICATION
);
IL_CMD
(
REPLY_SPECTRUM_MEASUREMENT_CMD
);
IL_CMD
(
SPECTRUM_MEASURE_NOTIFICATION
);
IL_CMD
(
POWER_TBL_CMD
);
IL_CMD
(
PM_SLEEP_NOTIFICATION
);
IL_CMD
(
PM_DEBUG_STATISTIC_NOTIFIC
);
IL_CMD
(
REPLY_SCAN_CMD
);
IL_CMD
(
REPLY_SCAN_ABORT_CMD
);
IL_CMD
(
SCAN_START_NOTIFICATION
);
IL_CMD
(
SCAN_RESULTS_NOTIFICATION
);
IL_CMD
(
SCAN_COMPLETE_NOTIFICATION
);
IL_CMD
(
BEACON_NOTIFICATI
ON
);
IL_CMD
(
REPLY
_TX_BEACON
);
IL_CMD
(
REPLY_TX_PWR_TBL_CMD
);
IL_CMD
(
REPLY
_BT_CONFIG
);
IL_CMD
(
REPLY_STATS_CMD
);
IL_CMD
(
STATS_NOTIFICATION
);
IL_CMD
(
CARD_STATE_NOTIFICATION
);
IL_CMD
(
MISSED_BEACONS_NOTIFICATION
);
IL_CMD
(
REPLY_CT_KILL_CONFIG_CMD
);
IL_CMD
(
SENSITIVITY_CMD
);
IL_CMD
(
REPLY_PHY_CALIBRATION_CMD
);
IL_CMD
(
REPLY_RX_PHY_CMD
);
IL_CMD
(
REPLY_RX_MPDU_CMD
);
IL_CMD
(
REPLY
_RX
);
IL_CMD
(
REPLY
_COMPRESSED_BA
);
IL_CMD
(
N
_ALIVE
);
IL_CMD
(
N
_ERROR
);
IL_CMD
(
C
_RXON
);
IL_CMD
(
C
_RXON_ASSOC
);
IL_CMD
(
C
_QOS_PARAM
);
IL_CMD
(
C
_RXON_TIMING
);
IL_CMD
(
C
_ADD_STA
);
IL_CMD
(
C_REM
_STA
);
IL_CMD
(
C
_WEPKEY
);
IL_CMD
(
N
_3945_RX
);
IL_CMD
(
C
_TX
);
IL_CMD
(
C
_RATE_SCALE
);
IL_CMD
(
C_LEDS
);
IL_CMD
(
C
_TX_LINK_QUALITY_CMD
);
IL_CMD
(
C
_CHANNEL_SWITCH
);
IL_CMD
(
N_CHANNEL_SWITCH
);
IL_CMD
(
C_SPECTRUM_MEASUREMENT
);
IL_CMD
(
N_SPECTRUM_MEASUREMENT
);
IL_CMD
(
C_POWER_TBL
);
IL_CMD
(
N_PM_SLEEP
);
IL_CMD
(
N_PM_DEBUG_STATS
);
IL_CMD
(
C_SCAN
);
IL_CMD
(
C_SCAN_ABORT
);
IL_CMD
(
N_SCAN_START
);
IL_CMD
(
N_SCAN_RESULTS
);
IL_CMD
(
N_SCAN_COMPLETE
);
IL_CMD
(
N_BEAC
ON
);
IL_CMD
(
C
_TX_BEACON
);
IL_CMD
(
C_TX_PWR_TBL
);
IL_CMD
(
C
_BT_CONFIG
);
IL_CMD
(
C_STATS
);
IL_CMD
(
N_STATS
);
IL_CMD
(
N_CARD_STATE
);
IL_CMD
(
N_MISSED_BEACONS
);
IL_CMD
(
C_CT_KILL_CONFIG
);
IL_CMD
(
C_SENSITIVITY
);
IL_CMD
(
C_PHY_CALIBRATION
);
IL_CMD
(
N_RX_PHY
);
IL_CMD
(
N_RX_MPDU
);
IL_CMD
(
N
_RX
);
IL_CMD
(
N
_COMPRESSED_BA
);
default:
return
"UNKNOWN"
;
...
...
@@ -102,8 +102,8 @@ static void il_generic_cmd_callback(struct il_priv *il,
#ifdef CONFIG_IWLEGACY_DEBUG
switch
(
cmd
->
hdr
.
cmd
)
{
case
REPLY
_TX_LINK_QUALITY_CMD
:
case
SENSITIVITY_CMD
:
case
C
_TX_LINK_QUALITY_CMD
:
case
C_SENSITIVITY
:
D_HC_DUMP
(
"back from %s (0x%08X)
\n
"
,
il_get_cmd_string
(
cmd
->
hdr
.
cmd
),
pkt
->
hdr
.
flags
);
break
;
...
...
drivers/net/wireless/iwlegacy/iwl-power.c
浏览文件 @
4d69c752
...
...
@@ -88,7 +88,7 @@ il_set_power(struct il_priv *il, struct il_powertable_cmd *cmd)
le32_to_cpu
(
cmd
->
sleep_interval
[
3
]),
le32_to_cpu
(
cmd
->
sleep_interval
[
4
]));
return
il_send_cmd_pdu
(
il
,
POWER_TBL_CMD
,
return
il_send_cmd_pdu
(
il
,
C_POWER_TBL
,
sizeof
(
struct
il_powertable_cmd
),
cmd
);
}
...
...
drivers/net/wireless/iwlegacy/iwl-prph.h
浏览文件 @
4d69c752
...
...
@@ -189,7 +189,7 @@
* procedure.
*
* This save/restore method is mostly for autonomous power management during
* normal operation (result of
POWER_TBL_CMD
). Platform suspend/resume and
* normal operation (result of
C_POWER_TBL
). Platform suspend/resume and
* RFKILL should use complete restarts (with total re-initialization) of uCode,
* allowing total shutdown (including BSM memory).
*
...
...
drivers/net/wireless/iwlegacy/iwl-scan.c
浏览文件 @
4d69c752
...
...
@@ -59,7 +59,7 @@ static int il_send_scan_abort(struct il_priv *il)
int
ret
;
struct
il_rx_pkt
*
pkt
;
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY_SCAN_ABORT_CMD
,
.
id
=
C_SCAN_ABORT
,
.
flags
=
CMD_WANT_SKB
,
};
...
...
@@ -181,7 +181,7 @@ int il_scan_cancel_timeout(struct il_priv *il, unsigned long ms)
}
EXPORT_SYMBOL
(
il_scan_cancel_timeout
);
/* Service response to
REPLY_SCAN_CMD
(0x80) */
/* Service response to
C_SCAN
(0x80) */
static
void
il_rx_reply_scan
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
)
{
...
...
@@ -194,7 +194,7 @@ static void il_rx_reply_scan(struct il_priv *il,
#endif
}
/* Service
SCAN_START_NOTIFICATION
(0x82) */
/* Service
N_SCAN_START
(0x82) */
static
void
il_rx_scan_start_notif
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
)
{
...
...
@@ -212,7 +212,7 @@ static void il_rx_scan_start_notif(struct il_priv *il,
notif
->
status
,
notif
->
beacon_timer
);
}
/* Service
SCAN_RESULTS_NOTIFICATION
(0x83) */
/* Service
N_SCAN_RESULTS
(0x83) */
static
void
il_rx_scan_results_notif
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
)
{
...
...
@@ -234,7 +234,7 @@ static void il_rx_scan_results_notif(struct il_priv *il,
#endif
}
/* Service
SCAN_COMPLETE_NOTIFICATION
(0x84) */
/* Service
N_SCAN_COMPLETE
(0x84) */
static
void
il_rx_scan_complete_notif
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
)
{
...
...
@@ -263,12 +263,12 @@ static void il_rx_scan_complete_notif(struct il_priv *il,
void
il_setup_rx_scan_handlers
(
struct
il_priv
*
il
)
{
/* scan handlers */
il
->
rx_handlers
[
REPLY_SCAN_CMD
]
=
il_rx_reply_scan
;
il
->
rx_handlers
[
SCAN_START_NOTIFICATION
]
=
il
->
rx_handlers
[
C_SCAN
]
=
il_rx_reply_scan
;
il
->
rx_handlers
[
N_SCAN_START
]
=
il_rx_scan_start_notif
;
il
->
rx_handlers
[
SCAN_RESULTS_NOTIFICATION
]
=
il
->
rx_handlers
[
N_SCAN_RESULTS
]
=
il_rx_scan_results_notif
;
il
->
rx_handlers
[
SCAN_COMPLETE_NOTIFICATION
]
=
il
->
rx_handlers
[
N_SCAN_COMPLETE
]
=
il_rx_scan_complete_notif
;
}
EXPORT_SYMBOL
(
il_setup_rx_scan_handlers
);
...
...
drivers/net/wireless/iwlegacy/iwl-sta.c
浏览文件 @
4d69c752
...
...
@@ -67,7 +67,7 @@ static int il_process_add_sta_resp(struct il_priv *il,
int
ret
=
-
EIO
;
if
(
pkt
->
hdr
.
flags
&
IL_CMD_FAILED_MSK
)
{
IL_ERR
(
"Bad return from
REPLY
_ADD_STA (0x%08X)
\n
"
,
IL_ERR
(
"Bad return from
C
_ADD_STA (0x%08X)
\n
"
,
pkt
->
hdr
.
flags
);
return
ret
;
}
...
...
@@ -79,7 +79,7 @@ static int il_process_add_sta_resp(struct il_priv *il,
switch
(
pkt
->
u
.
add_sta
.
status
)
{
case
ADD_STA_SUCCESS_MSK
:
D_INFO
(
"
REPLY
_ADD_STA PASSED
\n
"
);
D_INFO
(
"
C
_ADD_STA PASSED
\n
"
);
il_sta_ucode_activate
(
il
,
sta_id
);
ret
=
0
;
break
;
...
...
@@ -97,7 +97,7 @@ static int il_process_add_sta_resp(struct il_priv *il,
sta_id
);
break
;
default:
D_ASSOC
(
"Received
REPLY
_ADD_STA:(0x%08X)
\n
"
,
D_ASSOC
(
"Received
C
_ADD_STA:(0x%08X)
\n
"
,
pkt
->
u
.
add_sta
.
status
);
break
;
}
...
...
@@ -142,7 +142,7 @@ int il_send_add_sta(struct il_priv *il,
int
ret
=
0
;
u8
data
[
sizeof
(
*
sta
)];
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY
_ADD_STA
,
.
id
=
C
_ADD_STA
,
.
flags
=
flags
,
.
data
=
data
,
};
...
...
@@ -290,7 +290,7 @@ u8 il_prep_station(struct il_priv *il, struct il_rxon_context *ctx,
sta_id
,
addr
);
il
->
num_stations
++
;
/* Set up the
REPLY
_ADD_STA command to send to device */
/* Set up the
C
_ADD_STA command to send to device */
memset
(
&
station
->
sta
,
0
,
sizeof
(
struct
il_addsta_cmd
));
memcpy
(
station
->
sta
.
sta
.
addr
,
addr
,
ETH_ALEN
);
station
->
sta
.
mode
=
0
;
...
...
@@ -421,7 +421,7 @@ static int il_send_remove_station(struct il_priv *il,
struct
il_rem_sta_cmd
rm_sta_cmd
;
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY_REMOVE
_STA
,
.
id
=
C_REM
_STA
,
.
len
=
sizeof
(
struct
il_rem_sta_cmd
),
.
flags
=
CMD_SYNC
,
.
data
=
&
rm_sta_cmd
,
...
...
@@ -440,7 +440,7 @@ static int il_send_remove_station(struct il_priv *il,
pkt
=
(
struct
il_rx_pkt
*
)
cmd
.
reply_page
;
if
(
pkt
->
hdr
.
flags
&
IL_CMD_FAILED_MSK
)
{
IL_ERR
(
"Bad return from
REPLY_REMOVE
_STA (0x%08X)
\n
"
,
IL_ERR
(
"Bad return from
C_REM
_STA (0x%08X)
\n
"
,
pkt
->
hdr
.
flags
);
ret
=
-
EIO
;
}
...
...
@@ -454,11 +454,11 @@ static int il_send_remove_station(struct il_priv *il,
spin_unlock_irqrestore
(
&
il
->
sta_lock
,
flags_spin
);
}
D_ASSOC
(
"
REPLY_REMOVE
_STA PASSED
\n
"
);
D_ASSOC
(
"
C_REM
_STA PASSED
\n
"
);
break
;
default:
ret
=
-
EIO
;
IL_ERR
(
"
REPLY_REMOVE
_STA failed
\n
"
);
IL_ERR
(
"
C_REM
_STA failed
\n
"
);
break
;
}
}
...
...
@@ -753,7 +753,7 @@ int il_send_lq_cmd(struct il_priv *il, struct il_rxon_context *ctx,
unsigned
long
flags_spin
;
struct
il_host_cmd
cmd
=
{
.
id
=
REPLY
_TX_LINK_QUALITY_CMD
,
.
id
=
C
_TX_LINK_QUALITY_CMD
,
.
len
=
sizeof
(
struct
il_link_quality_cmd
),
.
flags
=
flags
,
.
data
=
lq
,
...
...
drivers/net/wireless/iwlegacy/iwl-tx.c
浏览文件 @
4d69c752
...
...
@@ -509,8 +509,8 @@ int il_enqueue_hcmd(struct il_priv *il, struct il_host_cmd *cmd)
#ifdef CONFIG_IWLEGACY_DEBUG
switch
(
out_cmd
->
hdr
.
cmd
)
{
case
REPLY
_TX_LINK_QUALITY_CMD
:
case
SENSITIVITY_CMD
:
case
C
_TX_LINK_QUALITY_CMD
:
case
C_SENSITIVITY
:
D_HC_DUMP
(
"Sending command %s (#%x), seq: 0x%04X, "
"%d bytes at %d[%d]:%d
\n
"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录