drivers/net/wireless/admtek/adm8211.c
Source file repositories/reference/linux-study-clean/drivers/net/wireless/admtek/adm8211.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/admtek/adm8211.c- Extension
.c- Size
- 55274 bytes
- Lines
- 1999
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: operation-table or driver-model contract
- Status
- pattern 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 an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/interrupt.hlinux/if.hlinux/skbuff.hlinux/slab.hlinux/etherdevice.hlinux/pci.hlinux/delay.hlinux/crc32.hlinux/eeprom_93cx6.hlinux/module.hnet/mac80211.hadm8211.h
Detected Declarations
function adm8211_eeprom_register_readfunction adm8211_eeprom_register_writefunction adm8211_read_eepromfunction adm8211_write_sramfunction adm8211_write_sram_bytesfunction adm8211_clear_sramfunction adm8211_get_statsfunction adm8211_interrupt_tcifunction adm8211_interrupt_rcifunction adm8211_interruptfunction adm8211_write_bbpfunction adm8211_rf_set_channelfunction adm8211_update_modefunction adm8211_hw_init_synfunction adm8211_hw_init_bbpfunction adm8211_set_ratefunction adm8211_hw_initfunction adm8211_hw_resetfunction adm8211_get_tsftfunction adm8211_set_intervalfunction adm8211_set_bssidfunction adm8211_configfunction adm8211_bss_info_changedfunction adm8211_prepare_multicastfunction netdev_hw_addr_list_for_eachfunction adm8211_configure_filterfunction adm8211_add_interfacefunction adm8211_remove_interfacefunction adm8211_init_ringsfunction adm8211_free_ringsfunction adm8211_startfunction adm8211_stopfunction adm8211_calc_durationsfunction adm8211_tx_rawfunction adm8211_txfunction adm8211_alloc_ringsfunction adm8211_probefunction adm8211_remove
Annotated Snippet
static struct pci_driver adm8211_driver = {
.name = "adm8211",
.id_table = adm8211_pci_id_table,
.probe = adm8211_probe,
.remove = adm8211_remove,
.driver.pm = &adm8211_pm_ops,
};
module_pci_driver(adm8211_driver);
Annotation
- Immediate include surface: `linux/interrupt.h`, `linux/if.h`, `linux/skbuff.h`, `linux/slab.h`, `linux/etherdevice.h`, `linux/pci.h`, `linux/delay.h`, `linux/crc32.h`.
- Detected declarations: `function adm8211_eeprom_register_read`, `function adm8211_eeprom_register_write`, `function adm8211_read_eeprom`, `function adm8211_write_sram`, `function adm8211_write_sram_bytes`, `function adm8211_clear_sram`, `function adm8211_get_stats`, `function adm8211_interrupt_tci`, `function adm8211_interrupt_rci`, `function adm8211_interrupt`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: pattern implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.