mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-20 11:28:15 +07:00
5a4f2040fd
Atheros cards with a AR92XX generation (and older) chip usually store their pci(e) initialization vectors on an external eeprom chip. However these chips technically don't need the eeprom chip attached, the AR9280 Datasheet in section "6.1.2 DEVICE_ID" describes that "... if the EEPROM content is not valid, a value of 0xFF1C returns when read from the register". So, they will show up on the system's pci bus. However in that state, ath9k can't load, since it relies on having the correct pci-id, otherwise it doesn't know what chip it actually is. This happens on many embedded devices like routers and accesspoint since they want to keep the BOM low and store the pci(e) initialization vectors together with the calibration data on the system's FLASH, which is out of reach of the ath9k chip. Furthermore, Some devices (like the Cisco Meraki Z1 Cloud Managed Teleworker Gateway) need to be able to initialize the PCIe wifi device. Normally, this should be done as a pci quirk during the early stages of booting linux. However, this isn't possible for devices which have the init code for the Atheros chip stored on NAND in an UBI volume. Hence, this module can be used to initialize the chip when the user-space is ready to extract the init code. Martin Blumenstingl prodived the following fixes: owl-loader: add support for OWL emulation PCI devices owl-loader: don't re-scan the bus when ath9k_pci_fixup failed owl-loader: use dev_* instead of pr_* logging functions owl-loader: auto-generate the eeprom filename as fallback owl-loader: add a debug message when swapping the eeprom data owl-loader: add missing newlines in log messages Reviewed-by: Julian Calaby <julian.calaby@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
218 lines
6.7 KiB
Plaintext
218 lines
6.7 KiB
Plaintext
# SPDX-License-Identifier: ISC
|
|
config ATH9K_HW
|
|
tristate
|
|
config ATH9K_COMMON
|
|
tristate
|
|
select ATH_COMMON
|
|
config ATH9K_COMMON_DEBUG
|
|
bool
|
|
config ATH9K_DFS_DEBUGFS
|
|
def_bool y
|
|
depends on ATH9K_DEBUGFS && ATH9K_DFS_CERTIFIED
|
|
|
|
config ATH9K_BTCOEX_SUPPORT
|
|
bool "Atheros bluetooth coexistence support"
|
|
depends on (ATH9K || ATH9K_HTC)
|
|
default y
|
|
---help---
|
|
Say Y, if you want to use the ath9k/ath9k_htc radios together with
|
|
Bluetooth modules in the same system.
|
|
|
|
config ATH9K
|
|
tristate "Atheros 802.11n wireless cards support"
|
|
depends on MAC80211 && HAS_DMA
|
|
select ATH9K_HW
|
|
select MAC80211_LEDS
|
|
select LEDS_CLASS
|
|
select NEW_LEDS
|
|
select ATH9K_COMMON
|
|
---help---
|
|
This module adds support for wireless adapters based on
|
|
Atheros IEEE 802.11n AR5008, AR9001 and AR9002 family
|
|
of chipsets. For a specific list of supported external
|
|
cards, laptops that already ship with these cards and
|
|
APs that come with these cards refer to ath9k wiki
|
|
products page:
|
|
|
|
http://wireless.kernel.org/en/users/Drivers/ath9k/products
|
|
|
|
If you choose to build a module, it'll be called ath9k.
|
|
|
|
config ATH9K_PCI
|
|
bool "Atheros ath9k PCI/PCIe bus support"
|
|
default y
|
|
depends on ATH9K && PCI
|
|
---help---
|
|
This option enables the PCI bus support in ath9k.
|
|
|
|
Say Y, if you have a compatible PCI/PCIe wireless card.
|
|
|
|
config ATH9K_AHB
|
|
bool "Atheros ath9k AHB bus support"
|
|
depends on ATH9K
|
|
default n
|
|
---help---
|
|
This option enables the AHB bus support in ath9k.
|
|
|
|
Say Y, if you have a SoC with a compatible built-in
|
|
wireless MAC. Say N if unsure.
|
|
|
|
config ATH9K_DEBUGFS
|
|
bool "Atheros ath9k debugging"
|
|
depends on ATH9K && DEBUG_FS
|
|
select MAC80211_DEBUGFS
|
|
select ATH9K_COMMON_DEBUG
|
|
---help---
|
|
Say Y, if you need access to ath9k's statistics for
|
|
interrupts, rate control, etc.
|
|
|
|
Also required for changing debug message flags at run time and for
|
|
TX99.
|
|
|
|
config ATH9K_STATION_STATISTICS
|
|
bool "Detailed station statistics"
|
|
depends on ATH9K && ATH9K_DEBUGFS && DEBUG_FS
|
|
select MAC80211_DEBUGFS
|
|
default n
|
|
---help---
|
|
This option enables detailed statistics for association stations.
|
|
|
|
config ATH9K_TX99
|
|
bool "Atheros ath9k TX99 testing support"
|
|
depends on ATH9K_DEBUGFS && CFG80211_CERTIFICATION_ONUS
|
|
default n
|
|
---help---
|
|
Say N. This should only be enabled on systems undergoing
|
|
certification testing and evaluation in a controlled environment.
|
|
Enabling this will only enable TX99 support, all other modes of
|
|
operation will be disabled.
|
|
|
|
TX99 support enables Specific Absorption Rate (SAR) testing.
|
|
SAR is the unit of measurement for the amount of radio frequency(RF)
|
|
absorbed by the body when using a wireless device. The RF exposure
|
|
limits used are expressed in the terms of SAR, which is a measure
|
|
of the electric and magnetic field strength and power density for
|
|
transmitters operating at frequencies from 300 kHz to 100 GHz.
|
|
Regulatory bodies around the world require that wireless device
|
|
be evaluated to meet the RF exposure limits set forth in the
|
|
governmental SAR regulations.
|
|
|
|
config ATH9K_DFS_CERTIFIED
|
|
bool "Atheros DFS support for certified platforms"
|
|
depends on ATH9K && CFG80211_CERTIFICATION_ONUS
|
|
default n
|
|
---help---
|
|
This option enables DFS support for initiating radiation on
|
|
ath9k. There is no way to dynamically detect if a card was DFS
|
|
certified and as such this is left as a build time option. This
|
|
option should only be enabled by system integrators that can
|
|
guarantee that all the platforms that their kernel will run on
|
|
have obtained appropriate regulatory body certification for a
|
|
respective Atheros card by using ath9k on the target shipping
|
|
platforms.
|
|
|
|
This is currently only a placeholder for future DFS support,
|
|
as DFS support requires more components that still need to be
|
|
developed. At this point enabling this option won't do anything
|
|
except increase code size.
|
|
|
|
config ATH9K_DYNACK
|
|
bool "Atheros ath9k ACK timeout estimation algorithm"
|
|
depends on ATH9K
|
|
default n
|
|
---help---
|
|
This option enables ath9k dynamic ACK timeout estimation algorithm
|
|
based on ACK frame RX timestamp, TX frame timestamp and frame
|
|
duration
|
|
|
|
config ATH9K_WOW
|
|
bool "Wake on Wireless LAN support (EXPERIMENTAL)"
|
|
depends on ATH9K && PM
|
|
default n
|
|
---help---
|
|
This option enables Wake on Wireless LAN support for certain cards.
|
|
Currently, AR9462 is supported.
|
|
|
|
config ATH9K_RFKILL
|
|
bool "Atheros ath9k rfkill support" if EXPERT
|
|
depends on ATH9K
|
|
depends on RFKILL=y || RFKILL=ATH9K
|
|
default y
|
|
help
|
|
Say Y to have ath9k poll the RF-Kill GPIO every couple of
|
|
seconds. Turn off to save power, but enable it if you have
|
|
a platform that can toggle the RF-Kill GPIO.
|
|
|
|
config ATH9K_CHANNEL_CONTEXT
|
|
bool "Channel Context support"
|
|
depends on ATH9K
|
|
default n
|
|
---help---
|
|
This option enables channel context support in ath9k, which is needed
|
|
for multi-channel concurrency. Enable this if P2P PowerSave support
|
|
is required.
|
|
|
|
config ATH9K_PCOEM
|
|
bool "Atheros ath9k support for PC OEM cards" if EXPERT
|
|
depends on ATH9K
|
|
default y
|
|
|
|
config ATH9K_PCI_NO_EEPROM
|
|
tristate "Atheros ath9k pci loader for EEPROM-less chips"
|
|
depends on ATH9K_PCI
|
|
default n
|
|
help
|
|
This separate driver provides a loader in order to support the
|
|
AR500X to AR92XX-generation of ath9k PCI(e) WiFi chips, which have
|
|
their initialization data (which contains the real PCI Device ID
|
|
that ath9k will need) stored together with the calibration data out
|
|
of reach for the ath9k chip.
|
|
|
|
These devices are usually various network appliances, routers or
|
|
access Points and such.
|
|
|
|
If unsure say N.
|
|
|
|
config ATH9K_HTC
|
|
tristate "Atheros HTC based wireless cards support"
|
|
depends on USB && MAC80211
|
|
select ATH9K_HW
|
|
select MAC80211_LEDS
|
|
select LEDS_CLASS
|
|
select NEW_LEDS
|
|
select ATH9K_COMMON
|
|
---help---
|
|
Support for Atheros HTC based cards.
|
|
Chipsets supported: AR9271
|
|
|
|
For more information: http://wireless.kernel.org/en/users/Drivers/ath9k_htc
|
|
|
|
The built module will be ath9k_htc.
|
|
|
|
config ATH9K_HTC_DEBUGFS
|
|
bool "Atheros ath9k_htc debugging"
|
|
depends on ATH9K_HTC && DEBUG_FS
|
|
select ATH9K_COMMON_DEBUG
|
|
---help---
|
|
Say Y, if you need access to ath9k_htc's statistics.
|
|
As well as access to the FFT/spectral data.
|
|
|
|
config ATH9K_HWRNG
|
|
bool "Random number generator support"
|
|
depends on ATH9K && (HW_RANDOM = y || HW_RANDOM = ATH9K)
|
|
default n
|
|
---help---
|
|
This option incorporates the ADC register output as a source of
|
|
randomness into Linux entropy pool (/dev/urandom and /dev/random)
|
|
|
|
Say Y, feeds the entropy directly from the WiFi driver to the input
|
|
pool.
|
|
|
|
config ATH9K_COMMON_SPECTRAL
|
|
bool "Atheros ath9k/ath9k_htc spectral scan support"
|
|
depends on ATH9K_DEBUGFS || ATH9K_HTC_DEBUGFS
|
|
select RELAY
|
|
default n
|
|
---help---
|
|
Say Y to enable access to the FFT/spectral data via debugfs.
|