forked from Minki/linux
4613e72dbd
This patch adds the feature to support the test mode operation through the generic netlink channel NL80211_CMD_TESTMODE between intel wireless device iwlwifi and the user space application svtool. The main purpose is to create a transportation layer between the iwlwifi device and the user space application so that the interaction between the user space application svtool and the iwlwifi device in the kernel space is in a way of generic netlink messaging. The detail specific functions are: 1. The function iwl_testmode_cmd() is added to digest the svtool test command from the user space application. The svtool test commands are categorized to three types : commands to be processed by the device ucode, commands to access the registers, and commands to be processed at the driver level(such as reload the ucode). iwl_testmode_cmd() dispatches the commands the corresponding handlers and reply to user space regarding the command execution status. Extra data is returned to the user space application if there's any. 2. The function iwl_testmode_ucode_rx_pkt() is added to multicast all the spontaneous messages from the iwlwifi device to the user space. Regardless the message types, whenever there is a valid spontaneous message received by the iwlwifi ISR, iwl_testmode_ucode_rx_pkt() is invoked to multicast the message content to user space. The message content is not attacked and the message parsing is left to the user space application. Implementation guidelines: 1. The generic netlink messaging for iwliwif test mode is through NL80211_CMD_TESTMODE channel, therefore, the codes need to follow the regulations set by cfg80211.ko to get the actual device instance ieee80211_ops via cfg80211.ko, so that the iwlwifi device is indicated with ieee80211_ops and can be actually accessed. Therefore, a callback iwl_testmode_cmd() is added to the structure iwlagn_hw_ops in iwl-agn.c. 2. It intends to utilize those low level device access APIs from iwlwifi device driver (ie. iwlagn.ko) rather than creating it's own set of device access functions. For example, iwl_send_cmd(), iwl_read32(), iwl_write8(), and iwl_write32() are reused. 3. The main functions are maintained in new files instead of spreading all over the existing iwlwifi driver files. The new files added are : drivers/net/wireless/iwlwifi/iwl-sv-open.c - to handle the user space test mode application command and reply the respective command status to the user space application. - to multicast the spontaneous messages from device to user space. drivers/net/wireless/iwlwifi/iwl-testmode.h - the commonly referenced definitions for the TLVs used in the generic netlink messages Signed-off-by: Cindy H. Kao <cindy.h.kao@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
131 lines
4.4 KiB
Plaintext
131 lines
4.4 KiB
Plaintext
config IWLAGN
|
|
tristate "Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlagn) "
|
|
depends on PCI && MAC80211
|
|
select FW_LOADER
|
|
select NEW_LEDS
|
|
select LEDS_CLASS
|
|
select LEDS_TRIGGERS
|
|
select MAC80211_LEDS
|
|
---help---
|
|
Select to build the driver supporting the:
|
|
|
|
Intel Wireless WiFi Link Next-Gen AGN
|
|
|
|
This option enables support for use with the following hardware:
|
|
Intel Wireless WiFi Link 6250AGN Adapter
|
|
Intel 6000 Series Wi-Fi Adapters (6200AGN and 6300AGN)
|
|
Intel WiFi Link 1000BGN
|
|
Intel Wireless WiFi 5150AGN
|
|
Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN
|
|
Intel 6005 Series Wi-Fi Adapters
|
|
Intel 6030 Series Wi-Fi Adapters
|
|
Intel Wireless WiFi Link 6150BGN 2 Adapter
|
|
Intel 100 Series Wi-Fi Adapters (100BGN and 130BGN)
|
|
Intel 2000 Series Wi-Fi Adapters
|
|
|
|
|
|
This driver uses the kernel's mac80211 subsystem.
|
|
|
|
In order to use this driver, you will need a microcode (uCode)
|
|
image for it. You can obtain the microcode from:
|
|
|
|
<http://intellinuxwireless.org/>.
|
|
|
|
The microcode is typically installed in /lib/firmware. You can
|
|
look in the hotplug script /etc/hotplug/firmware.agent to
|
|
determine which directory FIRMWARE_DIR is set to when the script
|
|
runs.
|
|
|
|
If you want to compile the driver as a module ( = code which can be
|
|
inserted in and removed from the running kernel whenever you want),
|
|
say M here and read <file:Documentation/kbuild/modules.txt>. The
|
|
module will be called iwlagn.
|
|
|
|
menu "Debugging Options"
|
|
depends on IWLAGN
|
|
|
|
config IWLWIFI_DEBUG
|
|
bool "Enable full debugging output in the iwlagn driver"
|
|
depends on IWLAGN
|
|
---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/class/net/wlan0/device/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/class/net/wlan0/device/debug_level
|
|
|
|
You can find the list of debug mask values in:
|
|
drivers/net/wireless/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_DEBUGFS
|
|
bool "iwlagn debugfs support"
|
|
depends on IWLAGN && MAC80211_DEBUGFS
|
|
---help---
|
|
Enable creation of debugfs files for the iwlwifi drivers. This
|
|
is a low-impact option that allows getting insight into the
|
|
driver's state at runtime.
|
|
|
|
config IWLWIFI_DEBUG_EXPERIMENTAL_UCODE
|
|
bool "Experimental uCode support"
|
|
depends on IWLAGN && IWLWIFI_DEBUG
|
|
---help---
|
|
Enable use of experimental ucode for testing and debugging.
|
|
|
|
config IWLWIFI_DEVICE_TRACING
|
|
bool "iwlwifi device access tracing"
|
|
depends on IWLAGN
|
|
depends on EVENT_TRACING
|
|
help
|
|
Say Y here to trace all commands, including TX frames and IO
|
|
accesses, sent to the device. If you say yes, iwlwifi will
|
|
register with the ftrace framework for event tracing and dump
|
|
all this information to the ringbuffer, you may need to
|
|
increase the ringbuffer size. See the ftrace documentation
|
|
for more information.
|
|
|
|
When tracing is not enabled, this option still has some
|
|
(though rather small) overhead.
|
|
|
|
If unsure, say Y so we can help you better when problems
|
|
occur.
|
|
endmenu
|
|
|
|
config IWLWIFI_DEVICE_SVTOOL
|
|
bool "iwlwifi device svtool support"
|
|
depends on IWLAGN
|
|
select NL80211_TESTMODE
|
|
help
|
|
This option enables the svtool support for iwlwifi device through
|
|
NL80211_TESTMODE. svtool is a software validation tool that runs in
|
|
the user space and interacts with the device in the kernel space
|
|
through the generic netlink message via NL80211_TESTMODE channel.
|
|
|
|
config IWL_P2P
|
|
bool "iwlwifi experimental P2P support"
|
|
depends on IWLAGN
|
|
help
|
|
This option enables experimental P2P support for some devices
|
|
based on microcode support. Since P2P support is still under
|
|
development, this option may even enable it for some devices
|
|
now that turn out to not support it in the future due to
|
|
microcode restrictions.
|
|
|
|
To determine if your microcode supports the experimental P2P
|
|
offered by this option, check if the driver advertises AP
|
|
support when it is loaded.
|
|
|
|
Say Y only if you want to experiment with P2P.
|
|
|