Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
af038f40
Commit
af038f40
authored
Aug 30, 2011
by
Stanislaw Gruszka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
iwlegacy: move iwl-4965-{,hw,debugfs,calib}.h to 4965.h
Signed-off-by:
Stanislaw Gruszka
<
sgruszka@redhat.com
>
parent
8f29b456
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
277 additions
and
477 deletions
+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
No files found.
drivers/net/wireless/iwlegacy/4965-calib.c
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
deleted
100644 → 0
View file @
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
deleted
100644 → 0
View file @
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
deleted
100644 → 0
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment