diff options
| -rw-r--r-- | drivers/net/wireless/iwlwifi/Kconfig | 98 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/Makefile | 11 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 15 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 7 |
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 | ||
| 16 | config IWLWIFI_RFKILL | 16 | config IWLWIFI_RFKILL |
| 17 | boolean "IWLWIFI RF kill support" | 17 | boolean "Iwlwifi RF kill support" |
| 18 | depends on IWLCORE | 18 | depends on IWLCORE |
| 19 | 19 | ||
| 20 | config IWL4965 | 20 | config 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 | |||
| 45 | config 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 | |||
| 51 | config 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 | |||
| 47 | config 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 | 78 | config IWLAGN_SPECTRUM_MEASUREMENT | |
| 55 | config 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 | ||
| 61 | config IWLWIFI_DEBUG | 84 | config 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 | 92 | config 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 | ||
| 87 | config IWL5000 | 98 | config 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 | |||
| 94 | config 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 | ||
| 100 | config IWL3945 | 104 | config 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 | |||
| 6 | iwlcore-$(CONFIG_IWLWIFI_LEDS) += iwl-led.o | 6 | iwlcore-$(CONFIG_IWLWIFI_LEDS) += iwl-led.o |
| 7 | iwlcore-$(CONFIG_IWLWIFI_RFKILL) += iwl-rfkill.o | 7 | iwlcore-$(CONFIG_IWLWIFI_RFKILL) += iwl-rfkill.o |
| 8 | 8 | ||
| 9 | obj-$(CONFIG_IWLAGN) += iwlagn.o | ||
| 10 | iwlagn-objs := iwl-agn.o iwl-agn-rs.o | ||
| 11 | |||
| 12 | iwlagn-$(CONFIG_IWL4965) += iwl-4965.o | ||
| 13 | iwlagn-$(CONFIG_IWL5000) += iwl-5000.o | ||
| 14 | |||
| 9 | obj-$(CONFIG_IWL3945) += iwl3945.o | 15 | obj-$(CONFIG_IWL3945) += iwl3945.o |
| 10 | iwl3945-objs := iwl3945-base.o iwl-3945.o iwl-3945-rs.o | 16 | iwl3945-objs := iwl3945-base.o iwl-3945.o iwl-3945-rs.o |
| 11 | iwl3945-$(CONFIG_IWL3945_LEDS) += iwl-3945-led.o | 17 | iwl3945-$(CONFIG_IWL3945_LEDS) += iwl-3945-led.o |
| 12 | 18 | ||
| 13 | obj-$(CONFIG_IWL4965) += iwl4965.o | ||
| 14 | iwl4965-objs := iwl-agn.o iwl-4965.o iwl-agn-rs.o | ||
| 15 | |||
| 16 | iwl4965-$(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); | |||
| 86 | MODULE_VERSION(DRV_VERSION); | 86 | MODULE_VERSION(DRV_VERSION); |
| 87 | MODULE_AUTHOR(DRV_COPYRIGHT); | 87 | MODULE_AUTHOR(DRV_COPYRIGHT); |
| 88 | MODULE_LICENSE("GPL"); | 88 | MODULE_LICENSE("GPL"); |
| 89 | MODULE_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) | |||
| 1087 | static void iwl4965_rx_spectrum_measure_notif(struct iwl_priv *priv, | 1088 | static 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, | |||
| 3786 | static DEVICE_ATTR(filter_flags, S_IWUSR | S_IRUGO, show_filter_flags, | 3787 | static 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 | ||
| 3791 | static ssize_t show_measurement(struct device *d, | 3792 | static 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 | ||
| 3858 | static DEVICE_ATTR(measurement, S_IRUSR | S_IWUSR, | 3859 | static 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 | ||
| 3862 | static ssize_t store_retry_rate(struct device *d, | 3863 | static 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 */ |
| 4459 | static struct pci_device_id iwl_hw_card_ids[] = { | 4460 | static 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 | |||
| 813 | enum { | 811 | enum { |
| 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; |
