forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[IWLWIFI]: add iwlwifi wireless drivers
This patch adds the mac80211 based wireless drivers for the Intel PRO/Wireless 3945ABG/BG Network Connection and Intel Wireless WiFi Link AGN (4965) adapters. [ Move driver into it's own directory -DaveM ] Signed-off-by: Zhu Yi <[email protected]> Signed-off-by: John W. Linville <[email protected]> Signed-off-by: David S. Miller <[email protected]>
- Loading branch information
Zhu Yi
authored and
David S. Miller
committed
Oct 10, 2007
1 parent
75388ac
commit b481de9
Showing
28 changed files
with
34,833 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2080,6 +2080,15 @@ L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel | |
W: http://ipw2200.sourceforge.net | ||
S: Supported | ||
|
||
INTEL WIRELESS WIFI LINK (iwlwifi) | ||
P: Zhu Yi | ||
M: [email protected] | ||
L: [email protected] | ||
L: [email protected] | ||
W: http://intellinuxwireless.org | ||
T: git git://intellinuxwireless.org/repos/iwlwifi | ||
S: Supported | ||
|
||
IOC3 ETHERNET DRIVER | ||
P: Ralf Baechle | ||
M: [email protected] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
config IWLWIFI | ||
bool "Intel Wireless WiFi Link Drivers" | ||
depends on PCI && MAC80211 && WLAN_80211 && EXPERIMENTAL | ||
select FW_LOADER | ||
default n | ||
---help--- | ||
Select to enable drivers based on the iwlwifi project. This | ||
project provides a common foundation for Intel's wireless | ||
drivers designed to use the mac80211 subsystem. | ||
|
||
See <file:Documentation/networking/README.iwlwifi> for | ||
information on the capabilities currently enabled in this | ||
driver and for tips for debugging issues and problems. | ||
|
||
config IWLWIFI_DEBUG | ||
bool "Enable full debugging output in iwlwifi drivers" | ||
depends on IWLWIFI | ||
default y | ||
---help--- | ||
This option will enable debug tracing output for the iwlwifi | ||
drivers. | ||
|
||
This will result in the kernel module being ~100k larger. You can | ||
control which debug output is sent to the kernel log by setting the | ||
value in | ||
|
||
/sys/bus/pci/drivers/${DRIVER}/debug_level | ||
|
||
This entry will only exist if this option is enabled. | ||
|
||
To set a value, simply echo an 8-byte hex value to the same file: | ||
|
||
% echo 0x43fff > /sys/bus/pci/drivers/${DRIVER}/debug_level | ||
|
||
You can find the list of debug mask values in: | ||
drivers/net/wireless/mac80211/iwlwifi/iwl-debug.h | ||
|
||
If this is your first time using this driver, you should say Y here | ||
as the debug information can assist others in helping you resolve | ||
any problems you may encounter. | ||
|
||
config IWLWIFI_SENSITIVITY | ||
bool "Enable Sensitivity Calibration in iwlwifi drivers" | ||
depends on IWLWIFI | ||
default y | ||
---help--- | ||
This option will enable sensitivity calibration for the iwlwifi | ||
drivers. | ||
|
||
config IWLWIFI_SPECTRUM_MEASUREMENT | ||
bool "Enable Spectrum Measurement in iwlwifi drivers" | ||
depends on IWLWIFI | ||
default y | ||
---help--- | ||
This option will enable spectrum measurement for the iwlwifi drivers. | ||
|
||
config IWLWIFI_QOS | ||
bool "Enable Wireless QoS in iwlwifi drivers" | ||
depends on IWLWIFI | ||
default y | ||
---help--- | ||
This option will enable wireless quality of service (QoS) for the | ||
iwlwifi drivers. | ||
|
||
config IWLWIFI_HT | ||
bool "Enable 802.11n HT features in iwlwifi drivers" | ||
depends on EXPERIMENTAL | ||
depends on IWLWIFI && MAC80211_HT | ||
default n | ||
---help--- | ||
This option enables IEEE 802.11n High Throughput features | ||
for the iwlwifi drivers. | ||
|
||
config IWL4965 | ||
tristate "Intel Wireless WiFi 4965AGN" | ||
depends on m && IWLWIFI && EXPERIMENTAL | ||
default m | ||
---help--- | ||
Select to build the driver supporting the: | ||
|
||
Intel Wireless WiFi Link 4965AGN | ||
|
||
This driver uses the kernel's mac80211 subsystem. | ||
|
||
See <file:Documentation/networking/README.iwlwifi> for | ||
information on the capabilities currently enabled in this | ||
driver and for tips for debugging any issues or problems. | ||
|
||
In order to use this driver, you will need a microcode (uCode) | ||
image for it. You can obtain the microcode from: | ||
|
||
<http://intellinuxwireless.org/>. | ||
|
||
See the above referenced README.iwlwifi for information on where | ||
to install the microcode images. | ||
|
||
If you want to compile the driver as a module ( = code which can be | ||
inserted in and remvoed from the running kernel whenever you want), | ||
say M here and read <file:Documentation/modules.txt>. The module | ||
will be called iwl4965.ko. | ||
|
||
config IWL3945 | ||
tristate "Intel PRO/Wireless 3945ABG/BG Network Connection" | ||
depends on m && IWLWIFI && EXPERIMENTAL | ||
default m | ||
---help--- | ||
Select to build the driver supporting the: | ||
|
||
Intel PRO/Wireless 3945ABG/BG Network Connection | ||
|
||
This driver uses the kernel's mac80211 subsystem. | ||
|
||
See <file:Documentation/networking/README.iwlwifi> for | ||
information on the capabilities currently enabled in this | ||
driver and for tips for debugging any issues or problems. | ||
|
||
In order to use this driver, you will need a microcode (uCode) | ||
image for it. You can obtain the microcode from: | ||
|
||
<http://intellinuxwireless.org/>. | ||
|
||
See the above referenced README.iwlwifi for information on where | ||
to install the microcode images. | ||
|
||
If you want to compile the driver as a module ( = code which can be | ||
inserted in and remvoed from the running kernel whenever you want), | ||
say M here and read <file:Documentation/modules.txt>. The module | ||
will be called iwl3945.ko. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
obj-$(CONFIG_IWL3945) += iwl3945.o | ||
iwl3945-objs = iwl3945-base.o iwl-3945.o iwl-3945-rs.o | ||
CFLAGS_iwl3945-base.o = -DIWL=3945 | ||
CFLAGS_iwl-3945.o = -DIWL=3945 | ||
CFLAGS_iwl-3945-rs.o = -DIWL=3945 | ||
|
||
obj-$(CONFIG_IWL4965) += iwl4965.o | ||
iwl4965-objs = iwl4965-base.o iwl-4965.o iwl-4965-rs.o | ||
CFLAGS_iwl4965-base.o = -DIWL=4965 | ||
CFLAGS_iwl-4965.o = -DIWL=4965 | ||
CFLAGS_iwl-4965-rs.o = -DIWL=4965 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
/****************************************************************************** | ||
* | ||
* 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) 2005 - 2007 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 Geeral 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: | ||
* James P. Ketrenos <[email protected]> | ||
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 | ||
* | ||
* BSD LICENSE | ||
* | ||
* Copyright(c) 2005 - 2007 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 __iwl_3945_hw__ | ||
#define __iwl_3945_hw__ | ||
|
||
#define IWL_RX_BUF_SIZE 3000 | ||
/* card static random access memory (SRAM) for processor data and instructs */ | ||
#define ALM_RTC_INST_UPPER_BOUND (0x014000) | ||
#define ALM_RTC_DATA_UPPER_BOUND (0x808000) | ||
|
||
#define ALM_RTC_INST_SIZE (ALM_RTC_INST_UPPER_BOUND - RTC_INST_LOWER_BOUND) | ||
#define ALM_RTC_DATA_SIZE (ALM_RTC_DATA_UPPER_BOUND - RTC_DATA_LOWER_BOUND) | ||
|
||
#define IWL_MAX_BSM_SIZE ALM_RTC_INST_SIZE | ||
#define IWL_MAX_INST_SIZE ALM_RTC_INST_SIZE | ||
#define IWL_MAX_DATA_SIZE ALM_RTC_DATA_SIZE | ||
#define IWL_MAX_NUM_QUEUES 8 | ||
|
||
static inline int iwl_hw_valid_rtc_data_addr(u32 addr) | ||
{ | ||
return (addr >= RTC_DATA_LOWER_BOUND) && | ||
(addr < ALM_RTC_DATA_UPPER_BOUND); | ||
} | ||
|
||
/* Base physical address of iwl_shared is provided to FH_TSSR_CBB_BASE | ||
* and &iwl_shared.rx_read_ptr[0] is provided to FH_RCSR_RPTR_ADDR(0) */ | ||
struct iwl_shared { | ||
__le32 tx_base_ptr[8]; | ||
__le32 rx_read_ptr[3]; | ||
} __attribute__ ((packed)); | ||
|
||
struct iwl_tfd_frame_data { | ||
__le32 addr; | ||
__le32 len; | ||
} __attribute__ ((packed)); | ||
|
||
struct iwl_tfd_frame { | ||
__le32 control_flags; | ||
struct iwl_tfd_frame_data pa[4]; | ||
u8 reserved[28]; | ||
} __attribute__ ((packed)); | ||
|
||
static inline u8 iwl_hw_get_rate(__le16 rate_n_flags) | ||
{ | ||
return le16_to_cpu(rate_n_flags) & 0xFF; | ||
} | ||
|
||
static inline u16 iwl_hw_get_rate_n_flags(__le16 rate_n_flags) | ||
{ | ||
return le16_to_cpu(rate_n_flags); | ||
} | ||
|
||
static inline __le16 iwl_hw_set_rate_n_flags(u8 rate, u16 flags) | ||
{ | ||
return cpu_to_le16((u16)rate|flags); | ||
} | ||
#endif |
Oops, something went wrong.