aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/Kconfig98
-rw-r--r--drivers/net/wireless/iwlwifi/Makefile11
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c15
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h7
4 files changed, 68 insertions, 63 deletions
diff --git a/drivers/net/wireless/iwlwifi/Kconfig b/drivers/net/wireless/iwlwifi/Kconfig
index 82b66a3d3a5d..b0ac0ce3fb9f 100644
--- a/drivers/net/wireless/iwlwifi/Kconfig
+++ b/drivers/net/wireless/iwlwifi/Kconfig
@@ -14,18 +14,49 @@ config IWLWIFI_LEDS
14 default n 14 default n
15 15
16config IWLWIFI_RFKILL 16config IWLWIFI_RFKILL
17 boolean "IWLWIFI RF kill support" 17 boolean "Iwlwifi RF kill support"
18 depends on IWLCORE 18 depends on IWLCORE
19 19
20config IWL4965 20config IWLWIFI_DEBUG
21 tristate "Intel Wireless WiFi 4965AGN" 21 bool "Enable full debugging output in iwlagn driver"
22 depends on IWLCORE
23 ---help---
24 This option will enable debug tracing output for the iwlwifi drivers
25
26 This will result in the kernel module being ~100k larger. You can
27 control which debug output is sent to the kernel log by setting the
28 value in
29
30 /sys/class/net/wlan0/device/debug_level
31
32 This entry will only exist if this option is enabled.
33
34 To set a value, simply echo an 8-byte hex value to the same file:
35
36 % echo 0x43fff > /sys/class/net/wlan0/device/debug_level
37
38 You can find the list of debug mask values in:
39 drivers/net/wireless/iwlwifi/iwl-debug.h
40
41 If this is your first time using this driver, you should say Y here
42 as the debug information can assist others in helping you resolve
43 any problems you may encounter.
44
45config IWLWIFI_DEBUGFS
46 bool "Iwlwifi debugfs support"
47 depends on IWLCORE && IWLWIFI_DEBUG && MAC80211_DEBUGFS
48 ---help---
49 Enable creation of debugfs files for the iwlwifi drivers.
50
51config IWLAGN
52 tristate "Intel Wireless WiFi Next Gen AGN"
22 depends on PCI && MAC80211 && WLAN_80211 && EXPERIMENTAL 53 depends on PCI && MAC80211 && WLAN_80211 && EXPERIMENTAL
23 select FW_LOADER 54 select FW_LOADER
24 select IWLCORE 55 select IWLCORE
25 ---help--- 56 ---help---
26 Select to build the driver supporting the: 57 Select to build the driver supporting the:
27 58
28 Intel Wireless WiFi Link 4965AGN 59 Intel Wireless WiFi Link Next-Gen AGN
29 60
30 This driver uses the kernel's mac80211 subsystem. 61 This driver uses the kernel's mac80211 subsystem.
31 62
@@ -42,60 +73,33 @@ config IWL4965
42 If you want to compile the driver as a module ( = code which can be 73 If you want to compile the driver as a module ( = code which can be
43 inserted in and removed from the running kernel whenever you want), 74 inserted in and removed from the running kernel whenever you want),
44 say M here and read <file:Documentation/kbuild/modules.txt>. The 75 say M here and read <file:Documentation/kbuild/modules.txt>. The
45 module will be called iwl4965.ko. 76 module will be called iwlagn.ko.
46
47config IWL4965_LEDS
48 bool "Enable LEDS features in iwl4965 driver"
49 depends on IWL4965
50 select IWLWIFI_LEDS
51 ---help---
52 This option enables LEDS for the iwlwifi drivers
53 77
54 78config IWLAGN_SPECTRUM_MEASUREMENT
55config IWL4965_SPECTRUM_MEASUREMENT 79 bool "Enable Spectrum Measurement in iwlagn driver"
56 bool "Enable Spectrum Measurement in iwl4965 driver" 80 depends on IWLAGN
57 depends on IWL4965
58 ---help--- 81 ---help---
59 This option will enable spectrum measurement for the iwl4965 driver. 82 This option will enable spectrum measurement for the iwlagn driver.
60 83
61config IWLWIFI_DEBUG 84config IWLAGN_LEDS
62 bool "Enable full debugging output in iwl4965 driver" 85 bool "Enable LEDS features in iwlagn driver"
63 depends on IWL4965 86 depends on IWLAGN
87 select IWLWIFI_LEDS
64 ---help--- 88 ---help---
65 This option will enable debug tracing output for the iwl4965 89 This option enables LEDS for the iwlagn drivers
66 driver.
67
68 This will result in the kernel module being ~100k larger. You can
69 control which debug output is sent to the kernel log by setting the
70 value in
71
72 /sys/class/net/wlan0/device/debug_level
73
74 This entry will only exist if this option is enabled.
75
76 To set a value, simply echo an 8-byte hex value to the same file:
77
78 % echo 0x43fff > /sys/class/net/wlan0/device/debug_level
79 90
80 You can find the list of debug mask values in:
81 drivers/net/wireless/iwlwifi/iwl-4965-debug.h
82 91
83 If this is your first time using this driver, you should say Y here 92config IWL4965
84 as the debug information can assist others in helping you resolve 93 bool "Intel Wireless WiFi 4965AGN"
85 any problems you may encounter. 94 depends on IWLAGN
95 ---help---
96 This option enables support for Intel Wireless WiFi Link 4965AGN
86 97
87config IWL5000 98config IWL5000
88 bool "Intel Wireless WiFi 5000AGN" 99 bool "Intel Wireless WiFi 5000AGN"
89 depends on IWL4965 100 depends on IWLAGN
90 ---help--- 101 ---help---
91 This option enables support for Intel Wireless WiFi Link 5000AGN Family 102 This option enables support for Intel Wireless WiFi Link 5000AGN Family
92 Dependency on 4965 is temporary
93
94config IWLWIFI_DEBUGFS
95 bool "Iwlwifi debugfs support"
96 depends on IWLCORE && IWLWIFI_DEBUG && MAC80211_DEBUGFS
97 ---help---
98 Enable creation of debugfs files for the iwlwifi drivers.
99 103
100config IWL3945 104config IWL3945
101 tristate "Intel PRO/Wireless 3945ABG/BG Network Connection" 105 tristate "Intel PRO/Wireless 3945ABG/BG Network Connection"
diff --git a/drivers/net/wireless/iwlwifi/Makefile b/drivers/net/wireless/iwlwifi/Makefile
index 6bf3998736b5..47aa28f6a513 100644
--- a/drivers/net/wireless/iwlwifi/Makefile
+++ b/drivers/net/wireless/iwlwifi/Makefile
@@ -6,13 +6,14 @@ iwlcore-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-debugfs.o
6iwlcore-$(CONFIG_IWLWIFI_LEDS) += iwl-led.o 6iwlcore-$(CONFIG_IWLWIFI_LEDS) += iwl-led.o
7iwlcore-$(CONFIG_IWLWIFI_RFKILL) += iwl-rfkill.o 7iwlcore-$(CONFIG_IWLWIFI_RFKILL) += iwl-rfkill.o
8 8
9obj-$(CONFIG_IWLAGN) += iwlagn.o
10iwlagn-objs := iwl-agn.o iwl-agn-rs.o
11
12iwlagn-$(CONFIG_IWL4965) += iwl-4965.o
13iwlagn-$(CONFIG_IWL5000) += iwl-5000.o
14
9obj-$(CONFIG_IWL3945) += iwl3945.o 15obj-$(CONFIG_IWL3945) += iwl3945.o
10iwl3945-objs := iwl3945-base.o iwl-3945.o iwl-3945-rs.o 16iwl3945-objs := iwl3945-base.o iwl-3945.o iwl-3945-rs.o
11iwl3945-$(CONFIG_IWL3945_LEDS) += iwl-3945-led.o 17iwl3945-$(CONFIG_IWL3945_LEDS) += iwl-3945-led.o
12 18
13obj-$(CONFIG_IWL4965) += iwl4965.o
14iwl4965-objs := iwl-agn.o iwl-4965.o iwl-agn-rs.o
15
16iwl4965-$(CONFIG_IWL5000) += iwl-5000.o
17
18 19
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 4ff0636dbddc..6503b3ac8d66 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -73,7 +73,7 @@
73#define VD 73#define VD
74#endif 74#endif
75 75
76#ifdef CONFIG_IWL4965_SPECTRUM_MEASUREMENT 76#ifdef CONFIG_IWLAGN_SPECTRUM_MEASUREMENT
77#define VS "s" 77#define VS "s"
78#else 78#else
79#define VS 79#define VS
@@ -86,6 +86,7 @@ MODULE_DESCRIPTION(DRV_DESCRIPTION);
86MODULE_VERSION(DRV_VERSION); 86MODULE_VERSION(DRV_VERSION);
87MODULE_AUTHOR(DRV_COPYRIGHT); 87MODULE_AUTHOR(DRV_COPYRIGHT);
88MODULE_LICENSE("GPL"); 88MODULE_LICENSE("GPL");
89MODULE_ALIAS("iwl4965");
89 90
90/*************** STATION TABLE MANAGEMENT **** 91/*************** STATION TABLE MANAGEMENT ****
91 * mac80211 should be examined to determine if sta_info is duplicating 92 * mac80211 should be examined to determine if sta_info is duplicating
@@ -883,7 +884,7 @@ static void iwl4965_set_rate(struct iwl_priv *priv)
883 (IWL_OFDM_BASIC_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF; 884 (IWL_OFDM_BASIC_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF;
884} 885}
885 886
886#ifdef CONFIG_IWL4965_SPECTRUM_MEASUREMENT 887#ifdef CONFIG_IWLAGN_SPECTRUM_MEASUREMENT
887 888
888#include "iwl-spectrum.h" 889#include "iwl-spectrum.h"
889 890
@@ -1087,7 +1088,7 @@ static void iwl4965_rx_csa(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb)
1087static void iwl4965_rx_spectrum_measure_notif(struct iwl_priv *priv, 1088static void iwl4965_rx_spectrum_measure_notif(struct iwl_priv *priv,
1088 struct iwl_rx_mem_buffer *rxb) 1089 struct iwl_rx_mem_buffer *rxb)
1089{ 1090{
1090#ifdef CONFIG_IWL4965_SPECTRUM_MEASUREMENT 1091#ifdef CONFIG_IWLAGN_SPECTRUM_MEASUREMENT
1091 struct iwl_rx_packet *pkt = (struct iwl_rx_packet *)rxb->skb->data; 1092 struct iwl_rx_packet *pkt = (struct iwl_rx_packet *)rxb->skb->data;
1092 struct iwl4965_spectrum_notification *report = &(pkt->u.spectrum_notif); 1093 struct iwl4965_spectrum_notification *report = &(pkt->u.spectrum_notif);
1093 1094
@@ -3786,7 +3787,7 @@ static ssize_t store_filter_flags(struct device *d,
3786static DEVICE_ATTR(filter_flags, S_IWUSR | S_IRUGO, show_filter_flags, 3787static DEVICE_ATTR(filter_flags, S_IWUSR | S_IRUGO, show_filter_flags,
3787 store_filter_flags); 3788 store_filter_flags);
3788 3789
3789#ifdef CONFIG_IWL4965_SPECTRUM_MEASUREMENT 3790#ifdef CONFIG_IWLAGN_SPECTRUM_MEASUREMENT
3790 3791
3791static ssize_t show_measurement(struct device *d, 3792static ssize_t show_measurement(struct device *d,
3792 struct device_attribute *attr, char *buf) 3793 struct device_attribute *attr, char *buf)
@@ -3857,7 +3858,7 @@ static ssize_t store_measurement(struct device *d,
3857 3858
3858static DEVICE_ATTR(measurement, S_IRUSR | S_IWUSR, 3859static DEVICE_ATTR(measurement, S_IRUSR | S_IWUSR,
3859 show_measurement, store_measurement); 3860 show_measurement, store_measurement);
3860#endif /* CONFIG_IWL4965_SPECTRUM_MEASUREMENT */ 3861#endif /* CONFIG_IWLAGN_SPECTRUM_MEASUREMENT */
3861 3862
3862static ssize_t store_retry_rate(struct device *d, 3863static ssize_t store_retry_rate(struct device *d,
3863 struct device_attribute *attr, 3864 struct device_attribute *attr,
@@ -4105,7 +4106,7 @@ static struct attribute *iwl4965_sysfs_entries[] = {
4105 &dev_attr_channels.attr, 4106 &dev_attr_channels.attr,
4106 &dev_attr_flags.attr, 4107 &dev_attr_flags.attr,
4107 &dev_attr_filter_flags.attr, 4108 &dev_attr_filter_flags.attr,
4108#ifdef CONFIG_IWL4965_SPECTRUM_MEASUREMENT 4109#ifdef CONFIG_IWLAGN_SPECTRUM_MEASUREMENT
4109 &dev_attr_measurement.attr, 4110 &dev_attr_measurement.attr,
4110#endif 4111#endif
4111 &dev_attr_power_level.attr, 4112 &dev_attr_power_level.attr,
@@ -4457,8 +4458,10 @@ static int iwl4965_pci_resume(struct pci_dev *pdev)
4457 4458
4458/* Hardware specific file defines the PCI IDs table for that hardware module */ 4459/* Hardware specific file defines the PCI IDs table for that hardware module */
4459static struct pci_device_id iwl_hw_card_ids[] = { 4460static struct pci_device_id iwl_hw_card_ids[] = {
4461#ifdef CONFIG_IWL4965
4460 {IWL_PCI_DEVICE(0x4229, PCI_ANY_ID, iwl4965_agn_cfg)}, 4462 {IWL_PCI_DEVICE(0x4229, PCI_ANY_ID, iwl4965_agn_cfg)},
4461 {IWL_PCI_DEVICE(0x4230, PCI_ANY_ID, iwl4965_agn_cfg)}, 4463 {IWL_PCI_DEVICE(0x4230, PCI_ANY_ID, iwl4965_agn_cfg)},
4464#endif /* CONFIG_IWL4965 */
4462#ifdef CONFIG_IWL5000 4465#ifdef CONFIG_IWL5000
4463 {IWL_PCI_DEVICE(0x4232, 0x1205, iwl5100_bg_cfg)}, 4466 {IWL_PCI_DEVICE(0x4232, 0x1205, iwl5100_bg_cfg)},
4464 {IWL_PCI_DEVICE(0x4232, 0x1305, iwl5100_bg_cfg)}, 4467 {IWL_PCI_DEVICE(0x4232, 0x1305, iwl5100_bg_cfg)},
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 7ac56b1350b7..848786ab7916 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -36,7 +36,7 @@
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <net/ieee80211_radiotap.h> 37#include <net/ieee80211_radiotap.h>
38 38
39#define DRV_NAME "iwl4965" 39#define DRV_NAME "iwlagn"
40#include "iwl-rfkill.h" 40#include "iwl-rfkill.h"
41#include "iwl-eeprom.h" 41#include "iwl-eeprom.h"
42#include "iwl-4965-hw.h" 42#include "iwl-4965-hw.h"
@@ -808,14 +808,11 @@ struct iwl_chain_noise_data {
808#define EEPROM_SEM_RETRY_LIMIT 1000 /* number of attempts (not time) */ 808#define EEPROM_SEM_RETRY_LIMIT 1000 /* number of attempts (not time) */
809 809
810 810
811#ifdef CONFIG_IWL4965_SPECTRUM_MEASUREMENT
812
813enum { 811enum {
814 MEASUREMENT_READY = (1 << 0), 812 MEASUREMENT_READY = (1 << 0),
815 MEASUREMENT_ACTIVE = (1 << 1), 813 MEASUREMENT_ACTIVE = (1 << 1),
816}; 814};
817 815
818#endif
819 816
820#define IWL_MAX_NUM_QUEUES 20 /* FIXME: do dynamic allocation */ 817#define IWL_MAX_NUM_QUEUES 20 /* FIXME: do dynamic allocation */
821 818
@@ -840,7 +837,7 @@ struct iwl_priv {
840 837
841 struct ieee80211_supported_band bands[IEEE80211_NUM_BANDS]; 838 struct ieee80211_supported_band bands[IEEE80211_NUM_BANDS];
842 839
843#ifdef CONFIG_IWL4965_SPECTRUM_MEASUREMENT 840#ifdef CONFIG_IWLAGN_SPECTRUM_MEASUREMENT
844 /* spectrum measurement report caching */ 841 /* spectrum measurement report caching */
845 struct iwl4965_spectrum_notification measure_report; 842 struct iwl4965_spectrum_notification measure_report;
846 u8 measurement_status; 843 u8 measurement_status;