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

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

#ifndef __RTW89_COEX_H__
#define __RTW89_COEX_H__

#include "core.h"

#define BTC_H2C_MAXLEN
#define BTC_TLV_SLOT_ID_LEN_V7
#define BTC_SLOT_REQ_TH

enum btc_mode {};

enum btc_wl_rfk_type {};

#define NM_EXEC
#define FC_EXEC

#define RTW89_COEX_ACT1_WORK_PERIOD
#define RTW89_COEX_BT_DEVINFO_WORK_PERIOD
#define RTW89_COEX_RFK_CHK_WORK_PERIOD
#define BTC_RFK_PATH_MAP
#define BTC_RFK_PHY_MAP
#define BTC_RFK_BAND_MAP

enum btc_wl_rfk_state {};

enum btc_pri {};

enum btc_bt_trs {};

enum btc_rssi_st {};

enum btc_fddt_en {};

#define BTC_RSSI_HIGH(_rssi_)

#define BTC_RSSI_LOW(_rssi_)

#define BTC_RSSI_CHANGE(_rssi_)

enum btc_ant {};

enum btc_bt_btg {};

enum btc_switch {};

enum btc_pkt_type {};

enum btc_bt_mailbox_id {};

enum btc_role_state {};

enum btc_rfctrl {};

enum btc_lps_state {};

#define R_BTC_BB_BTG_RX
#define R_BTC_BB_PRE_AGC_S1
#define R_BTC_BB_PRE_AGC_S0

#define B_BTC_BB_GNT_MUX
#define B_BTC_BB_PRE_AGC_MASK
#define B_BTC_BB_PRE_AGC_VAL

#define BTC_REG_NOTFOUND

#define R_BTC_ZB_COEX_TBL_0
#define R_BTC_ZB_COEX_TBL_1
#define R_BTC_ZB_BREAK_TBL

enum btc_ant_div_pos {};

enum btc_get_reg_status {};

enum btc_preagc_type {};

enum btc_btgctrl_type {};

enum btc_wa_type {};

enum btc_3cx_type {};

enum btc_chip_feature {};

enum btc_wl_mode {};

enum btc_wl_gpio_debug {};

void rtw89_btc_ntfy_poweron(struct rtw89_dev *rtwdev);
void rtw89_btc_ntfy_poweroff(struct rtw89_dev *rtwdev);
void rtw89_btc_ntfy_init(struct rtw89_dev *rtwdev, u8 mode);
void rtw89_btc_ntfy_scan_start(struct rtw89_dev *rtwdev, u8 phy_idx, u8 band);
void rtw89_btc_ntfy_scan_finish(struct rtw89_dev *rtwdev, u8 phy_idx);
void rtw89_btc_ntfy_switch_band(struct rtw89_dev *rtwdev, u8 phy_idx, u8 band);
void rtw89_btc_ntfy_specific_packet(struct rtw89_dev *rtwdev,
				    enum btc_pkt_type pkt_type);
void rtw89_btc_ntfy_eapol_packet_work(struct work_struct *work);
void rtw89_btc_ntfy_arp_packet_work(struct work_struct *work);
void rtw89_btc_ntfy_dhcp_packet_work(struct work_struct *work);
void rtw89_btc_ntfy_icmp_packet_work(struct work_struct *work);
void rtw89_btc_ntfy_role_info(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
			      struct rtw89_sta *rtwsta, enum btc_role_state state);
void rtw89_btc_ntfy_radio_state(struct rtw89_dev *rtwdev, enum btc_rfctrl rf_state);
void rtw89_btc_ntfy_wl_rfk(struct rtw89_dev *rtwdev, u8 phy_map,
			   enum btc_wl_rfk_type type,
			   enum btc_wl_rfk_state state);
void rtw89_btc_ntfy_wl_sta(struct rtw89_dev *rtwdev);
void rtw89_btc_c2h_handle(struct rtw89_dev *rtwdev, struct sk_buff *skb,
			  u32 len, u8 class, u8 func);
void rtw89_btc_dump_info(struct rtw89_dev *rtwdev, struct seq_file *m);
void rtw89_coex_act1_work(struct work_struct *work);
void rtw89_coex_bt_devinfo_work(struct work_struct *work);
void rtw89_coex_rfk_chk_work(struct work_struct *work);
void rtw89_coex_power_on(struct rtw89_dev *rtwdev);
void rtw89_btc_set_policy(struct rtw89_dev *rtwdev, u16 policy_type);
void rtw89_btc_set_policy_v1(struct rtw89_dev *rtwdev, u16 policy_type);
void rtw89_coex_recognize_ver(struct rtw89_dev *rtwdev);

static inline u8 rtw89_btc_phymap(struct rtw89_dev *rtwdev,
				  enum rtw89_phy_idx phy_idx,
				  enum rtw89_rf_path_bit paths,
				  enum rtw89_chanctx_idx chanctx_idx)
{}

static inline u8 rtw89_btc_path_phymap(struct rtw89_dev *rtwdev,
				       enum rtw89_phy_idx phy_idx,
				       enum rtw89_rf_path path,
				       enum rtw89_chanctx_idx chanctx_idx)
{}

/* return bt req len in TU */
static inline u16 rtw89_coex_query_bt_req_len(struct rtw89_dev *rtwdev,
					      enum rtw89_phy_idx phy_idx)
{}

static inline u32 rtw89_get_antpath_type(u8 phy_map, u8 type)
{}

static inline
void _slot_set_le(struct rtw89_btc *btc, u8 sid, __le16 dura, __le32 tbl, __le16 type)
{}

static inline
void _slot_set(struct rtw89_btc *btc, u8 sid, u16 dura, u32 tbl, u16 type)
{}

static inline
void _slot_set_dur(struct rtw89_btc *btc, u8 sid, u16 dura)
{}

static inline
void _slot_set_type(struct rtw89_btc *btc, u8 sid, u16 type)
{}

static inline
void _slot_set_tbl(struct rtw89_btc *btc, u8 sid, u32 tbl)
{}

#endif