#include <linux/pci.h>
#include "mac.h"
#include "pci.h"
#include "reg.h"
#include "ser.h"
static bool rtw89_pci_disable_clkreq;
static bool rtw89_pci_disable_aspm_l1;
static bool rtw89_pci_disable_l1ss;
module_param_named(disable_clkreq, rtw89_pci_disable_clkreq, bool, 0644);
module_param_named(disable_aspm_l1, rtw89_pci_disable_aspm_l1, bool, 0644);
module_param_named(disable_aspm_l1ss, rtw89_pci_disable_l1ss, bool, 0644);
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
static int rtw89_pci_get_phy_offset_by_link_speed(struct rtw89_dev *rtwdev,
u32 *phy_offset)
{ … }
static int rtw89_pci_rst_bdram_ax(struct rtw89_dev *rtwdev)
{ … }
static u32 rtw89_pci_dma_recalc(struct rtw89_dev *rtwdev,
struct rtw89_pci_dma_ring *bd_ring,
u32 cur_idx, bool tx)
{ … }
static u32 rtw89_pci_txbd_recalc(struct rtw89_dev *rtwdev,
struct rtw89_pci_tx_ring *tx_ring)
{ … }
static void rtw89_pci_release_fwcmd(struct rtw89_dev *rtwdev,
struct rtw89_pci *rtwpci,
u32 cnt, bool release_all)
{ … }
static void rtw89_pci_reclaim_tx_fwcmd(struct rtw89_dev *rtwdev,
struct rtw89_pci *rtwpci)
{ … }
static u32 rtw89_pci_rxbd_recalc(struct rtw89_dev *rtwdev,
struct rtw89_pci_rx_ring *rx_ring)
{ … }
static void rtw89_pci_sync_skb_for_cpu(struct rtw89_dev *rtwdev,
struct sk_buff *skb)
{ … }
static void rtw89_pci_sync_skb_for_device(struct rtw89_dev *rtwdev,
struct sk_buff *skb)
{ … }
static void rtw89_pci_rxbd_info_update(struct rtw89_dev *rtwdev,
struct sk_buff *skb)
{ … }
static int rtw89_pci_validate_rx_tag(struct rtw89_dev *rtwdev,
struct rtw89_pci_rx_ring *rx_ring,
struct sk_buff *skb)
{ … }
static
int rtw89_pci_sync_skb_for_device_and_validate_rx_info(struct rtw89_dev *rtwdev,
struct rtw89_pci_rx_ring *rx_ring,
struct sk_buff *skb)
{ … }
static void rtw89_pci_ctrl_txdma_ch_ax(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void rtw89_pci_ctrl_txdma_fw_ch_ax(struct rtw89_dev *rtwdev, bool enable)
{ … }
static bool
rtw89_skb_put_rx_data(struct rtw89_dev *rtwdev, bool fs, bool ls,
struct sk_buff *new,
const struct sk_buff *skb, u32 offset,
const struct rtw89_pci_rx_info *rx_info,
const struct rtw89_rx_desc_info *desc_info)
{ … }
static u32 rtw89_pci_get_rx_skb_idx(struct rtw89_dev *rtwdev,
struct rtw89_pci_dma_ring *bd_ring)
{ … }
static u32 rtw89_pci_rxbd_deliver_skbs(struct rtw89_dev *rtwdev,
struct rtw89_pci_rx_ring *rx_ring)
{ … }
static void rtw89_pci_rxbd_deliver(struct rtw89_dev *rtwdev,
struct rtw89_pci_rx_ring *rx_ring,
u32 cnt)
{ … }
static int rtw89_pci_poll_rxq_dma(struct rtw89_dev *rtwdev,
struct rtw89_pci *rtwpci, int budget)
{ … }
static void rtw89_pci_tx_status(struct rtw89_dev *rtwdev,
struct rtw89_pci_tx_ring *tx_ring,
struct sk_buff *skb, u8 tx_status)
{ … }
static void rtw89_pci_reclaim_txbd(struct rtw89_dev *rtwdev, struct rtw89_pci_tx_ring *tx_ring)
{ … }
static void rtw89_pci_release_busy_txwd(struct rtw89_dev *rtwdev,
struct rtw89_pci_tx_ring *tx_ring)
{ … }
static void rtw89_pci_release_txwd_skb(struct rtw89_dev *rtwdev,
struct rtw89_pci_tx_ring *tx_ring,
struct rtw89_pci_tx_wd *txwd, u16 seq,
u8 tx_status)
{ … }
static void rtw89_pci_release_rpp(struct rtw89_dev *rtwdev,
struct rtw89_pci_rpp_fmt *rpp)
{ … }
static void rtw89_pci_release_pending_txwd_skb(struct rtw89_dev *rtwdev,
struct rtw89_pci_tx_ring *tx_ring)
{ … }
static u32 rtw89_pci_release_tx_skbs(struct rtw89_dev *rtwdev,
struct rtw89_pci_rx_ring *rx_ring,
u32 max_cnt)
{ … }
static void rtw89_pci_release_tx(struct rtw89_dev *rtwdev,
struct rtw89_pci_rx_ring *rx_ring,
u32 cnt)
{ … }
static int rtw89_pci_poll_rpq_dma(struct rtw89_dev *rtwdev,
struct rtw89_pci *rtwpci, int budget)
{ … }
static void rtw89_pci_isr_rxd_unavail(struct rtw89_dev *rtwdev,
struct rtw89_pci *rtwpci)
{ … }
void rtw89_pci_recognize_intrs(struct rtw89_dev *rtwdev,
struct rtw89_pci *rtwpci,
struct rtw89_pci_isrs *isrs)
{ … }
EXPORT_SYMBOL(…);
void rtw89_pci_recognize_intrs_v1(struct rtw89_dev *rtwdev,
struct rtw89_pci *rtwpci,
struct rtw89_pci_isrs *isrs)
{ … }
EXPORT_SYMBOL(…);
void rtw89_pci_recognize_intrs_v2(struct rtw89_dev *rtwdev,
struct rtw89_pci *rtwpci,
struct rtw89_pci_isrs *isrs)
{ … }
EXPORT_SYMBOL(…);
void rtw89_pci_enable_intr(struct rtw89_dev *rtwdev, struct rtw89_pci *rtwpci)
{ … }
EXPORT_SYMBOL(…);
void rtw89_pci_disable_intr(struct rtw89_dev *rtwdev, struct rtw89_pci *rtwpci)
{ … }
EXPORT_SYMBOL(…);
void rtw89_pci_enable_intr_v1(struct rtw89_dev *rtwdev, struct rtw89_pci *rtwpci)
{ … }
EXPORT_SYMBOL(…);
void rtw89_pci_disable_intr_v1(struct rtw89_dev *rtwdev, struct rtw89_pci *rtwpci)
{ … }
EXPORT_SYMBOL(…);
void rtw89_pci_enable_intr_v2(struct rtw89_dev *rtwdev, struct rtw89_pci *rtwpci)
{ … }
EXPORT_SYMBOL(…);
void rtw89_pci_disable_intr_v2(struct rtw89_dev *rtwdev, struct rtw89_pci *rtwpci)
{ … }
EXPORT_SYMBOL(…);
static void rtw89_pci_ops_recovery_start(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_ops_recovery_complete(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_low_power_interrupt_handler(struct rtw89_dev *rtwdev)
{ … }
static irqreturn_t rtw89_pci_interrupt_threadfn(int irq, void *dev)
{ … }
static irqreturn_t rtw89_pci_interrupt_handler(int irq, void *dev)
{ … }
#define DEF_TXCHADDRS_TYPE2(gen, ch_idx, txch, v...) …
#define DEF_TXCHADDRS_TYPE1 …
#define DEF_TXCHADDRS …
#define DEF_RXCHADDRS …
const struct rtw89_pci_ch_dma_addr_set rtw89_pci_ch_dma_addr_set = …;
EXPORT_SYMBOL(…);
const struct rtw89_pci_ch_dma_addr_set rtw89_pci_ch_dma_addr_set_v1 = …;
EXPORT_SYMBOL(…);
const struct rtw89_pci_ch_dma_addr_set rtw89_pci_ch_dma_addr_set_be = …;
EXPORT_SYMBOL(…);
#undef DEF_TXCHADDRS_TYPE1
#undef DEF_TXCHADDRS
#undef DEF_RXCHADDRS
static int rtw89_pci_get_txch_addrs(struct rtw89_dev *rtwdev,
enum rtw89_tx_channel txch,
const struct rtw89_pci_ch_dma_addr **addr)
{ … }
static int rtw89_pci_get_rxch_addrs(struct rtw89_dev *rtwdev,
enum rtw89_rx_channel rxch,
const struct rtw89_pci_ch_dma_addr **addr)
{ … }
static u32 rtw89_pci_get_avail_txbd_num(struct rtw89_pci_tx_ring *ring)
{ … }
static
u32 __rtw89_pci_check_and_reclaim_tx_fwcmd_resource(struct rtw89_dev *rtwdev)
{ … }
static
u32 __rtw89_pci_check_and_reclaim_tx_resource_noio(struct rtw89_dev *rtwdev,
u8 txch)
{ … }
static u32 __rtw89_pci_check_and_reclaim_tx_resource(struct rtw89_dev *rtwdev,
u8 txch)
{ … }
static u32 rtw89_pci_check_and_reclaim_tx_resource(struct rtw89_dev *rtwdev,
u8 txch)
{ … }
static void __rtw89_pci_tx_kick_off(struct rtw89_dev *rtwdev, struct rtw89_pci_tx_ring *tx_ring)
{ … }
static void rtw89_pci_tx_bd_ring_update(struct rtw89_dev *rtwdev, struct rtw89_pci_tx_ring *tx_ring,
int n_txbd)
{ … }
static void rtw89_pci_ops_tx_kick_off(struct rtw89_dev *rtwdev, u8 txch)
{ … }
static void rtw89_pci_tx_kick_off_pending(struct rtw89_dev *rtwdev)
{ … }
static void __pci_flush_txch(struct rtw89_dev *rtwdev, u8 txch, bool drop)
{ … }
static void __rtw89_pci_ops_flush_txchs(struct rtw89_dev *rtwdev, u32 txchs,
bool drop)
{ … }
static void rtw89_pci_ops_flush_queues(struct rtw89_dev *rtwdev, u32 queues,
bool drop)
{ … }
u32 rtw89_pci_fill_txaddr_info(struct rtw89_dev *rtwdev,
void *txaddr_info_addr, u32 total_len,
dma_addr_t dma, u8 *add_info_nr)
{ … }
EXPORT_SYMBOL(…);
u32 rtw89_pci_fill_txaddr_info_v1(struct rtw89_dev *rtwdev,
void *txaddr_info_addr, u32 total_len,
dma_addr_t dma, u8 *add_info_nr)
{ … }
EXPORT_SYMBOL(…);
static int rtw89_pci_txwd_submit(struct rtw89_dev *rtwdev,
struct rtw89_pci_tx_ring *tx_ring,
struct rtw89_pci_tx_wd *txwd,
struct rtw89_core_tx_request *tx_req)
{ … }
static int rtw89_pci_fwcmd_submit(struct rtw89_dev *rtwdev,
struct rtw89_pci_tx_ring *tx_ring,
struct rtw89_pci_tx_bd_32 *txbd,
struct rtw89_core_tx_request *tx_req)
{ … }
static int rtw89_pci_txbd_submit(struct rtw89_dev *rtwdev,
struct rtw89_pci_tx_ring *tx_ring,
struct rtw89_pci_tx_bd_32 *txbd,
struct rtw89_core_tx_request *tx_req)
{ … }
static int rtw89_pci_tx_write(struct rtw89_dev *rtwdev, struct rtw89_core_tx_request *tx_req,
u8 txch)
{ … }
static int rtw89_pci_ops_tx_write(struct rtw89_dev *rtwdev, struct rtw89_core_tx_request *tx_req)
{ … }
const struct rtw89_pci_bd_ram rtw89_bd_ram_table_dual[RTW89_TXCH_NUM] = …;
EXPORT_SYMBOL(…);
const struct rtw89_pci_bd_ram rtw89_bd_ram_table_single[RTW89_TXCH_NUM] = …;
EXPORT_SYMBOL(…);
static void rtw89_pci_init_wp_16sel(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_reset_trx_rings(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_release_tx_ring(struct rtw89_dev *rtwdev,
struct rtw89_pci_tx_ring *tx_ring)
{ … }
void rtw89_pci_ops_reset(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_enable_intr_lock(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_disable_intr_lock(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_ops_start(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_ops_stop(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_ops_pause(struct rtw89_dev *rtwdev, bool pause)
{ … }
static
void rtw89_pci_switch_bd_idx_addr(struct rtw89_dev *rtwdev, bool low_power)
{ … }
static void rtw89_pci_ops_switch_mode(struct rtw89_dev *rtwdev, bool low_power)
{ … }
static void rtw89_pci_ops_write32(struct rtw89_dev *rtwdev, u32 addr, u32 data);
static u32 rtw89_pci_ops_read32_cmac(struct rtw89_dev *rtwdev, u32 addr)
{ … }
static u8 rtw89_pci_ops_read8(struct rtw89_dev *rtwdev, u32 addr)
{ … }
static u16 rtw89_pci_ops_read16(struct rtw89_dev *rtwdev, u32 addr)
{ … }
static u32 rtw89_pci_ops_read32(struct rtw89_dev *rtwdev, u32 addr)
{ … }
static void rtw89_pci_ops_write8(struct rtw89_dev *rtwdev, u32 addr, u8 data)
{ … }
static void rtw89_pci_ops_write16(struct rtw89_dev *rtwdev, u32 addr, u16 data)
{ … }
static void rtw89_pci_ops_write32(struct rtw89_dev *rtwdev, u32 addr, u32 data)
{ … }
static void rtw89_pci_ctrl_dma_trx(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void rtw89_pci_ctrl_dma_io(struct rtw89_dev *rtwdev, bool enable)
{ … }
void rtw89_pci_ctrl_dma_all(struct rtw89_dev *rtwdev, bool enable)
{ … }
static int rtw89_pci_check_mdio(struct rtw89_dev *rtwdev, u8 addr, u8 speed, u16 rw_bit)
{ … }
static int
rtw89_read16_mdio(struct rtw89_dev *rtwdev, u8 addr, u8 speed, u16 *val)
{ … }
static int
rtw89_write16_mdio(struct rtw89_dev *rtwdev, u8 addr, u16 data, u8 speed)
{ … }
static int
rtw89_write16_mdio_mask(struct rtw89_dev *rtwdev, u8 addr, u16 mask, u16 data, u8 speed)
{ … }
static int rtw89_write16_mdio_set(struct rtw89_dev *rtwdev, u8 addr, u16 mask, u8 speed)
{ … }
static int rtw89_write16_mdio_clr(struct rtw89_dev *rtwdev, u8 addr, u16 mask, u8 speed)
{ … }
static int rtw89_dbi_write8(struct rtw89_dev *rtwdev, u16 addr, u8 data)
{ … }
static int rtw89_dbi_read8(struct rtw89_dev *rtwdev, u16 addr, u8 *value)
{ … }
static int rtw89_pci_write_config_byte(struct rtw89_dev *rtwdev, u16 addr,
u8 data)
{ … }
static int rtw89_pci_read_config_byte(struct rtw89_dev *rtwdev, u16 addr,
u8 *value)
{ … }
static int rtw89_pci_config_byte_set(struct rtw89_dev *rtwdev, u16 addr,
u8 bit)
{ … }
static int rtw89_pci_config_byte_clr(struct rtw89_dev *rtwdev, u16 addr,
u8 bit)
{ … }
static int
__get_target(struct rtw89_dev *rtwdev, u16 *target, enum rtw89_pcie_phy phy_rate)
{ … }
static int rtw89_pci_autok_x(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_auto_refclk_cal(struct rtw89_dev *rtwdev, bool autook_en)
{ … }
static int rtw89_pci_deglitch_setting(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_disable_eq(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_ber(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_rxdma_prefth(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_l1off_pwroff(struct rtw89_dev *rtwdev)
{ … }
static u32 rtw89_pci_l2_rxen_lat(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_aphy_pwrcut(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_hci_ldo(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_dphy_delay(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_power_wake(struct rtw89_dev *rtwdev, bool pwr_up)
{ … }
static void rtw89_pci_autoload_hang(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_l12_vmain(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_gen2_force_ib(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_l1_ent_lat(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_wd_exit_l1(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_set_sic(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_set_lbc(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_set_io_rcy(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_set_dbg(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_set_keep_reg(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_clr_idx_all_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_poll_txdma_ch_idle_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_poll_rxdma_ch_idle_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_poll_dma_all_idle(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_mode_op(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_ops_deinit(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_ops_mac_pre_init_ax(struct rtw89_dev *rtwdev)
{ … }
int rtw89_pci_ltr_set(struct rtw89_dev *rtwdev, bool en)
{ … }
EXPORT_SYMBOL(…);
int rtw89_pci_ltr_set_v1(struct rtw89_dev *rtwdev, bool en)
{ … }
EXPORT_SYMBOL(…);
static int rtw89_pci_ops_mac_post_init_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_claim_device(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static void rtw89_pci_declaim_device(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static bool rtw89_pci_chip_is_manual_dac(struct rtw89_dev *rtwdev)
{ … }
static bool rtw89_pci_is_dac_compatible_bridge(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_cfg_dac(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_setup_mapping(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static void rtw89_pci_clear_mapping(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static void rtw89_pci_free_tx_wd_ring(struct rtw89_dev *rtwdev,
struct pci_dev *pdev,
struct rtw89_pci_tx_ring *tx_ring)
{ … }
static void rtw89_pci_free_tx_ring(struct rtw89_dev *rtwdev,
struct pci_dev *pdev,
struct rtw89_pci_tx_ring *tx_ring)
{ … }
static void rtw89_pci_free_tx_rings(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static void rtw89_pci_free_rx_ring(struct rtw89_dev *rtwdev,
struct pci_dev *pdev,
struct rtw89_pci_rx_ring *rx_ring)
{ … }
static void rtw89_pci_free_rx_rings(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static void rtw89_pci_free_trx_rings(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static int rtw89_pci_init_rx_bd(struct rtw89_dev *rtwdev, struct pci_dev *pdev,
struct rtw89_pci_rx_ring *rx_ring,
struct sk_buff *skb, int buf_sz, u32 idx)
{ … }
static int rtw89_pci_alloc_tx_wd_ring(struct rtw89_dev *rtwdev,
struct pci_dev *pdev,
struct rtw89_pci_tx_ring *tx_ring,
enum rtw89_tx_channel txch)
{ … }
static int rtw89_pci_alloc_tx_ring(struct rtw89_dev *rtwdev,
struct pci_dev *pdev,
struct rtw89_pci_tx_ring *tx_ring,
u32 desc_size, u32 len,
enum rtw89_tx_channel txch)
{ … }
static int rtw89_pci_alloc_tx_rings(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static int rtw89_pci_alloc_rx_ring(struct rtw89_dev *rtwdev,
struct pci_dev *pdev,
struct rtw89_pci_rx_ring *rx_ring,
u32 desc_size, u32 len, u32 rxch)
{ … }
static int rtw89_pci_alloc_rx_rings(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static int rtw89_pci_alloc_trx_rings(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static void rtw89_pci_h2c_init(struct rtw89_dev *rtwdev,
struct rtw89_pci *rtwpci)
{ … }
static int rtw89_pci_setup_resource(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static void rtw89_pci_clear_resource(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
void rtw89_pci_config_intr_mask(struct rtw89_dev *rtwdev)
{ … }
EXPORT_SYMBOL(…);
static void rtw89_pci_recovery_intr_mask_v1(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_default_intr_mask_v1(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_low_power_intr_mask_v1(struct rtw89_dev *rtwdev)
{ … }
void rtw89_pci_config_intr_mask_v1(struct rtw89_dev *rtwdev)
{ … }
EXPORT_SYMBOL(…);
static void rtw89_pci_recovery_intr_mask_v2(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_default_intr_mask_v2(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_low_power_intr_mask_v2(struct rtw89_dev *rtwdev)
{ … }
void rtw89_pci_config_intr_mask_v2(struct rtw89_dev *rtwdev)
{ … }
EXPORT_SYMBOL(…);
static int rtw89_pci_request_irq(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static void rtw89_pci_free_irq(struct rtw89_dev *rtwdev,
struct pci_dev *pdev)
{ … }
static u16 gray_code_to_bin(u16 gray_code, u32 bit_num)
{ … }
static int rtw89_pci_filter_out(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_clkreq_set(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void rtw89_pci_clkreq_set_ax(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void rtw89_pci_aspm_set(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void rtw89_pci_aspm_set_ax(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void rtw89_pci_recalc_int_mit(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_link_cfg(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pci_l1ss_set(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void rtw89_pci_l1ss_set_ax(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void rtw89_pci_l1ss_cfg(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_poll_io_idle_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_lv1rst_stop_dma_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_lv1rst_start_dma_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_ops_mac_lv1_recovery(struct rtw89_dev *rtwdev,
enum rtw89_lv1_rcvy_step step)
{ … }
static void rtw89_pci_ops_dump_err_status(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_pci_napi_poll(struct napi_struct *napi, int budget)
{ … }
static int __maybe_unused rtw89_pci_suspend(struct device *dev)
{ … }
static void rtw89_pci_l2_hci_ldo(struct rtw89_dev *rtwdev)
{ … }
static int __maybe_unused rtw89_pci_resume(struct device *dev)
{ … }
SIMPLE_DEV_PM_OPS(rtw89_pm_ops, rtw89_pci_suspend, rtw89_pci_resume);
EXPORT_SYMBOL(…);
const struct rtw89_pci_gen_def rtw89_pci_gen_ax = …;
EXPORT_SYMBOL(…);
static const struct rtw89_hci_ops rtw89_pci_ops = …;
int rtw89_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{ … }
EXPORT_SYMBOL(…);
void rtw89_pci_remove(struct pci_dev *pdev)
{ … }
EXPORT_SYMBOL(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;