rpms/kernel/devel git-iwlwifi.patch, NONE, 1.1 kernel-2.6.spec, 1.2994, 1.2995
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Fri Mar 16 21:23:45 UTC 2007
- Previous message (by thread): rpms/kernel/devel patch-2.6.21-rc4.bz2.sign, NONE, 1.1 .cvsignore, 1.587, 1.588 kernel-2.6.spec, 1.2993, 1.2994 sources, 1.550, 1.551 upstream, 1.479, 1.480 patch-2.6.21-rc3-git10.bz2.sign, 1.1, NONE patch-2.6.21-rc3.bz2.sign, 1.1, NONE
- Next message (by thread): rpms/kernel/devel/configs config-generic,1.301,1.302
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: linville
Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv17422
Modified Files:
kernel-2.6.spec
Added Files:
git-iwlwifi.patch
Log Message:
add iwlwifi snapshot
git-iwlwifi.patch:
Kconfig | 1
Makefile | 1
iwlwifi/Kconfig | 53
iwlwifi/Makefile | 2
iwlwifi/base.c |13163 +++++++++++++++++++++++++++++++++++++++++++++++++++
iwlwifi/iwlwifi.h | 1307 +++++
iwlwifi/iwlwifi_hw.h | 1875 +++++++
7 files changed, 16402 insertions(+)
--- NEW FILE git-iwlwifi.patch ---
--- linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/base.c.orig 2007-03-07 14:29:06.000000000 -0500
+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/base.c 2007-03-07 14:30:44.000000000 -0500
@@ -0,0 +1,13163 @@
+/******************************************************************************
+
+ Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved.
+
+ Portions of this file are derived from the ipw3945 project, as well
+ as portions of the ieee80211 subsystem header files.
+
+ 802.11 status code portion of this file from ethereal-0.10.6:
+ Copyright 2000, Axis Communications AB
+ Ethereal - Network traffic analyzer
+ By Gerald Combs <gerald at ethereal.com>
+ Copyright 1998 Gerald Combs
+
+ 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.
+
+ Contact Information:
+ James P. Ketrenos <ipw2100-admin at linux.intel.com>
+ Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
+
+******************************************************************************/
+
+/*
+ * Theory of operation:
+ *
+ * The primary NIC mode of operation is configured within the RXON command.
+ * As such, there are two instances of RXON data -- staging_rxon and
+ * active_rxon. The former is used to configure the device, the later to
+ * reflect the actual currently active configuration.
+ *
+ * After configuring staging_rxon, it is activated by calling
+ * ipw_commit_rxon(). The ipw_commit_rxon() will ensure the correct sequence
+ * of commands are invoked on the hardware to result in Tx being possible
+ * (if the channel is appropriate for Tx)
+ *
+ * About the threading and lock model of the driver...
+ *
+ * There are three paths of execution through the driver.
+ *
+ * 1. ioctl based (wireless extensions, netdev, etc.)
+ * 2. interrupt based
+ * 3. scheduled work queue items
+ *
+ * As soon as an interrupt comes in, it schedules a tasklet. That tasklet,
+ * when run, does any HW checks, pulls any data from the read queue,
+ * and schedules other layers to do the actual work.
+ *
+ * NOTE: This driver is a work in progress. It is currently structured
+ * in a way that we can add support for the next wireless adapter
+ * available from Intel.
+ *
+ * Our current focus is as follows:
+ * 1. Get the driver working w/ mac80211 in STA(client) mode.
+ * 2. Clean up the dual-driver code from function redirection to
+ * if/else switches where the code detlas are minimal.
+ * 3. Evaluate the amount of delta between the hardware versions and
+ * possibly split iwlwifi into multiple drivers for each piece of
+ * HW, sharing as much base code as possible (would result in
+ * multiple driver files on disk vs. a single module that works
+ * with multiple hardware types)
+ * 4. Document the uCode regulatory enforcement
+ * 5. Document the rate scaling capabilities of the 3945
+ * 6. Provide an initial rate scaling algorithm tailored for the
+ * statistic data exposed by the 3945.
+ */
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/version.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+#include <linux/dma-mapping.h>
+#include <linux/delay.h>
+#include <linux/skbuff.h>
+#include <linux/netdevice.h>
+#include <linux/wireless.h>
+#include <linux/firmware.h>
+#include <net/iw_handler.h>
+
+//#define BIT(x) (1 << (x))
+#include <net/mac80211.h>
+#include <net/ieee80211.h>
+
+//#include <net/mac80211_mgmt.h>
+//#include <net/mac80211_common.h>
+//#include <net/mac80211_shared.h>
+#include <../net/mac80211/ieee80211_rate.h>
+
+#include <linux/if_arp.h>
+#include <asm/div64.h>
+
+#include "iwlwifi.h"
+
+#define IWLWIFI_VERSION "0.0.11k"
+
+#define DRV_DESCRIPTION "Intel(R) Wireless Link driver for Linux"
+#define DRV_COPYRIGHT "Copyright(c) 2003-2006 Intel Corporation"
+#define DRV_VERSION IWLWIFI_VERSION
+
+MODULE_DESCRIPTION(DRV_DESCRIPTION);
+MODULE_VERSION(DRV_VERSION);
+MODULE_AUTHOR(DRV_COPYRIGHT);
+MODULE_LICENSE("GPL");
+
+/*MAC80211 move this to mac80211 files */
+#define IEEE80211_FC(type, stype) cpu_to_le16((type << 2) | (stype << 4))
+
+#define IEEE80211_CHAN_W_RADAR_DETECT 0x00000010
+
+#define IEEE80211_24GHZ_BAND (1<<0)
+#define IEEE80211_52GHZ_BAND (1<<1)
+
+#define IEEE80211_CCK_RATE_1MB 0x02
+#define IEEE80211_CCK_RATE_2MB 0x04
+#define IEEE80211_CCK_RATE_5MB 0x0B
+#define IEEE80211_CCK_RATE_11MB 0x16
+#define IEEE80211_OFDM_RATE_6MB 0x0C
+#define IEEE80211_OFDM_RATE_9MB 0x12
+#define IEEE80211_OFDM_RATE_12MB 0x18
+#define IEEE80211_OFDM_RATE_18MB 0x24
+#define IEEE80211_OFDM_RATE_24MB 0x30
+#define IEEE80211_OFDM_RATE_36MB 0x48
+#define IEEE80211_OFDM_RATE_48MB 0x60
+#define IEEE80211_OFDM_RATE_54MB 0x6C
+#define IEEE80211_BASIC_RATE_MASK 0x80
+
+#define IEEE80211_CCK_RATE_1MB_MASK (1<<0)
+#define IEEE80211_CCK_RATE_2MB_MASK (1<<1)
+#define IEEE80211_CCK_RATE_5MB_MASK (1<<2)
+#define IEEE80211_CCK_RATE_11MB_MASK (1<<3)
+#define IEEE80211_OFDM_RATE_6MB_MASK (1<<4)
+#define IEEE80211_OFDM_RATE_9MB_MASK (1<<5)
+#define IEEE80211_OFDM_RATE_12MB_MASK (1<<6)
+#define IEEE80211_OFDM_RATE_18MB_MASK (1<<7)
+#define IEEE80211_OFDM_RATE_24MB_MASK (1<<8)
+#define IEEE80211_OFDM_RATE_36MB_MASK (1<<9)
+#define IEEE80211_OFDM_RATE_48MB_MASK (1<<10)
+#define IEEE80211_OFDM_RATE_54MB_MASK (1<<11)
+
+#define IEEE80211_CCK_RATES_MASK 0x0000000F
+#define IEEE80211_CCK_BASIC_RATES_MASK (IEEE80211_CCK_RATE_1MB_MASK | \
+ IEEE80211_CCK_RATE_2MB_MASK)
+#define IEEE80211_CCK_DEFAULT_RATES_MASK (IEEE80211_CCK_BASIC_RATES_MASK | \
+ IEEE80211_CCK_RATE_5MB_MASK | \
+ IEEE80211_CCK_RATE_11MB_MASK)
+
+#define IEEE80211_OFDM_RATES_MASK 0x00000FF0
+#define IEEE80211_OFDM_BASIC_RATES_MASK (IEEE80211_OFDM_RATE_6MB_MASK | \
+ IEEE80211_OFDM_RATE_12MB_MASK | \
+ IEEE80211_OFDM_RATE_24MB_MASK)
+#define IEEE80211_OFDM_DEFAULT_RATES_MASK (IEEE80211_OFDM_BASIC_RATES_MASK | \
+ IEEE80211_OFDM_RATE_9MB_MASK | \
+ IEEE80211_OFDM_RATE_18MB_MASK | \
+ IEEE80211_OFDM_RATE_36MB_MASK | \
+ IEEE80211_OFDM_RATE_48MB_MASK | \
+ IEEE80211_OFDM_RATE_54MB_MASK)
+#define IEEE80211_DEFAULT_RATES_MASK (IEEE80211_OFDM_DEFAULT_RATES_MASK | \
+ IEEE80211_CCK_DEFAULT_RATES_MASK)
+
+#define IEEE80211_NUM_OFDM_RATES 8
+#define IEEE80211_NUM_CCK_RATES 4
+#define IEEE80211_OFDM_SHIFT_MASK_A 4
+
+/*MAC80211 end */
+
+static u32 ipw_debug_level;
+
+static int param_debug = 0;
+static int param_channel = 0;
+static int param_mode = 0;
+static int param_auto_create = 1; /* def: create new adhoc network if needed */
+static int param_led = 1; /* def: use LEDs */
+static int param_disable = 0; /* def: enable radio */
+static int param_antenna = 0; /* def: 0 = both antennas (use diversity) */
+static int param_hwcrypto = 0; /* def: using software encryption */
+static int param_qos_enable = 1;
+
+static const char ipw_modes[] = {
+ 'a', 'b', 'g', '?'
+};
+
+#define LD_TIME_LINK_ON 300
+
+static int ipw_power_init_handle(struct ipw_priv *priv);
[...16030 lines suppressed...]
+ u8 flags;
+ /* We have 15 LSB to use as we please (MSB indicates
+ * a frame Rx'd from the HW). We encode the following
+ * information into the sequence field:
+ *
+ * 0:7 index in fifo
+ * 8:13 fifo selection
+ * 14:14 bit indicating if this packet references the 'extra'
+ * storage at the end of the memory queue
+ * 15:15 (Rx indication)
+ *
+ */
+ u16 sequence;
+
+ /* command data follows immediately */
+ u8 data[0];
+} __attribute__ ((packed));
+
+// Used for passing to driver number of successes and failures per rate
+struct rate_histogram {
+ union {
+ u32 a[SUP_RATE_11A_MAX_NUM_CHANNELS];
+ u32 b[SUP_RATE_11B_MAX_NUM_CHANNELS];
+ u32 g[SUP_RATE_11G_MAX_NUM_CHANNELS];
+ } success;
+ union {
+ u32 a[SUP_RATE_11A_MAX_NUM_CHANNELS];
+ u32 b[SUP_RATE_11B_MAX_NUM_CHANNELS];
+ u32 g[SUP_RATE_11G_MAX_NUM_CHANNELS];
+ } failed;
+} __attribute__ ((packed));
+
+/* statistics command response */
+
+struct statistics_rx_phy {
+ u32 ina_cnt;
+ u32 fina_cnt;
+ u32 plcp_err;
+ u32 crc32_err;
+ u32 overrun_err;
+ u32 early_overrun_err;
+ u32 crc32_good;
+ u32 false_alarm_cnt;
+ u32 fina_sync_err_cnt;
+ u32 sfd_timeout;
+ u32 fina_timeout;
+ u32 unresponded_rts;
+ u32 rxe_frame_limit_overrun;
+ u32 sent_ack_cnt;
+ u32 sent_cts_cnt;
+} __attribute__ ((packed));
+
+struct statistics_rx {
+ struct statistics_rx_phy ofdm;
+ struct statistics_rx_phy cck;
+ u32 bogus_cts;
+ u32 bogus_ack;
+ u32 non_bssid_frames;
+ u32 filtered_frames;
+ u32 non_channel_beacons;
+} __attribute__ ((packed));
+
+struct statistics_tx {
+ u32 preamble_cnt;
+ u32 rx_detected_cnt;
+ u32 bt_prio_defer_cnt;
+ u32 bt_prio_kill_cnt;
+ u32 few_bytes_cnt;
+ u32 cts_timeout;
+ u32 ack_timeout;
+ u32 expected_ack_cnt;
+ u32 actual_ack_cnt;
+} __attribute__ ((packed));
+
+struct statistics_dbg {
+ u32 burst_check;
+ u32 burst_count;
+ u32 reserved[4];
+} __attribute__ ((packed));
+
+struct statistics_div {
+ u32 tx_on_a;
+ u32 tx_on_b;
+ u32 exec_time;
+ u32 probe_time;
+} __attribute__ ((packed));
+
+struct statistics_general {
+ u32 temperature;
+ struct statistics_dbg dbg;
+ u32 sleep_time;
+ u32 slots_out;
+ u32 slots_idle;
+ u32 ttl_timestamp;
+ struct statistics_div div;
+} __attribute__ ((packed));
+
+struct ipw_notif_statistics {
+ u32 flag;
+ struct statistics_rx rx;
+ struct statistics_tx tx;
+ struct statistics_general general;
+} __attribute__ ((packed));
+
+struct ipw_rx_packet {
+ u32 len;
+ struct ipw_cmd_header hdr;
+ union {
+ struct ipw_alive_resp alive_frame;
+ struct ipw_rx_frame rx_frame;
+ struct ipw_tx_resp tx_resp;
+ struct ipw_spectrum_notification spectrum_notif;
+ struct ipw_csa_notification csa_notif;
+ struct ipw_error_resp err_resp;
+ struct ipw_card_state_notif card_state_notif;
+ struct ipw_notif_statistics stats;
+ struct BeaconNtfSpecifics beacon_status;
+ struct ipw_add_sta_resp add_sta;
+ struct ipw_sleep_notification sleep_notif;
+ u32 status;
+ u8 raw[0];
+ } u;
+} __attribute__ ((packed));
+
+#define IPW_RX_FRAME_SIZE (4 + sizeof(struct ipw_rx_frame))
+
+struct ipw_multicast_addr {
+ u8 num_of_multicast_addresses;
+ u8 reserved[3];
+ u8 mac1[6];
+ u8 mac2[6];
+ u8 mac3[6];
+ u8 mac4[6];
+} __attribute__ ((packed));
+
+struct ipw_tgi_tx_key {
+ u8 key_id;
+ u8 security_type;
+ u8 station_index;
+ u8 flags;
+ u8 key[16];
+ u32 tx_counter[2];
+} __attribute__ ((packed));
+
+struct ipw_associate {
+ u8 channel;
+ u8 auth_type:4, auth_key:4;
+ u8 assoc_type;
+ u8 reserved;
+ u16 policy_support;
+ u8 preamble_length;
+ u8 ieee_mode;
+ u8 bssid[ETH_ALEN];
+ u32 assoc_tsf_msw;
+ u32 assoc_tsf_lsw;
+ u16 capability;
+ u16 listen_interval;
+ u16 beacon_interval;
+ u8 dest[ETH_ALEN];
+ u16 atim_window;
+ u8 smr;
+ u8 reserved1;
+ u16 reserved2;
+ u16 assoc_id;
+ u8 erp_value;
+} __attribute__ ((packed));
+
+#define IPW_SUPPORTED_RATES_IE_LEN 8
+
+struct ipw_supported_rates {
+ u8 ieee_mode;
+ u8 num_rates;
+ u8 purpose;
+ u8 reserved;
+ u8 supported_rates[IPW_MAX_RATES];
+} __attribute__ ((packed));
+
+struct ipw_channel_tx_power {
+ u8 channel_number;
+ s8 tx_power;
+} __attribute__ ((packed));
+
+
+#define IPW_RX_BUF_SIZE 3000
+
+#endif /* __iwlwifi_hw_h__ */
--- linux-2.6.20.noarch/drivers/net/wireless/mac80211/Makefile.orig 2007-03-07 14:29:06.000000000 -0500
+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/Makefile 2007-03-07 14:29:12.000000000 -0500
@@ -4,3 +4,4 @@ obj-$(CONFIG_ADM8211) += adm8211/
obj-$(CONFIG_P54_COMMON) += p54/
obj-$(CONFIG_ZD1211RW_MAC80211) += zd1211rw/
obj-$(CONFIG_RTL818X) += rtl818x/
+obj-$(CONFIG_IWLWIFI) += iwlwifi/
--- linux-2.6.20.noarch/drivers/net/wireless/mac80211/Kconfig.orig 2007-03-07 14:29:06.000000000 -0500
+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/Kconfig 2007-03-07 14:29:12.000000000 -0500
@@ -4,3 +4,4 @@ source "drivers/net/wireless/mac80211/ad
source "drivers/net/wireless/mac80211/p54/Kconfig"
source "drivers/net/wireless/mac80211/zd1211rw/Kconfig"
source "drivers/net/wireless/mac80211/rtl818x/Kconfig"
+source "drivers/net/wireless/mac80211/iwlwifi/Kconfig"
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.2994
retrieving revision 1.2995
diff -u -r1.2994 -r1.2995
--- kernel-2.6.spec 16 Mar 2007 21:19:47 -0000 1.2994
+++ kernel-2.6.spec 16 Mar 2007 21:23:43 -0000 1.2995
@@ -301,6 +301,7 @@
Patch10: linux-2.6-utrace.patch
Patch11: nouveau-drm.patch
Patch12: git-wireless-dev.patch
+Patch13: git-iwlwifi.patch
# enable sysrq-c on all kernels, not only kexec
Patch20: linux-2.6-sysrq-c.patch
@@ -850,6 +851,8 @@
# Add the new wireless stack and drivers from wireless-dev
%patch12 -p1
+# ...and the iwlwifi driver from Intel
+%patch13 -p1
# sysrq works always
%patch20 -p1
@@ -2071,6 +2074,9 @@
# - tux.
%changelog
+* Fri Mar 16 2007 John W. Linville <linville at redhat.com>
+- Add snapshot of iwlwifi driver from www.intellinuxwireless.org
+
* Fri Mar 16 2007 Dave Jones <davej at redhat.com>
- 2.6.21-rc4
- Previous message (by thread): rpms/kernel/devel patch-2.6.21-rc4.bz2.sign, NONE, 1.1 .cvsignore, 1.587, 1.588 kernel-2.6.spec, 1.2993, 1.2994 sources, 1.550, 1.551 upstream, 1.479, 1.480 patch-2.6.21-rc3-git10.bz2.sign, 1.1, NONE patch-2.6.21-rc3.bz2.sign, 1.1, NONE
- Next message (by thread): rpms/kernel/devel/configs config-generic,1.301,1.302
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list