drivers/net/wireless/realtek/rtw89/pci.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/realtek/rtw89/pci.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/realtek/rtw89/pci.h- Extension
.h- Size
- 60590 bytes
- Lines
- 1949
- 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
txrx.h
Detected Declarations
struct rtw89_pci_isrsstruct rtw89_pcistruct rtw89_pci_bd_idx_addrstruct rtw89_pci_ch_dma_addrstruct rtw89_pci_ch_dma_addr_setstruct rtw89_pci_bd_ramstruct rtw89_pci_isr_defstruct rtw89_pci_gen_defstruct rtw89_pci_ssid_quirkstruct rtw89_pci_rpp_infostruct rtw89_pci_infostruct rtw89_pci_tx_datastruct rtw89_pci_rx_infostruct rtw89_pci_tx_bd_32struct rtw89_pci_tx_wp_infostruct rtw89_pci_tx_addr_info_32struct rtw89_pci_tx_addr_info_32_v1struct rtw89_pci_rpp_fmtstruct rtw89_pci_rpp_fmt_v1struct rtw89_pci_rx_bd_32struct rtw89_pci_rxbd_infostruct rtw89_pci_tx_wdstruct rtw89_pci_dma_ringstruct rtw89_pci_dma_poolstruct rtw89_pci_tx_wd_ringstruct rtw89_pci_tx_ringstruct rtw89_pci_tx_ringsstruct rtw89_pci_rx_ringstruct rtw89_pci_rx_ringsstruct rtw89_pci_isrsstruct rtw89_pcistruct pci_device_idenum rtw89_pcie_phyenum rtw89_pcie_l0sdlyenum rtw89_pcie_l1dlyenum rtw89_pcie_clkdly_hwenum rtw89_pcie_clkdly_hw_v1enum mac_ax_bd_trunc_modeenum mac_ax_rxbd_modeenum mac_ax_tag_modeenum mac_ax_tx_burstenum mac_ax_rx_burstenum mac_ax_wd_dma_intvlenum mac_ax_multi_tag_numenum mac_ax_lbc_tmrenum mac_ax_pcie_func_ctrlenum mac_ax_io_rcy_tmrenum rtw89_pci_intr_mask_cfg
Annotated Snippet
struct rtw89_pci_bd_idx_addr {
u32 tx_bd_addrs[RTW89_TXCH_NUM];
u32 rx_bd_addrs[RTW89_RXCH_NUM];
};
struct rtw89_pci_ch_dma_addr {
u32 num; /* also `offset` addr for group_bd_addr design */
u32 idx;
u32 bdram;
u32 desa_l;
u32 desa_h;
};
struct rtw89_pci_ch_dma_addr_set {
struct rtw89_pci_ch_dma_addr tx[RTW89_TXCH_NUM];
struct rtw89_pci_ch_dma_addr rx[RTW89_RXCH_NUM];
};
struct rtw89_pci_bd_ram {
u8 start_idx;
u8 max_num;
u8 min_num;
};
struct rtw89_pci_isr_def {
u32 isr_rdu;
u32 isr_halt_c2h;
u32 isr_wdt_timeout;
u32 isr_sps_ocp;
struct rtw89_reg2_def isr_clear_rpq;
struct rtw89_reg2_def isr_clear_rxq;
};
struct rtw89_pci_gen_def {
int (*mac_pre_init)(struct rtw89_dev *rtwdev);
int (*mac_pre_deinit)(struct rtw89_dev *rtwdev);
int (*mac_post_init)(struct rtw89_dev *rtwdev);
void (*clr_idx_all)(struct rtw89_dev *rtwdev);
int (*rst_bdram)(struct rtw89_dev *rtwdev);
int (*lv1rst_stop_dma)(struct rtw89_dev *rtwdev);
int (*lv1rst_start_dma)(struct rtw89_dev *rtwdev);
void (*ctrl_txdma_ch)(struct rtw89_dev *rtwdev, bool enable);
void (*ctrl_txdma_fw_ch)(struct rtw89_dev *rtwdev, bool enable);
int (*poll_txdma_ch_idle)(struct rtw89_dev *rtwdev);
void (*aspm_set)(struct rtw89_dev *rtwdev, bool enable);
void (*clkreq_set)(struct rtw89_dev *rtwdev, bool enable);
void (*l1ss_set)(struct rtw89_dev *rtwdev, bool enable);
void (*disable_eq)(struct rtw89_dev *rtwdev);
void (*power_wake)(struct rtw89_dev *rtwdev, bool pwr_up);
};
#define RTW89_PCI_SSID(v, d, ssv, ssd, cust) \
.vendor = v, .device = d, .subsystem_vendor = ssv, .subsystem_device = ssd, \
.custid = RTW89_CUSTID_ ##cust
struct rtw89_pci_ssid_quirk {
unsigned short vendor;
unsigned short device;
unsigned short subsystem_vendor;
unsigned short subsystem_device;
enum rtw89_custid custid;
unsigned long bitmap; /* bitmap of rtw89_quirks */
};
struct rtw89_pci_rpp_info {
u16 seq;
u8 qsel;
u8 tx_status;
u8 txch;
};
struct rtw89_pci_info {
const struct rtw89_pci_gen_def *gen_def;
const struct rtw89_pci_isr_def *isr_def;
enum mac_ax_bd_trunc_mode txbd_trunc_mode;
enum mac_ax_bd_trunc_mode rxbd_trunc_mode;
enum mac_ax_rxbd_mode rxbd_mode;
enum mac_ax_tag_mode tag_mode;
enum mac_ax_tx_burst tx_burst;
enum mac_ax_rx_burst rx_burst;
enum mac_ax_wd_dma_intvl wd_dma_idle_intvl;
enum mac_ax_wd_dma_intvl wd_dma_act_intvl;
enum mac_ax_multi_tag_num multi_tag_num;
enum mac_ax_pcie_func_ctrl lbc_en;
enum mac_ax_lbc_tmr lbc_tmr;
Annotation
- Immediate include surface: `txrx.h`.
- Detected declarations: `struct rtw89_pci_isrs`, `struct rtw89_pci`, `struct rtw89_pci_bd_idx_addr`, `struct rtw89_pci_ch_dma_addr`, `struct rtw89_pci_ch_dma_addr_set`, `struct rtw89_pci_bd_ram`, `struct rtw89_pci_isr_def`, `struct rtw89_pci_gen_def`, `struct rtw89_pci_ssid_quirk`, `struct rtw89_pci_rpp_info`.
- 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.