drivers/net/wireless/realtek/rtw88/coex.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/realtek/rtw88/coex.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/realtek/rtw88/coex.h- Extension
.h- Size
- 10931 bytes
- Lines
- 434
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct coex_table_parastruct coex_tdma_parastruct coex_5g_afh_mapstruct coex_rf_paraenum coex_mp_info_openum coex_set_ant_phaseenum coex_runreasonenum coex_lte_coex_table_typeenum coex_gnt_setup_stateenum coex_ext_ant_switch_pos_typeenum coex_ext_ant_switch_ctrl_typeenum coex_algorithmenum coex_bt_profileenum coex_wl_link_modeenum coex_wl2bt_scoreboardenum coex_power_save_typeenum coex_rssi_stateenum coex_notify_type_ipsenum coex_notify_type_lpsenum coex_notify_type_scanenum coex_notify_type_switchbandenum coex_notify_type_associateenum coex_notify_type_media_statusenum coex_bt_statusenum coex_wl_tput_direnum coex_wl_priority_maskenum coex_commom_chip_setupenum coex_indirect_reg_typeenum coex_pstdma_typeenum coex_btrssi_typefunction rtw_coex_set_initfunction rtw_coex_set_ant_switchfunction rtw_coex_set_gnt_fixfunction rtw_coex_set_gnt_debugfunction rtw_coex_set_rfe_typefunction rtw_coex_set_wl_tx_powerfunction rtw_coex_set_wl_rx_gainfunction rtw_coex_disabledfunction rtw_coex_active_query_bt_info
Annotated Snippet
struct coex_table_para {
u32 bt;
u32 wl;
};
struct coex_tdma_para {
u8 para[5];
};
struct coex_5g_afh_map {
u32 wl_5g_ch;
u8 bt_skip_ch;
u8 bt_skip_span;
};
struct coex_rf_para {
u8 wl_pwr_dec_lvl;
u8 bt_pwr_dec_lvl;
bool wl_low_gain_en;
u8 bt_lna_lvl;
};
static inline void rtw_coex_set_init(struct rtw_dev *rtwdev)
{
const struct rtw_chip_info *chip = rtwdev->chip;
chip->ops->coex_set_init(rtwdev);
}
static inline
void rtw_coex_set_ant_switch(struct rtw_dev *rtwdev, u8 ctrl_type, u8 pos_type)
{
const struct rtw_chip_info *chip = rtwdev->chip;
if (!chip->ops->coex_set_ant_switch)
return;
chip->ops->coex_set_ant_switch(rtwdev, ctrl_type, pos_type);
}
static inline void rtw_coex_set_gnt_fix(struct rtw_dev *rtwdev)
{
const struct rtw_chip_info *chip = rtwdev->chip;
chip->ops->coex_set_gnt_fix(rtwdev);
}
static inline void rtw_coex_set_gnt_debug(struct rtw_dev *rtwdev)
{
const struct rtw_chip_info *chip = rtwdev->chip;
chip->ops->coex_set_gnt_debug(rtwdev);
}
static inline void rtw_coex_set_rfe_type(struct rtw_dev *rtwdev)
{
const struct rtw_chip_info *chip = rtwdev->chip;
chip->ops->coex_set_rfe_type(rtwdev);
}
static inline void rtw_coex_set_wl_tx_power(struct rtw_dev *rtwdev, u8 wl_pwr)
{
const struct rtw_chip_info *chip = rtwdev->chip;
chip->ops->coex_set_wl_tx_power(rtwdev, wl_pwr);
}
static inline
void rtw_coex_set_wl_rx_gain(struct rtw_dev *rtwdev, bool low_gain)
{
const struct rtw_chip_info *chip = rtwdev->chip;
chip->ops->coex_set_wl_rx_gain(rtwdev, low_gain);
}
void rtw_coex_info_response(struct rtw_dev *rtwdev, struct sk_buff *skb);
u32 rtw_coex_read_indirect_reg(struct rtw_dev *rtwdev, u16 addr);
void rtw_coex_write_indirect_reg(struct rtw_dev *rtwdev, u16 addr,
u32 mask, u32 val);
void rtw_coex_write_scbd(struct rtw_dev *rtwdev, u16 bitpos, bool set);
void rtw_coex_query_bt_info(struct rtw_dev *rtwdev);
void rtw_coex_bt_relink_work(struct work_struct *work);
void rtw_coex_bt_reenable_work(struct work_struct *work);
void rtw_coex_defreeze_work(struct work_struct *work);
void rtw_coex_wl_remain_work(struct work_struct *work);
void rtw_coex_bt_remain_work(struct work_struct *work);
void rtw_coex_wl_connecting_work(struct work_struct *work);
void rtw_coex_bt_multi_link_remain_work(struct work_struct *work);
Annotation
- Detected declarations: `struct coex_table_para`, `struct coex_tdma_para`, `struct coex_5g_afh_map`, `struct coex_rf_para`, `enum coex_mp_info_op`, `enum coex_set_ant_phase`, `enum coex_runreason`, `enum coex_lte_coex_table_type`, `enum coex_gnt_setup_state`, `enum coex_ext_ant_switch_pos_type`.
- 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.