linux/drivers/net/wireless/realtek/rtw88/coex.h

/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/* Copyright(c) 2018-2019  Realtek Corporation
 */

#ifndef __RTW_COEX_H__
#define __RTW_COEX_H__

#define COEX_CCK_2
#define COEX_RESP_ACK_BY_WL_FW
#define COEX_REQUEST_TIMEOUT

#define COEX_MIN_DELAY
#define COEX_RFK_TIMEOUT
#define COEX_BT_GAMEHID_CNT

#define COEX_RF_OFF
#define COEX_RF_ON

#define COEX_H2C69_WL_LEAKAP
#define PARA1_H2C69_DIS_5MS
#define PARA1_H2C69_EN_5MS

#define COEX_H2C69_TDMA_SLOT
#define PARA1_H2C69_TDMA_4SLOT
#define PARA1_H2C69_TDMA_2SLOT
#define PARA1_H2C69_TBTT_TIMES
#define PARA1_H2C69_TBTT_DIV100

#define COEX_H2C69_TOGGLE_TABLE_A
#define COEX_H2C69_TOGGLE_TABLE_B

#define TDMA_4SLOT

#define TDMA_TIMER_TYPE_2SLOT
#define TDMA_TIMER_TYPE_4SLOT

#define COEX_RSSI_STEP

#define COEX_RSSI_HIGH(rssi)

#define COEX_RSSI_MEDIUM(rssi)

#define COEX_RSSI_LOW(rssi)

#define GET_COEX_RESP_BT_SUPP_VER(payload)
#define GET_COEX_RESP_BT_SUPP_FEAT(payload)
#define GET_COEX_RESP_BT_PATCH_VER(payload)
#define GET_COEX_RESP_BT_REG_VAL(payload)
#define GET_COEX_RESP_BT_SCAN_TYPE(payload)

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 {};

enum coex_ext_ant_switch_ctrl_type {};

enum coex_algorithm {};

enum coex_bt_profile {};

enum coex_wl_link_mode {};

enum coex_wl2bt_scoreboard {};

enum coex_power_save_type {};

enum coex_rssi_state {};

enum coex_notify_type_ips {};

enum coex_notify_type_lps {};

enum coex_notify_type_scan {};

enum coex_notify_type_switchband {};

enum coex_notify_type_associate {};

enum coex_notify_type_media_status {};

enum coex_bt_status {};

enum coex_wl_tput_dir {};

enum coex_wl_priority_mask {};

enum coex_commom_chip_setup {};

enum coex_indirect_reg_type {};

enum coex_pstdma_type {};

enum coex_btrssi_type {};

struct coex_table_para {};

struct coex_tdma_para {};

struct coex_5g_afh_map {};

struct coex_rf_para {};

static inline void rtw_coex_set_init(struct rtw_dev *rtwdev)
{}

static inline
void rtw_coex_set_ant_switch(struct rtw_dev *rtwdev, u8 ctrl_type, u8 pos_type)
{}

static inline void rtw_coex_set_gnt_fix(struct rtw_dev *rtwdev)
{}

static inline void rtw_coex_set_gnt_debug(struct rtw_dev *rtwdev)
{}

static inline  void rtw_coex_set_rfe_type(struct rtw_dev *rtwdev)
{}

static inline void rtw_coex_set_wl_tx_power(struct rtw_dev *rtwdev, u8 wl_pwr)
{}

static inline
void rtw_coex_set_wl_rx_gain(struct rtw_dev *rtwdev, bool 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_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);
void rtw_coex_wl_ccklock_work(struct work_struct *work);

void rtw_coex_power_on_setting(struct rtw_dev *rtwdev);
void rtw_coex_power_off_setting(struct rtw_dev *rtwdev);
void rtw_coex_init_hw_config(struct rtw_dev *rtwdev, bool wifi_only);
void rtw_coex_ips_notify(struct rtw_dev *rtwdev, u8 type);
void rtw_coex_lps_notify(struct rtw_dev *rtwdev, u8 type);
void rtw_coex_scan_notify(struct rtw_dev *rtwdev, u8 type);
void rtw_coex_connect_notify(struct rtw_dev *rtwdev, u8 type);
void rtw_coex_media_status_notify(struct rtw_dev *rtwdev, u8 type);
void rtw_coex_bt_info_notify(struct rtw_dev *rtwdev, u8 *buf, u8 length);
void rtw_coex_bt_hid_info_notify(struct rtw_dev *rtwdev, u8 *buf, u8 length);
void rtw_coex_wl_fwdbginfo_notify(struct rtw_dev *rtwdev, u8 *buf, u8 length);
void rtw_coex_switchband_notify(struct rtw_dev *rtwdev, u8 type);
void rtw_coex_wl_status_change_notify(struct rtw_dev *rtwdev, u32 type);
void rtw_coex_wl_status_check(struct rtw_dev *rtwdev);
void rtw_coex_query_bt_hid_list(struct rtw_dev *rtwdev);
void rtw_coex_display_coex_info(struct rtw_dev *rtwdev, struct seq_file *m);

static inline bool rtw_coex_disabled(struct rtw_dev *rtwdev)
{}

#endif