Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
af038f40
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
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看板
提交
af038f40
编写于
8月 30, 2011
作者:
S
Stanislaw Gruszka
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
iwlegacy: move iwl-4965-{,hw,debugfs,calib}.h to 4965.h
Signed-off-by:
N
Stanislaw Gruszka
<
sgruszka@redhat.com
>
上级
8f29b456
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
277 addition
and
477 deletion
+277
-477
drivers/net/wireless/iwlegacy/4965-calib.c
drivers/net/wireless/iwlegacy/4965-calib.c
+1
-1
drivers/net/wireless/iwlegacy/4965-debug.c
drivers/net/wireless/iwlegacy/4965-debug.c
+3
-2
drivers/net/wireless/iwlegacy/4965-mac.c
drivers/net/wireless/iwlegacy/4965-mac.c
+7
-3
drivers/net/wireless/iwlegacy/4965-rs.c
drivers/net/wireless/iwlegacy/4965-rs.c
+1
-1
drivers/net/wireless/iwlegacy/4965.c
drivers/net/wireless/iwlegacy/4965.c
+23
-3
drivers/net/wireless/iwlegacy/4965.h
drivers/net/wireless/iwlegacy/4965.h
+235
-42
drivers/net/wireless/iwlegacy/iwl-4965-calib.h
drivers/net/wireless/iwlegacy/iwl-4965-calib.h
+0
-75
drivers/net/wireless/iwlegacy/iwl-4965-debugfs.h
drivers/net/wireless/iwlegacy/iwl-4965-debugfs.h
+0
-59
drivers/net/wireless/iwlegacy/iwl-4965.h
drivers/net/wireless/iwlegacy/iwl-4965.h
+0
-284
drivers/net/wireless/iwlegacy/iwl-commands.h
drivers/net/wireless/iwlegacy/iwl-commands.h
+2
-2
drivers/net/wireless/iwlegacy/iwl-dev.h
drivers/net/wireless/iwlegacy/iwl-dev.h
+2
-2
drivers/net/wireless/iwlegacy/iwl-eeprom.h
drivers/net/wireless/iwlegacy/iwl-eeprom.h
+1
-1
drivers/net/wireless/iwlegacy/iwl-prph.h
drivers/net/wireless/iwlegacy/iwl-prph.h
+1
-1
drivers/net/wireless/iwlegacy/iwl-tx.c
drivers/net/wireless/iwlegacy/iwl-tx.c
+1
-1
未找到文件。
drivers/net/wireless/iwlegacy/4965-calib.c
浏览文件 @
af038f40
...
...
@@ -65,7 +65,7 @@
#include "iwl-dev.h"
#include "iwl-core.h"
#include "
iwl-4965-calib
.h"
#include "
4965
.h"
/*****************************************************************************
* INIT calibrations framework
...
...
drivers/net/wireless/iwlegacy/4965-debug.c
浏览文件 @
af038f40
...
...
@@ -25,8 +25,9 @@
* Intel Linux Wireless <ilw@linux.intel.com>
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
*****************************************************************************/
#include "iwl-4965.h"
#include "iwl-4965-debugfs.h"
#include "iwl-dev.h"
#include "iwl-core.h"
#include "4965.h"
static
const
char
*
fmt_value
=
" %-30s %10u
\n
"
;
static
const
char
*
fmt_table
=
" %-30s %10u %10u %10u %10u
\n
"
;
...
...
drivers/net/wireless/iwlegacy/4965-mac.c
浏览文件 @
af038f40
...
...
@@ -56,8 +56,7 @@
#include "iwl-io.h"
#include "iwl-helpers.h"
#include "iwl-sta.h"
#include "iwl-4965-calib.h"
#include "iwl-4965.h"
#include "4965.h"
/******************************************************************************
...
...
@@ -820,6 +819,11 @@ static int il4965_get_channels_for_scan(struct il_priv *il,
return
added
;
}
static
inline
u32
il4965_ant_idx_to_flags
(
u8
ant_idx
)
{
return
BIT
(
ant_idx
)
<<
RATE_MCS_ANT_POS
;
}
int
il4965_request_scan
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
)
{
struct
il_host_cmd
cmd
=
{
...
...
@@ -1434,7 +1438,7 @@ void il4965_reply_stats(struct il_priv *il,
* mapping. This is implemented here.
*
* Due to the way hw queues are set up (by the hw specific modules like
*
iwl-
4965.c), the AC->hw queue mapping is the identity
* 4965.c), the AC->hw queue mapping is the identity
* mapping.
*/
...
...
drivers/net/wireless/iwlegacy/4965-rs.c
浏览文件 @
af038f40
...
...
@@ -38,7 +38,7 @@
#include "iwl-dev.h"
#include "iwl-sta.h"
#include "iwl-core.h"
#include "
iwl-
4965.h"
#include "4965.h"
#define IL4965_RS_NAME "iwl-4965-rs"
...
...
drivers/net/wireless/iwlegacy/4965.c
浏览文件 @
af038f40
...
...
@@ -42,10 +42,8 @@
#include "iwl-core.h"
#include "iwl-io.h"
#include "iwl-helpers.h"
#include "iwl-4965-calib.h"
#include "iwl-sta.h"
#include "iwl-4965.h"
#include "iwl-4965-debugfs.h"
#include "4965.h"
#define IL_AC_UNSET -1
...
...
@@ -1829,6 +1827,28 @@ static inline u32 il4965_get_scd_ssn(struct il4965_tx_resp *tx_resp)
return
le32_to_cpup
(
&
tx_resp
->
u
.
status
+
tx_resp
->
frame_count
)
&
MAX_SN
;
}
static
inline
u32
il4965_tx_status_to_mac80211
(
u32
status
)
{
status
&=
TX_STATUS_MSK
;
switch
(
status
)
{
case
TX_STATUS_SUCCESS
:
case
TX_STATUS_DIRECT_DONE
:
return
IEEE80211_TX_STAT_ACK
;
case
TX_STATUS_FAIL_DEST_PS
:
return
IEEE80211_TX_STAT_TX_FILTERED
;
default:
return
0
;
}
}
static
inline
bool
il4965_is_tx_success
(
u32
status
)
{
status
&=
TX_STATUS_MSK
;
return
(
status
==
TX_STATUS_SUCCESS
||
status
==
TX_STATUS_DIRECT_DONE
);
}
/**
* il4965_tx_status_reply_tx - Handle Tx response for frames in aggregation queue
*/
...
...
drivers/net/wireless/iwlegacy/
iwl-4965-hw
.h
→
drivers/net/wireless/iwlegacy/
4965
.h
浏览文件 @
af038f40
/******************************************************************************
*
* This file is provided under a dual BSD/GPLv2 license. When using or
* redistributing this file, you may do so under either license.
*
* GPL LICENSE SUMMARY
*
* Copyright(c) 200
5
- 2011 Intel Corporation. All rights reserved.
* Copyright(c) 200
8
- 2011 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
...
...
@@ -28,48 +25,209 @@
* Intel Linux Wireless <ilw@linux.intel.com>
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
*
* BSD LICENSE
*
* Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*****************************************************************************/
#ifndef __il_4965_h__
#define __il_4965_h__
#include "iwl-fh.h"
#include "iwl-debug.h"
struct
il_rx_queue
;
struct
il_rx_buf
;
struct
il_rx_pkt
;
struct
il_tx_queue
;
struct
il_rxon_context
;
/* configuration for the _4965 devices */
extern
struct
il_cfg
il4965_cfg
;
extern
struct
il_mod_params
il4965_mod_params
;
extern
struct
ieee80211_ops
il4965_hw_ops
;
/* tx queue */
void
il4965_free_tfds_in_queue
(
struct
il_priv
*
il
,
int
sta_id
,
int
tid
,
int
freed
);
/* RXON */
void
il4965_set_rxon_chain
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
);
/* uCode */
int
il4965_verify_ucode
(
struct
il_priv
*
il
);
/* lib */
void
il4965_check_abort_status
(
struct
il_priv
*
il
,
u8
frame_count
,
u32
status
);
void
il4965_rx_queue_reset
(
struct
il_priv
*
il
,
struct
il_rx_queue
*
rxq
);
int
il4965_rx_init
(
struct
il_priv
*
il
,
struct
il_rx_queue
*
rxq
);
int
il4965_hw_nic_init
(
struct
il_priv
*
il
);
int
il4965_dump_fh
(
struct
il_priv
*
il
,
char
**
buf
,
bool
display
);
/* rx */
void
il4965_rx_queue_restock
(
struct
il_priv
*
il
);
void
il4965_rx_replenish
(
struct
il_priv
*
il
);
void
il4965_rx_replenish_now
(
struct
il_priv
*
il
);
void
il4965_rx_queue_free
(
struct
il_priv
*
il
,
struct
il_rx_queue
*
rxq
);
int
il4965_rxq_stop
(
struct
il_priv
*
il
);
int
il4965_hwrate_to_mac80211_idx
(
u32
rate_n_flags
,
enum
ieee80211_band
band
);
void
il4965_rx_reply_rx
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
void
il4965_rx_reply_rx_phy
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
void
il4965_rx_handle
(
struct
il_priv
*
il
);
/* tx */
void
il4965_hw_txq_free_tfd
(
struct
il_priv
*
il
,
struct
il_tx_queue
*
txq
);
int
il4965_hw_txq_attach_buf_to_tfd
(
struct
il_priv
*
il
,
struct
il_tx_queue
*
txq
,
dma_addr_t
addr
,
u16
len
,
u8
reset
,
u8
pad
);
int
il4965_hw_tx_queue_init
(
struct
il_priv
*
il
,
struct
il_tx_queue
*
txq
);
void
il4965_hwrate_to_tx_control
(
struct
il_priv
*
il
,
u32
rate_n_flags
,
struct
ieee80211_tx_info
*
info
);
int
il4965_tx_skb
(
struct
il_priv
*
il
,
struct
sk_buff
*
skb
);
int
il4965_tx_agg_start
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_sta
*
sta
,
u16
tid
,
u16
*
ssn
);
int
il4965_tx_agg_stop
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_sta
*
sta
,
u16
tid
);
int
il4965_txq_check_empty
(
struct
il_priv
*
il
,
int
sta_id
,
u8
tid
,
int
txq_id
);
void
il4965_rx_reply_compressed_ba
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
int
il4965_tx_queue_reclaim
(
struct
il_priv
*
il
,
int
txq_id
,
int
idx
);
void
il4965_hw_txq_ctx_free
(
struct
il_priv
*
il
);
int
il4965_txq_ctx_alloc
(
struct
il_priv
*
il
);
void
il4965_txq_ctx_reset
(
struct
il_priv
*
il
);
void
il4965_txq_ctx_stop
(
struct
il_priv
*
il
);
void
il4965_txq_set_sched
(
struct
il_priv
*
il
,
u32
mask
);
/*
* Please use this file (iwl-4965-hw.h) only for hardware-related definitions.
* Use iwl-commands.h for uCode API definitions.
* Use iwl-dev.h for driver implementation definitions.
* Acquire il->lock before calling this function !
*/
void
il4965_set_wr_ptrs
(
struct
il_priv
*
il
,
int
txq_id
,
u32
idx
);
/**
* il4965_tx_queue_set_status - (optionally) start Tx/Cmd queue
* @tx_fifo_id: Tx DMA/FIFO channel (range 0-7) that the queue will feed
* @scd_retry: (1) Indicates queue will be used in aggregation mode
*
* NOTE: Acquire il->lock before calling this function !
*/
void
il4965_tx_queue_set_status
(
struct
il_priv
*
il
,
struct
il_tx_queue
*
txq
,
int
tx_fifo_id
,
int
scd_retry
);
u8
il4965_toggle_tx_ant
(
struct
il_priv
*
il
,
u8
ant_idx
,
u8
valid
);
/* rx */
void
il4965_rx_missed_beacon_notif
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
bool
il4965_good_plcp_health
(
struct
il_priv
*
il
,
struct
il_rx_pkt
*
pkt
);
void
il4965_rx_stats
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
void
il4965_reply_stats
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
/* scan */
int
il4965_request_scan
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
);
/* station mgmt */
int
il4965_manage_ibss_station
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
,
bool
add
);
/* hcmd */
int
il4965_send_beacon_cmd
(
struct
il_priv
*
il
);
#ifdef CONFIG_IWLEGACY_DEBUG
const
char
*
il4965_get_tx_fail_reason
(
u32
status
);
#else
static
inline
const
char
*
il4965_get_tx_fail_reason
(
u32
status
)
{
return
""
;
}
#endif
/* station management */
int
il4965_alloc_bcast_station
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
);
int
il4965_add_bssid_station
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
const
u8
*
addr
,
u8
*
sta_id_r
);
int
il4965_remove_default_wep_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
key
);
int
il4965_set_default_wep_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
key
);
int
il4965_restore_default_wep_keys
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
);
int
il4965_set_dynamic_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
key
,
u8
sta_id
);
int
il4965_remove_dynamic_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
key
,
u8
sta_id
);
void
il4965_update_tkip_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
keyconf
,
struct
ieee80211_sta
*
sta
,
u32
iv32
,
u16
*
phase1key
);
int
il4965_sta_tx_modify_enable_tid
(
struct
il_priv
*
il
,
int
sta_id
,
int
tid
);
int
il4965_sta_rx_agg_start
(
struct
il_priv
*
il
,
struct
ieee80211_sta
*
sta
,
int
tid
,
u16
ssn
);
int
il4965_sta_rx_agg_stop
(
struct
il_priv
*
il
,
struct
ieee80211_sta
*
sta
,
int
tid
);
void
il4965_sta_modify_sleep_tx_count
(
struct
il_priv
*
il
,
int
sta_id
,
int
cnt
);
int
il4965_update_bcast_stations
(
struct
il_priv
*
il
);
/* rate */
static
inline
u8
il4965_hw_get_rate
(
__le32
rate_n_flags
)
{
return
le32_to_cpu
(
rate_n_flags
)
&
0xFF
;
}
#ifndef __il_4965_hw_h__
#define __il_4965_hw_h__
static
inline
__le32
il4965_hw_set_rate_n_flags
(
u8
rate
,
u32
flags
)
{
return
cpu_to_le32
(
flags
|
(
u32
)
rate
);
}
/* eeprom */
void
il4965_eeprom_get_mac
(
const
struct
il_priv
*
il
,
u8
*
mac
);
int
il4965_eeprom_acquire_semaphore
(
struct
il_priv
*
il
);
void
il4965_eeprom_release_semaphore
(
struct
il_priv
*
il
);
int
il4965_eeprom_check_version
(
struct
il_priv
*
il
);
/* mac80211 handlers (for 4965) */
void
il4965_mac_tx
(
struct
ieee80211_hw
*
hw
,
struct
sk_buff
*
skb
);
int
il4965_mac_start
(
struct
ieee80211_hw
*
hw
);
void
il4965_mac_stop
(
struct
ieee80211_hw
*
hw
);
void
il4965_configure_filter
(
struct
ieee80211_hw
*
hw
,
unsigned
int
changed_flags
,
unsigned
int
*
total_flags
,
u64
multicast
);
int
il4965_mac_set_key
(
struct
ieee80211_hw
*
hw
,
enum
set_key_cmd
cmd
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_sta
*
sta
,
struct
ieee80211_key_conf
*
key
);
void
il4965_mac_update_tkip_key
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_key_conf
*
keyconf
,
struct
ieee80211_sta
*
sta
,
u32
iv32
,
u16
*
phase1key
);
int
il4965_mac_ampdu_action
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
enum
ieee80211_ampdu_mlme_action
action
,
struct
ieee80211_sta
*
sta
,
u16
tid
,
u16
*
ssn
,
u8
buf_size
);
int
il4965_mac_sta_add
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_sta
*
sta
);
void
il4965_mac_channel_switch
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_channel_switch
*
ch_switch
);
void
il4965_led_enable
(
struct
il_priv
*
il
);
#include "iwl-fh.h"
/* EEPROM */
#define IL4965_EEPROM_IMG_SIZE 1024
...
...
@@ -807,5 +965,40 @@ struct il4965_scd_bc_tbl {
/* EEPROM */
#define IL4965_FIRST_AMPDU_QUEUE 10
/* Calibration */
void
il4965_chain_noise_calibration
(
struct
il_priv
*
il
,
void
*
stat_resp
);
void
il4965_sensitivity_calibration
(
struct
il_priv
*
il
,
void
*
resp
);
void
il4965_init_sensitivity
(
struct
il_priv
*
il
);
void
il4965_reset_run_time_calib
(
struct
il_priv
*
il
);
void
il4965_calib_free_results
(
struct
il_priv
*
il
);
/* Debug */
#ifdef CONFIG_IWLEGACY_DEBUGFS
ssize_t
il4965_ucode_rx_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
);
ssize_t
il4965_ucode_tx_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
);
ssize_t
il4965_ucode_general_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
);
#else
static
ssize_t
il4965_ucode_rx_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
)
{
return
0
;
}
static
ssize_t
il4965_ucode_tx_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
)
{
return
0
;
}
static
ssize_t
il4965_ucode_general_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
)
{
return
0
;
}
#endif
#endif
/*
!__il_4965_hw
_h__ */
#endif
/*
__il_4965
_h__ */
drivers/net/wireless/iwlegacy/iwl-4965-calib.h
已删除
100644 → 0
浏览文件 @
8f29b456
/******************************************************************************
*
* This file is provided under a dual BSD/GPLv2 license. When using or
* redistributing this file, you may do so under either license.
*
* GPL LICENSE SUMMARY
*
* Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
* USA
*
* The full GNU General Public License is included in this distribution
* in the file called LICENSE.GPL.
*
* Contact Information:
* Intel Linux Wireless <ilw@linux.intel.com>
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
*
* BSD LICENSE
*
* Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************/
#ifndef __il_4965_calib_h__
#define __il_4965_calib_h__
#include "iwl-dev.h"
#include "iwl-core.h"
#include "iwl-commands.h"
void
il4965_chain_noise_calibration
(
struct
il_priv
*
il
,
void
*
stat_resp
);
void
il4965_sensitivity_calibration
(
struct
il_priv
*
il
,
void
*
resp
);
void
il4965_init_sensitivity
(
struct
il_priv
*
il
);
void
il4965_reset_run_time_calib
(
struct
il_priv
*
il
);
void
il4965_calib_free_results
(
struct
il_priv
*
il
);
#endif
/* __il_4965_calib_h__ */
drivers/net/wireless/iwlegacy/iwl-4965-debugfs.h
已删除
100644 → 0
浏览文件 @
8f29b456
/******************************************************************************
*
* GPL LICENSE SUMMARY
*
* Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
* USA
*
* The full GNU General Public License is included in this distribution
* in the file called LICENSE.GPL.
*
* Contact Information:
* Intel Linux Wireless <ilw@linux.intel.com>
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
*****************************************************************************/
#include "iwl-dev.h"
#include "iwl-core.h"
#include "iwl-debug.h"
#ifdef CONFIG_IWLEGACY_DEBUGFS
ssize_t
il4965_ucode_rx_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
);
ssize_t
il4965_ucode_tx_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
);
ssize_t
il4965_ucode_general_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
);
#else
static
ssize_t
il4965_ucode_rx_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
)
{
return
0
;
}
static
ssize_t
il4965_ucode_tx_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
)
{
return
0
;
}
static
ssize_t
il4965_ucode_general_stats_read
(
struct
file
*
file
,
char
__user
*
user_buf
,
size_t
count
,
loff_t
*
ppos
)
{
return
0
;
}
#endif
drivers/net/wireless/iwlegacy/iwl-4965.h
已删除
100644 → 0
浏览文件 @
8f29b456
/******************************************************************************
*
* This file is provided under a dual BSD/GPLv2 license. When using or
* redistributing this file, you may do so under either license.
*
* GPL LICENSE SUMMARY
*
* Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
* USA
*
* The full GNU General Public License is included in this distribution
* in the file called LICENSE.GPL.
*
* Contact Information:
* Intel Linux Wireless <ilw@linux.intel.com>
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
*
* BSD LICENSE
*
* Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************/
#ifndef __il_4965_h__
#define __il_4965_h__
#include "iwl-dev.h"
/* configuration for the _4965 devices */
extern
struct
il_cfg
il4965_cfg
;
extern
struct
il_mod_params
il4965_mod_params
;
extern
struct
ieee80211_ops
il4965_hw_ops
;
/* tx queue */
void
il4965_free_tfds_in_queue
(
struct
il_priv
*
il
,
int
sta_id
,
int
tid
,
int
freed
);
/* RXON */
void
il4965_set_rxon_chain
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
);
/* uCode */
int
il4965_verify_ucode
(
struct
il_priv
*
il
);
/* lib */
void
il4965_check_abort_status
(
struct
il_priv
*
il
,
u8
frame_count
,
u32
status
);
void
il4965_rx_queue_reset
(
struct
il_priv
*
il
,
struct
il_rx_queue
*
rxq
);
int
il4965_rx_init
(
struct
il_priv
*
il
,
struct
il_rx_queue
*
rxq
);
int
il4965_hw_nic_init
(
struct
il_priv
*
il
);
int
il4965_dump_fh
(
struct
il_priv
*
il
,
char
**
buf
,
bool
display
);
/* rx */
void
il4965_rx_queue_restock
(
struct
il_priv
*
il
);
void
il4965_rx_replenish
(
struct
il_priv
*
il
);
void
il4965_rx_replenish_now
(
struct
il_priv
*
il
);
void
il4965_rx_queue_free
(
struct
il_priv
*
il
,
struct
il_rx_queue
*
rxq
);
int
il4965_rxq_stop
(
struct
il_priv
*
il
);
int
il4965_hwrate_to_mac80211_idx
(
u32
rate_n_flags
,
enum
ieee80211_band
band
);
void
il4965_rx_reply_rx
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
void
il4965_rx_reply_rx_phy
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
void
il4965_rx_handle
(
struct
il_priv
*
il
);
/* tx */
void
il4965_hw_txq_free_tfd
(
struct
il_priv
*
il
,
struct
il_tx_queue
*
txq
);
int
il4965_hw_txq_attach_buf_to_tfd
(
struct
il_priv
*
il
,
struct
il_tx_queue
*
txq
,
dma_addr_t
addr
,
u16
len
,
u8
reset
,
u8
pad
);
int
il4965_hw_tx_queue_init
(
struct
il_priv
*
il
,
struct
il_tx_queue
*
txq
);
void
il4965_hwrate_to_tx_control
(
struct
il_priv
*
il
,
u32
rate_n_flags
,
struct
ieee80211_tx_info
*
info
);
int
il4965_tx_skb
(
struct
il_priv
*
il
,
struct
sk_buff
*
skb
);
int
il4965_tx_agg_start
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_sta
*
sta
,
u16
tid
,
u16
*
ssn
);
int
il4965_tx_agg_stop
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_sta
*
sta
,
u16
tid
);
int
il4965_txq_check_empty
(
struct
il_priv
*
il
,
int
sta_id
,
u8
tid
,
int
txq_id
);
void
il4965_rx_reply_compressed_ba
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
int
il4965_tx_queue_reclaim
(
struct
il_priv
*
il
,
int
txq_id
,
int
idx
);
void
il4965_hw_txq_ctx_free
(
struct
il_priv
*
il
);
int
il4965_txq_ctx_alloc
(
struct
il_priv
*
il
);
void
il4965_txq_ctx_reset
(
struct
il_priv
*
il
);
void
il4965_txq_ctx_stop
(
struct
il_priv
*
il
);
void
il4965_txq_set_sched
(
struct
il_priv
*
il
,
u32
mask
);
/*
* Acquire il->lock before calling this function !
*/
void
il4965_set_wr_ptrs
(
struct
il_priv
*
il
,
int
txq_id
,
u32
idx
);
/**
* il4965_tx_queue_set_status - (optionally) start Tx/Cmd queue
* @tx_fifo_id: Tx DMA/FIFO channel (range 0-7) that the queue will feed
* @scd_retry: (1) Indicates queue will be used in aggregation mode
*
* NOTE: Acquire il->lock before calling this function !
*/
void
il4965_tx_queue_set_status
(
struct
il_priv
*
il
,
struct
il_tx_queue
*
txq
,
int
tx_fifo_id
,
int
scd_retry
);
static
inline
u32
il4965_tx_status_to_mac80211
(
u32
status
)
{
status
&=
TX_STATUS_MSK
;
switch
(
status
)
{
case
TX_STATUS_SUCCESS
:
case
TX_STATUS_DIRECT_DONE
:
return
IEEE80211_TX_STAT_ACK
;
case
TX_STATUS_FAIL_DEST_PS
:
return
IEEE80211_TX_STAT_TX_FILTERED
;
default:
return
0
;
}
}
static
inline
bool
il4965_is_tx_success
(
u32
status
)
{
status
&=
TX_STATUS_MSK
;
return
(
status
==
TX_STATUS_SUCCESS
||
status
==
TX_STATUS_DIRECT_DONE
);
}
u8
il4965_toggle_tx_ant
(
struct
il_priv
*
il
,
u8
ant_idx
,
u8
valid
);
/* rx */
void
il4965_rx_missed_beacon_notif
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
bool
il4965_good_plcp_health
(
struct
il_priv
*
il
,
struct
il_rx_pkt
*
pkt
);
void
il4965_rx_stats
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
void
il4965_reply_stats
(
struct
il_priv
*
il
,
struct
il_rx_buf
*
rxb
);
/* scan */
int
il4965_request_scan
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
);
/* station mgmt */
int
il4965_manage_ibss_station
(
struct
il_priv
*
il
,
struct
ieee80211_vif
*
vif
,
bool
add
);
/* hcmd */
int
il4965_send_beacon_cmd
(
struct
il_priv
*
il
);
#ifdef CONFIG_IWLEGACY_DEBUG
const
char
*
il4965_get_tx_fail_reason
(
u32
status
);
#else
static
inline
const
char
*
il4965_get_tx_fail_reason
(
u32
status
)
{
return
""
;
}
#endif
/* station management */
int
il4965_alloc_bcast_station
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
);
int
il4965_add_bssid_station
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
const
u8
*
addr
,
u8
*
sta_id_r
);
int
il4965_remove_default_wep_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
key
);
int
il4965_set_default_wep_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
key
);
int
il4965_restore_default_wep_keys
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
);
int
il4965_set_dynamic_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
key
,
u8
sta_id
);
int
il4965_remove_dynamic_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
key
,
u8
sta_id
);
void
il4965_update_tkip_key
(
struct
il_priv
*
il
,
struct
il_rxon_context
*
ctx
,
struct
ieee80211_key_conf
*
keyconf
,
struct
ieee80211_sta
*
sta
,
u32
iv32
,
u16
*
phase1key
);
int
il4965_sta_tx_modify_enable_tid
(
struct
il_priv
*
il
,
int
sta_id
,
int
tid
);
int
il4965_sta_rx_agg_start
(
struct
il_priv
*
il
,
struct
ieee80211_sta
*
sta
,
int
tid
,
u16
ssn
);
int
il4965_sta_rx_agg_stop
(
struct
il_priv
*
il
,
struct
ieee80211_sta
*
sta
,
int
tid
);
void
il4965_sta_modify_sleep_tx_count
(
struct
il_priv
*
il
,
int
sta_id
,
int
cnt
);
int
il4965_update_bcast_stations
(
struct
il_priv
*
il
);
/* rate */
static
inline
u32
il4965_ant_idx_to_flags
(
u8
ant_idx
)
{
return
BIT
(
ant_idx
)
<<
RATE_MCS_ANT_POS
;
}
static
inline
u8
il4965_hw_get_rate
(
__le32
rate_n_flags
)
{
return
le32_to_cpu
(
rate_n_flags
)
&
0xFF
;
}
static
inline
__le32
il4965_hw_set_rate_n_flags
(
u8
rate
,
u32
flags
)
{
return
cpu_to_le32
(
flags
|
(
u32
)
rate
);
}
/* eeprom */
void
il4965_eeprom_get_mac
(
const
struct
il_priv
*
il
,
u8
*
mac
);
int
il4965_eeprom_acquire_semaphore
(
struct
il_priv
*
il
);
void
il4965_eeprom_release_semaphore
(
struct
il_priv
*
il
);
int
il4965_eeprom_check_version
(
struct
il_priv
*
il
);
/* mac80211 handlers (for 4965) */
void
il4965_mac_tx
(
struct
ieee80211_hw
*
hw
,
struct
sk_buff
*
skb
);
int
il4965_mac_start
(
struct
ieee80211_hw
*
hw
);
void
il4965_mac_stop
(
struct
ieee80211_hw
*
hw
);
void
il4965_configure_filter
(
struct
ieee80211_hw
*
hw
,
unsigned
int
changed_flags
,
unsigned
int
*
total_flags
,
u64
multicast
);
int
il4965_mac_set_key
(
struct
ieee80211_hw
*
hw
,
enum
set_key_cmd
cmd
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_sta
*
sta
,
struct
ieee80211_key_conf
*
key
);
void
il4965_mac_update_tkip_key
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_key_conf
*
keyconf
,
struct
ieee80211_sta
*
sta
,
u32
iv32
,
u16
*
phase1key
);
int
il4965_mac_ampdu_action
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
enum
ieee80211_ampdu_mlme_action
action
,
struct
ieee80211_sta
*
sta
,
u16
tid
,
u16
*
ssn
,
u8
buf_size
);
int
il4965_mac_sta_add
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_sta
*
sta
);
void
il4965_mac_channel_switch
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_channel_switch
*
ch_switch
);
void
il4965_led_enable
(
struct
il_priv
*
il
);
#endif
/* __il_4965_h__ */
drivers/net/wireless/iwlegacy/iwl-commands.h
浏览文件 @
af038f40
...
...
@@ -347,7 +347,7 @@ struct il3945_power_per_rate {
* For MIMO rates, one value may be different from the other,
* in order to balance the Tx output between the two transmitters.
*
* See more details in doc for TXPOWER in
iwl-4965-hw
.h.
* See more details in doc for TXPOWER in
4965
.h.
*/
union
il4965_tx_power_dual_stream
{
struct
{
...
...
@@ -1756,7 +1756,7 @@ struct il_compressed_ba_resp {
/*
* REPLY_TX_PWR_TBL_CMD = 0x97 (command, has simple generic response)
*
* See details under "TXPOWER" in
iwl-4965-hw
.h.
* See details under "TXPOWER" in
4965
.h.
*/
struct
il3945_txpowertable_cmd
{
...
...
drivers/net/wireless/iwlegacy/iwl-dev.h
浏览文件 @
af038f40
...
...
@@ -26,7 +26,7 @@
/*
* Please use this file (iwl-dev.h) for driver implementation definitions.
* Please use iwl-commands.h for uCode API definitions.
* Please use
iwl-4965-hw
.h for hardware-related definitions.
* Please use
4965
.h for hardware-related definitions.
*/
#ifndef __il_dev_h__
...
...
@@ -44,7 +44,7 @@
#include "iwl-prph.h"
#include "iwl-fh.h"
#include "iwl-debug.h"
#include "
iwl-4965-hw
.h"
#include "
4965
.h"
#include "iwl-3945-hw.h"
#include "iwl-led.h"
#include "iwl-power.h"
...
...
drivers/net/wireless/iwlegacy/iwl-eeprom.h
浏览文件 @
af038f40
...
...
@@ -154,7 +154,7 @@ extern const u8 il_eeprom_band_1[14];
* 1) Temperature (degrees Celsius) of device when measurement was made.
*
* 2) Gain table idx used to achieve the target measurement power.
* This refers to the "well-known" gain tables (see
iwl-4965-hw
.h).
* This refers to the "well-known" gain tables (see
4965
.h).
*
* 3) Actual measured output power, in half-dBm ("34" = 17 dBm).
*
...
...
drivers/net/wireless/iwlegacy/iwl-prph.h
浏览文件 @
af038f40
...
...
@@ -255,7 +255,7 @@
* but one DMA channel may take input from several queues.
*
* Tx DMA FIFOs have dedicated purposes. For 4965, they are used as follows
* (cf. default_queue_to_tx_fifo in
iwl-
4965.c):
* (cf. default_queue_to_tx_fifo in 4965.c):
*
* 0 -- EDCA BK (background) frames, lowest priority
* 1 -- EDCA BE (best effort) frames, normal priority
...
...
drivers/net/wireless/iwlegacy/iwl-tx.c
浏览文件 @
af038f40
...
...
@@ -232,7 +232,7 @@ EXPORT_SYMBOL(il_cmd_queue_free);
* reclaiming packets (on 'tx done IRQ), if free space become > high mark,
* Tx queue resumed.
*
* See more detailed info in
iwl-4965-hw
.h.
* See more detailed info in
4965
.h.
***************************************************/
int
il_queue_space
(
const
struct
il_queue
*
q
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录