linux/drivers/staging/rtlwifi/btcoexist/halbtc8822b2ant.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/******************************************************************************
   3 *
   4 * Copyright(c) 2016  Realtek Corporation.
   5 *
   6 * Contact Information:
   7 * wlanfae <wlanfae@realtek.com>
   8 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
   9 * Hsinchu 300, Taiwan.
  10 *
  11 * Larry Finger <Larry.Finger@lwfinger.net>
  12 *
  13 *****************************************************************************/
  14
  15/* *******************************************
  16 * The following is for 8822B 2Ant BT Co-exist definition
  17 * ********************************************/
  18#define BT_INFO_8822B_2ANT_B_FTP        BIT(7)
  19#define BT_INFO_8822B_2ANT_B_A2DP       BIT(6)
  20#define BT_INFO_8822B_2ANT_B_HID        BIT(5)
  21#define BT_INFO_8822B_2ANT_B_SCO_BUSY   BIT(4)
  22#define BT_INFO_8822B_2ANT_B_ACL_BUSY   BIT(3)
  23#define BT_INFO_8822B_2ANT_B_INQ_PAGE   BIT(2)
  24#define BT_INFO_8822B_2ANT_B_SCO_ESCO   BIT(1)
  25#define BT_INFO_8822B_2ANT_B_CONNECTION BIT(0)
  26
  27#define BTC_RSSI_COEX_THRESH_TOL_8822B_2ANT     2
  28
  29/* unit: % WiFi RSSI Threshold for 2-Ant free-run/2-Ant TDMA translation.
  30 * (default = 42)
  31 */
  32#define BT_8822B_2ANT_WIFI_RSSI_COEXSWITCH_THRES1       80
  33/* unit: % BT RSSI Threshold for 2-Ant free-run/2-Ant TDMA translation.
  34 * (default = 46)
  35 */
  36#define BT_8822B_2ANT_BT_RSSI_COEXSWITCH_THRES1 80
  37/* unit: % WiFi RSSI Threshold for 1-Ant TDMA/1-Ant PS-TDMA translation.
  38 * (default = 42)
  39 */
  40#define BT_8822B_2ANT_WIFI_RSSI_COEXSWITCH_THRES2       80
  41/* unit: % BT RSSI Threshold for 1-Ant TDMA/1-Ant PS-TDMA translation.
  42 * (default = 46)
  43 */
  44#define BT_8822B_2ANT_BT_RSSI_COEXSWITCH_THRES2 80
  45#define BT_8822B_2ANT_DEFAULT_ISOLATION 15 /*  unit: dB */
  46#define BT_8822B_2ANT_WIFI_MAX_TX_POWER 15 /*  unit: dBm */
  47#define BT_8822B_2ANT_BT_MAX_TX_POWER   3 /*  unit: dBm */
  48#define BT_8822B_2ANT_WIFI_SIR_THRES1 -15 /*  unit: dB */
  49#define BT_8822B_2ANT_WIFI_SIR_THRES2 -30 /*  unit: dB */
  50#define BT_8822B_2ANT_BT_SIR_THRES1 -15 /*  unit: dB */
  51#define BT_8822B_2ANT_BT_SIR_THRES2 -30 /*  unit: dB */
  52
  53/* for Antenna detection */
  54#define BT_8822B_2ANT_ANTDET_PSDTHRES_BACKGROUND        50
  55#define BT_8822B_2ANT_ANTDET_PSDTHRES_2ANT_BADISOLATION 70
  56#define BT_8822B_2ANT_ANTDET_PSDTHRES_2ANT_GOODISOLATION        52
  57#define BT_8822B_2ANT_ANTDET_PSDTHRES_1ANT      40
  58#define BT_8822B_2ANT_ANTDET_RETRY_INTERVAL                                    \
  59        10 /* retry timer if ant det is fail, unit: second */
  60#define BT_8822B_2ANT_ANTDET_SWEEPPOINT_DELAY   60000
  61#define BT_8822B_2ANT_ANTDET_ENABLE     0
  62#define BT_8822B_2ANT_ANTDET_BTTXTIME   100
  63#define BT_8822B_2ANT_ANTDET_BTTXCHANNEL        39
  64#define BT_8822B_2ANT_ANTDET_PSD_SWWEEPCOUNT    50
  65
  66#define BT_8822B_2ANT_LTECOEX_INDIRECTREG_ACCESS_TIMEOUT        30000
  67
  68enum bt_8822b_2ant_signal_state {
  69        BT_8822B_2ANT_SIG_STA_SET_TO_LOW        = 0x0,
  70        BT_8822B_2ANT_SIG_STA_SET_BY_HW = 0x0,
  71        BT_8822B_2ANT_SIG_STA_SET_TO_HIGH       = 0x1,
  72        BT_8822B_2ANT_SIG_STA_MAX
  73};
  74
  75enum bt_8822b_2ant_path_ctrl_owner {
  76        BT_8822B_2ANT_PCO_BTSIDE        = 0x0,
  77        BT_8822B_2ANT_PCO_WLSIDE        = 0x1,
  78        BT_8822B_2ANT_PCO_MAX
  79};
  80
  81enum bt_8822b_2ant_gnt_ctrl_type {
  82        BT_8822B_2ANT_GNT_TYPE_CTRL_BY_PTA      = 0x0,
  83        BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW       = 0x1,
  84        BT_8822B_2ANT_GNT_TYPE_MAX
  85};
  86
  87enum bt_8822b_2ant_gnt_ctrl_block {
  88        BT_8822B_2ANT_GNT_BLOCK_RFC_BB  = 0x0,
  89        BT_8822B_2ANT_GNT_BLOCK_RFC     = 0x1,
  90        BT_8822B_2ANT_GNT_BLOCK_BB      = 0x2,
  91        BT_8822B_2ANT_GNT_BLOCK_MAX
  92};
  93
  94enum bt_8822b_2ant_lte_coex_table_type {
  95        BT_8822B_2ANT_CTT_WL_VS_LTE     = 0x0,
  96        BT_8822B_2ANT_CTT_BT_VS_LTE     = 0x1,
  97        BT_8822B_2ANT_CTT_MAX
  98};
  99
 100enum bt_8822b_2ant_lte_break_table_type {
 101        BT_8822B_2ANT_LBTT_WL_BREAK_LTE = 0x0,
 102        BT_8822B_2ANT_LBTT_BT_BREAK_LTE = 0x1,
 103        BT_8822B_2ANT_LBTT_LTE_BREAK_WL = 0x2,
 104        BT_8822B_2ANT_LBTT_LTE_BREAK_BT = 0x3,
 105        BT_8822B_2ANT_LBTT_MAX
 106};
 107
 108enum bt_info_src_8822b_2ant {
 109        BT_INFO_SRC_8822B_2ANT_WIFI_FW  = 0x0,
 110        BT_INFO_SRC_8822B_2ANT_BT_RSP   = 0x1,
 111        BT_INFO_SRC_8822B_2ANT_BT_ACTIVE_SEND   = 0x2,
 112        BT_INFO_SRC_8822B_2ANT_MAX
 113};
 114
 115enum bt_8822b_2ant_bt_status {
 116        BT_8822B_2ANT_BT_STATUS_NON_CONNECTED_IDLE      = 0x0,
 117        BT_8822B_2ANT_BT_STATUS_CONNECTED_IDLE  = 0x1,
 118        BT_8822B_2ANT_BT_STATUS_INQ_PAGE        = 0x2,
 119        BT_8822B_2ANT_BT_STATUS_ACL_BUSY        = 0x3,
 120        BT_8822B_2ANT_BT_STATUS_SCO_BUSY        = 0x4,
 121        BT_8822B_2ANT_BT_STATUS_ACL_SCO_BUSY    = 0x5,
 122        BT_8822B_2ANT_BT_STATUS_MAX
 123};
 124
 125enum bt_8822b_2ant_coex_algo {
 126        BT_8822B_2ANT_COEX_ALGO_UNDEFINED       = 0x0,
 127        BT_8822B_2ANT_COEX_ALGO_SCO     = 0x1,
 128        BT_8822B_2ANT_COEX_ALGO_HID     = 0x2,
 129        BT_8822B_2ANT_COEX_ALGO_A2DP    = 0x3,
 130        BT_8822B_2ANT_COEX_ALGO_A2DP_PANHS      = 0x4,
 131        BT_8822B_2ANT_COEX_ALGO_PANEDR  = 0x5,
 132        BT_8822B_2ANT_COEX_ALGO_PANHS   = 0x6,
 133        BT_8822B_2ANT_COEX_ALGO_PANEDR_A2DP     = 0x7,
 134        BT_8822B_2ANT_COEX_ALGO_PANEDR_HID      = 0x8,
 135        BT_8822B_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9,
 136        BT_8822B_2ANT_COEX_ALGO_HID_A2DP        = 0xa,
 137        BT_8822B_2ANT_COEX_ALGO_NOPROFILEBUSY   = 0xb,
 138        BT_8822B_2ANT_COEX_ALGO_A2DPSINK        = 0xc,
 139        BT_8822B_2ANT_COEX_ALGO_MAX
 140};
 141
 142enum bt_8822b_2ant_ext_ant_switch_type {
 143        BT_8822B_2ANT_EXT_ANT_SWITCH_USE_DPDT   = 0x0,
 144        BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT   = 0x1,
 145        BT_8822B_2ANT_EXT_ANT_SWITCH_NONE       = 0x2,
 146        BT_8822B_2ANT_EXT_ANT_SWITCH_MAX
 147};
 148
 149enum bt_8822b_2ant_ext_ant_switch_ctrl_type {
 150        BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_BBSW       = 0x0,
 151        BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_PTA        = 0x1,
 152        BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_ANTDIV     = 0x2,
 153        BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_MAC        = 0x3,
 154        BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_BT = 0x4,
 155        BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_MAX
 156};
 157
 158enum bt_8822b_2ant_ext_ant_switch_pos_type {
 159        BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_BT = 0x0,
 160        BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_WLG        = 0x1,
 161        BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_WLA        = 0x2,
 162        BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_NOCARE     = 0x3,
 163        BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_MAX
 164};
 165
 166enum bt_8822b_2ant_ext_band_switch_pos_type {
 167        BT_8822B_2ANT_EXT_BAND_SWITCH_TO_WLG    = 0x0,
 168        BT_8822B_2ANT_EXT_BAND_SWITCH_TO_WLA    = 0x1,
 169        BT_8822B_2ANT_EXT_BAND_SWITCH_TO_MAX
 170};
 171
 172enum bt_8822b_2ant_int_block {
 173        BT_8822B_2ANT_INT_BLOCK_SWITCH_TO_WLG_OF_BTG    = 0x0,
 174        BT_8822B_2ANT_INT_BLOCK_SWITCH_TO_WLG_OF_WLAG   = 0x1,
 175        BT_8822B_2ANT_INT_BLOCK_SWITCH_TO_WLA_OF_WLAG   = 0x2,
 176        BT_8822B_2ANT_INT_BLOCK_SWITCH_TO_MAX
 177};
 178
 179enum bt_8822b_2ant_phase {
 180        BT_8822B_2ANT_PHASE_COEX_INIT   = 0x0,
 181        BT_8822B_2ANT_PHASE_WLANONLY_INIT       = 0x1,
 182        BT_8822B_2ANT_PHASE_WLAN_OFF    = 0x2,
 183        BT_8822B_2ANT_PHASE_2G_RUNTIME  = 0x3,
 184        BT_8822B_2ANT_PHASE_5G_RUNTIME  = 0x4,
 185        BT_8822B_2ANT_PHASE_BTMPMODE    = 0x5,
 186        BT_8822B_2ANT_PHASE_ANTENNA_DET = 0x6,
 187        BT_8822B_2ANT_PHASE_COEX_POWERON        = 0x7,
 188        BT_8822B_2ANT_PHASE_2G_RUNTIME_CONCURRENT       = 0x8,
 189        BT_8822B_2ANT_PHASE_MAX
 190};
 191
 192/*ADD SCOREBOARD TO FIX BT LPS 32K ISSUE WHILE WL BUSY*/
 193
 194enum bt_8822b_2ant_scoreboard {
 195        BT_8822B_2ANT_SCOREBOARD_ACTIVE = BIT(0),
 196        BT_8822B_2ANT_SCOREBOARD_ONOFF  = BIT(1),
 197        BT_8822B_2ANT_SCOREBOARD_SCAN   = BIT(2),
 198        BT_8822B_2ANT_SCOREBOARD_UNDERTEST      = BIT(3),
 199        BT_8822B_2ANT_SCOREBOARD_WLBUSY = BIT(6)
 200};
 201
 202struct coex_dm_8822b_2ant {
 203        /* hw setting */
 204        u32     pre_ant_pos_type;
 205        u32     cur_ant_pos_type;
 206        /* fw mechanism */
 207        u8      pre_bt_dec_pwr_lvl;
 208        u8      cur_bt_dec_pwr_lvl;
 209        u8      pre_fw_dac_swing_lvl;
 210        u8      cur_fw_dac_swing_lvl;
 211        bool    cur_ignore_wlan_act;
 212        bool    pre_ignore_wlan_act;
 213        u8      pre_ps_tdma;
 214        u8      cur_ps_tdma;
 215        u8      ps_tdma_para[5];
 216        u8      ps_tdma_du_adj_type;
 217        bool    reset_tdma_adjust;
 218        bool    pre_ps_tdma_on;
 219        bool    cur_ps_tdma_on;
 220        bool    pre_bt_auto_report;
 221        bool    cur_bt_auto_report;
 222
 223        /* sw mechanism */
 224        bool    pre_rf_rx_lpf_shrink;
 225        bool    cur_rf_rx_lpf_shrink;
 226        u32     bt_rf_0x1e_backup;
 227        bool    pre_low_penalty_ra;
 228        bool    cur_low_penalty_ra;
 229        bool    pre_dac_swing_on;
 230        u32     pre_dac_swing_lvl;
 231        bool    cur_dac_swing_on;
 232        u32     cur_dac_swing_lvl;
 233        bool    pre_adc_back_off;
 234        bool    cur_adc_back_off;
 235        bool    pre_agc_table_en;
 236        bool    cur_agc_table_en;
 237        u32     pre_val0x6c0;
 238        u32     cur_val0x6c0;
 239        u32     pre_val0x6c4;
 240        u32     cur_val0x6c4;
 241        u32     pre_val0x6c8;
 242        u32     cur_val0x6c8;
 243        u8      pre_val0x6cc;
 244        u8      cur_val0x6cc;
 245        bool    limited_dig;
 246
 247        /* algorithm related */
 248        u8      pre_algorithm;
 249        u8      cur_algorithm;
 250        u8      bt_status;
 251        u8      wifi_chnl_info[3];
 252
 253        bool    need_recover0x948;
 254        u32     backup0x948;
 255
 256        u8      pre_lps;
 257        u8      cur_lps;
 258        u8      pre_rpwm;
 259        u8      cur_rpwm;
 260
 261        bool    is_switch_to_1dot5_ant;
 262        u8      switch_thres_offset;
 263        u32     arp_cnt;
 264
 265        u32     pre_ext_ant_switch_status;
 266        u32     cur_ext_ant_switch_status;
 267
 268        u8      pre_ext_band_switch_status;
 269        u8      cur_ext_band_switch_status;
 270
 271        u8      pre_int_block_status;
 272        u8      cur_int_block_status;
 273};
 274
 275struct coex_sta_8822b_2ant {
 276        bool    bt_disabled;
 277        bool    bt_link_exist;
 278        bool    sco_exist;
 279        bool    a2dp_exist;
 280        bool    hid_exist;
 281        bool    pan_exist;
 282
 283        bool    under_lps;
 284        bool    under_ips;
 285        u32     high_priority_tx;
 286        u32     high_priority_rx;
 287        u32     low_priority_tx;
 288        u32     low_priority_rx;
 289        bool    is_hi_pri_rx_overhead;
 290        u8      bt_rssi;
 291        u8      pre_bt_rssi_state;
 292        u8      pre_wifi_rssi_state[4];
 293        u8      bt_info_c2h[BT_INFO_SRC_8822B_2ANT_MAX][10];
 294        u32     bt_info_c2h_cnt[BT_INFO_SRC_8822B_2ANT_MAX];
 295        bool    bt_whck_test;
 296        bool    c2h_bt_inquiry_page;
 297        bool    c2h_bt_remote_name_req;
 298
 299        u8      bt_info_ext;
 300        u8      bt_info_ext2;
 301        u32     pop_event_cnt;
 302        u8      scan_ap_num;
 303        u8      bt_retry_cnt;
 304
 305        u32     crc_ok_cck;
 306        u32     crc_ok_11g;
 307        u32     crc_ok_11n;
 308        u32     crc_ok_11n_vht;
 309
 310        u32     crc_err_cck;
 311        u32     crc_err_11g;
 312        u32     crc_err_11n;
 313        u32     crc_err_11n_vht;
 314
 315        u32     acc_crc_ratio;
 316        u32     now_crc_ratio;
 317
 318        bool    cck_lock;
 319        bool    pre_ccklock;
 320        bool    cck_ever_lock;
 321
 322        u8      coex_table_type;
 323        bool    force_lps_ctrl;
 324
 325        u8      dis_ver_info_cnt;
 326
 327        u8      a2dp_bit_pool;
 328        u8      cut_version;
 329
 330        bool    concurrent_rx_mode_on;
 331
 332        u16     score_board;
 333        u8      isolation_btween_wb; /* 0~ 50 */
 334        u8      wifi_coex_thres;
 335        u8      bt_coex_thres;
 336        u8      wifi_coex_thres2;
 337        u8      bt_coex_thres2;
 338
 339        u8      num_of_profile;
 340        bool    acl_busy;
 341        bool    bt_create_connection;
 342        bool    wifi_is_high_pri_task;
 343        u32     specific_pkt_period_cnt;
 344        u32     bt_coex_supported_feature;
 345        u32     bt_coex_supported_version;
 346
 347        u8      bt_ble_scan_type;
 348        u32     bt_ble_scan_para[3];
 349
 350        bool    run_time_state;
 351        bool    freeze_coexrun_by_btinfo;
 352
 353        bool    is_A2DP_3M;
 354        bool    voice_over_HOGP;
 355        u8      bt_info;
 356        bool    is_autoslot;
 357        u8      forbidden_slot;
 358        u8      hid_busy_num;
 359        u8      hid_pair_cnt;
 360
 361        u32     cnt_remote_name_req;
 362        u32     cnt_setup_link;
 363        u32     cnt_reinit;
 364        u32     cnt_ign_wlan_act;
 365        u32     cnt_page;
 366        u32     cnt_role_switch;
 367
 368        u16     bt_reg_vendor_ac;
 369        u16     bt_reg_vendor_ae;
 370
 371        bool    is_setup_link;
 372        u8      wl_noisy_level;
 373        u32     gnt_error_cnt;
 374
 375        u8      bt_afh_map[10];
 376        u8      bt_relink_downcount;
 377        bool    is_tdma_btautoslot;
 378        bool    is_tdma_btautoslot_hang;
 379
 380        bool    is_esco_mode;
 381        u8      switch_band_notify_to;
 382        bool    is_rf_state_off;
 383
 384        bool    is_hid_low_pri_tx_overhead;
 385        bool    is_bt_multi_link;
 386        bool    is_bt_a2dp_sink;
 387
 388        bool    is_set_ps_state_fail;
 389        u8      cnt_set_ps_state_fail;
 390};
 391
 392#define BT_8822B_2ANT_EXT_BAND_SWITCH_USE_DPDT  0
 393#define BT_8822B_2ANT_EXT_BAND_SWITCH_USE_SPDT  1
 394
 395struct rfe_type_8822b_2ant {
 396        u8      rfe_module_type;
 397        bool    ext_ant_switch_exist;
 398        u8      ext_ant_switch_type; /* 0:DPDT, 1:SPDT */
 399        /*  iF 0: DPDT_P=0, DPDT_N=1 => BTG to Main, WL_A+G to Aux */
 400        u8      ext_ant_switch_ctrl_polarity;
 401
 402        bool    ext_band_switch_exist;
 403        u8      ext_band_switch_type; /* 0:DPDT, 1:SPDT */
 404        u8      ext_band_switch_ctrl_polarity;
 405
 406        /*  If true:  WLG at BTG, If false: WLG at WLAG */
 407        bool    wlg_locate_at_btg;
 408
 409        bool    ext_ant_switch_diversity; /* If diversity on */
 410};
 411
 412#define BT_8822B_2ANT_ANTDET_PSD_POINTS 256 /* MAX:1024 */
 413#define BT_8822B_2ANT_ANTDET_PSD_AVGNUM 1 /* MAX:3 */
 414#define BT_8822B_2ANT_ANTDET_BUF_LEN    16
 415
 416struct psdscan_sta_8822b_2ant {
 417        u32     ant_det_bt_le_channel; /* BT LE Channel ex:2412 */
 418        u32     ant_det_bt_tx_time;
 419        u32     ant_det_pre_psdscan_peak_val;
 420        bool    ant_det_is_ant_det_available;
 421        u32     ant_det_psd_scan_peak_val;
 422        bool    ant_det_is_btreply_available;
 423        u32     ant_det_psd_scan_peak_freq;
 424
 425        u8      ant_det_result;
 426        u8      ant_det_peak_val[BT_8822B_2ANT_ANTDET_BUF_LEN];
 427        u8      ant_det_peak_freq[BT_8822B_2ANT_ANTDET_BUF_LEN];
 428        u32     ant_det_try_count;
 429        u32     ant_det_fail_count;
 430        u32     ant_det_inteval_count;
 431        u32     ant_det_thres_offset;
 432
 433        u32     real_cent_freq;
 434        s32     real_offset;
 435        u32     real_span;
 436
 437        u32     psd_band_width; /* unit: Hz */
 438        u32     psd_point; /* 128/256/512/1024 */
 439        u32     psd_report[1024]; /* unit:dB (20logx), 0~255 */
 440        u32     psd_report_max_hold[1024]; /* unit:dB (20logx), 0~255 */
 441        u32     psd_start_point;
 442        u32     psd_stop_point;
 443        u32     psd_max_value_point;
 444        u32     psd_max_value;
 445        u32     psd_max_value2;
 446        /* filter loop_max_value that below BT_8822B_1ANT_ANTDET_PSDTHRES_1ANT,
 447         * and average the rest
 448         */
 449        u32     psd_avg_value;
 450        /*max value in each loop */
 451        u32     psd_loop_max_value[BT_8822B_2ANT_ANTDET_PSD_SWWEEPCOUNT];
 452        u32     psd_start_base;
 453        u32     psd_avg_num; /* 1/8/16/32 */
 454        u32     psd_gen_count;
 455        bool    is_ant_det_running;
 456        bool    is_psd_show_max_only;
 457};
 458
 459/* *******************************************
 460 * The following is interface which will notify coex module.
 461 * ********************************************/
 462void ex_btc8822b2ant_power_on_setting(struct btc_coexist *btcoexist);
 463void ex_btc8822b2ant_pre_load_firmware(struct btc_coexist *btcoexist);
 464void ex_btc8822b2ant_init_hw_config(struct btc_coexist *btcoexist,
 465                                    bool wifi_only);
 466void ex_btc8822b2ant_init_coex_dm(struct btc_coexist *btcoexist);
 467void ex_btc8822b2ant_ips_notify(struct btc_coexist *btcoexist, u8 type);
 468void ex_btc8822b2ant_lps_notify(struct btc_coexist *btcoexist, u8 type);
 469void ex_btc8822b2ant_scan_notify(struct btc_coexist *btcoexist, u8 type);
 470void ex_btc8822b2ant_switchband_notify(struct btc_coexist *btcoexist, u8 type);
 471void ex_btc8822b2ant_connect_notify(struct btc_coexist *btcoexist, u8 type);
 472void ex_btc8822b2ant_media_status_notify(struct btc_coexist *btcoexist,
 473                                         u8 type);
 474void ex_btc8822b2ant_specific_packet_notify(struct btc_coexist *btcoexist,
 475                                            u8 type);
 476void ex_btc8822b2ant_bt_info_notify(struct btc_coexist *btcoexist, u8 *tmp_buf,
 477                                    u8 length);
 478void ex_btc8822b2ant_rf_status_notify(struct btc_coexist *btcoexist, u8 type);
 479void ex_btc8822b2ant_halt_notify(struct btc_coexist *btcoexist);
 480void ex_btc8822b2ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state);
 481void ex_btc8822b2ant_periodical(struct btc_coexist *btcoexist);
 482void ex_btc8822b2ant_display_coex_info(struct btc_coexist *btcoexist,
 483                                       struct seq_file *m);
 484void ex_btc8822b2ant_antenna_detection(struct btc_coexist *btcoexist,
 485                                       u32 cent_freq, u32 offset, u32 span,
 486                                       u32 seconds);
 487void ex_btc8822b2ant_display_ant_detection(struct btc_coexist *btcoexist);
 488