drivers/net/wireless/ath/ath5k/ath5k.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath5k/ath5k.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath5k/ath5k.h- Extension
.h- Size
- 54550 bytes
- Lines
- 1715
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/io.hlinux/interrupt.hlinux/types.hlinux/average.hlinux/leds.hnet/mac80211.hnet/cfg80211.hdesc.heeprom.hdebug.h../ath.hani.h
Detected Declarations
struct ath5k_tx_statusstruct ath5k_txqstruct ath5k_txq_infostruct ath5k_rx_statusstruct ath5k_gainstruct ath5k_athchan_2ghzstruct ath5k_capabilitiesstruct ath5k_nfcal_histstruct ath5k_ledstruct ath5k_rfkillstruct ath5k_statisticsstruct ath5k_hwstruct ath_bus_opsenum ath5k_versionenum ath5k_radioenum ath5k_driver_modeenum ath5k_ant_modeenum ath5k_bw_modeenum ath5k_tx_queueenum ath5k_tx_queue_subtypeenum ath5k_tx_queue_idenum ath5k_pkt_typeenum ath5k_rfgainenum ath5k_dmasizeenum ath5k_intenum ath5k_calibration_maskenum ath5k_power_modefunction ath5k_hw_reg_readfunction ath5k_hw_reg_writefunction ath5k_hw_reg_readfunction ath5k_hw_reg_writefunction ath5k_get_bus_typefunction ath5k_read_cachesizefunction ath5k_hw_nvram_readfunction ath5k_hw_bitswap
Annotated Snippet
struct ath5k_tx_status {
u16 ts_seqnum;
u16 ts_tstamp;
u8 ts_status;
u8 ts_final_idx;
u8 ts_final_retry;
s8 ts_rssi;
u8 ts_shortretry;
u8 ts_virtcol;
u8 ts_antenna;
};
#define AR5K_TXSTAT_ALTRATE 0x80
#define AR5K_TXERR_XRETRY 0x01
#define AR5K_TXERR_FILT 0x02
#define AR5K_TXERR_FIFO 0x04
/**
* enum ath5k_tx_queue - Queue types used to classify tx queues.
* @AR5K_TX_QUEUE_INACTIVE: q is unused -- see ath5k_hw_release_tx_queue
* @AR5K_TX_QUEUE_DATA: A normal data queue
* @AR5K_TX_QUEUE_BEACON: The beacon queue
* @AR5K_TX_QUEUE_CAB: The after-beacon queue
* @AR5K_TX_QUEUE_UAPSD: Unscheduled Automatic Power Save Delivery queue
*/
enum ath5k_tx_queue {
AR5K_TX_QUEUE_INACTIVE = 0,
AR5K_TX_QUEUE_DATA,
AR5K_TX_QUEUE_BEACON,
AR5K_TX_QUEUE_CAB,
AR5K_TX_QUEUE_UAPSD,
};
#define AR5K_NUM_TX_QUEUES 10
#define AR5K_NUM_TX_QUEUES_NOQCU 2
/**
* enum ath5k_tx_queue_subtype - Queue sub-types to classify normal data queues
* @AR5K_WME_AC_BK: Background traffic
* @AR5K_WME_AC_BE: Best-effort (normal) traffic
* @AR5K_WME_AC_VI: Video traffic
* @AR5K_WME_AC_VO: Voice traffic
*
* These are the 4 Access Categories as defined in
* WME spec. 0 is the lowest priority and 4 is the
* highest. Normal data that hasn't been classified
* goes to the Best Effort AC.
*/
enum ath5k_tx_queue_subtype {
AR5K_WME_AC_BK = 0,
AR5K_WME_AC_BE,
AR5K_WME_AC_VI,
AR5K_WME_AC_VO,
};
/**
* enum ath5k_tx_queue_id - Queue ID numbers as returned by the hw functions
* @AR5K_TX_QUEUE_ID_NOQCU_DATA: Data queue on AR5210 (no QCU available)
* @AR5K_TX_QUEUE_ID_NOQCU_BEACON: Beacon queue on AR5210 (no QCU available)
* @AR5K_TX_QUEUE_ID_DATA_MIN: Data queue min index
* @AR5K_TX_QUEUE_ID_DATA_MAX: Data queue max index
* @AR5K_TX_QUEUE_ID_CAB: Content after beacon queue
* @AR5K_TX_QUEUE_ID_BEACON: Beacon queue
* @AR5K_TX_QUEUE_ID_UAPSD: Urgent Automatic Power Save Delivery,
*
* Each number represents a hw queue. If hw does not support hw queues
* (eg 5210) all data goes in one queue.
*/
enum ath5k_tx_queue_id {
AR5K_TX_QUEUE_ID_NOQCU_DATA = 0,
AR5K_TX_QUEUE_ID_NOQCU_BEACON = 1,
AR5K_TX_QUEUE_ID_DATA_MIN = 0,
AR5K_TX_QUEUE_ID_DATA_MAX = 3,
AR5K_TX_QUEUE_ID_UAPSD = 7,
AR5K_TX_QUEUE_ID_CAB = 8,
AR5K_TX_QUEUE_ID_BEACON = 9,
};
/*
* Flags to set hw queue's parameters...
*/
#define AR5K_TXQ_FLAG_TXOKINT_ENABLE 0x0001 /* Enable TXOK interrupt */
#define AR5K_TXQ_FLAG_TXERRINT_ENABLE 0x0002 /* Enable TXERR interrupt */
#define AR5K_TXQ_FLAG_TXEOLINT_ENABLE 0x0004 /* Enable TXEOL interrupt -not used- */
#define AR5K_TXQ_FLAG_TXDESCINT_ENABLE 0x0008 /* Enable TXDESC interrupt -not used- */
#define AR5K_TXQ_FLAG_TXURNINT_ENABLE 0x0010 /* Enable TXURN interrupt */
#define AR5K_TXQ_FLAG_CBRORNINT_ENABLE 0x0020 /* Enable CBRORN interrupt */
#define AR5K_TXQ_FLAG_CBRURNINT_ENABLE 0x0040 /* Enable CBRURN interrupt */
#define AR5K_TXQ_FLAG_QTRIGINT_ENABLE 0x0080 /* Enable QTRIG interrupt */
#define AR5K_TXQ_FLAG_TXNOFRMINT_ENABLE 0x0100 /* Enable TXNOFRM interrupt */
Annotation
- Immediate include surface: `linux/io.h`, `linux/interrupt.h`, `linux/types.h`, `linux/average.h`, `linux/leds.h`, `net/mac80211.h`, `net/cfg80211.h`, `desc.h`.
- Detected declarations: `struct ath5k_tx_status`, `struct ath5k_txq`, `struct ath5k_txq_info`, `struct ath5k_rx_status`, `struct ath5k_gain`, `struct ath5k_athchan_2ghz`, `struct ath5k_capabilities`, `struct ath5k_nfcal_hist`, `struct ath5k_led`, `struct ath5k_rfkill`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.