| /****************************************************************************** |
| * |
| * Copyright(c) 2007 - 2017 Realtek Corporation. |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of version 2 of the GNU General Public License as |
| * published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| * more details. |
| * |
| *****************************************************************************/ |
| |
| #ifndef __PHYDM_PRIMARYCCA_H__ |
| #define __PHYDM_PRIMARYCCA_H__ |
| |
| #define PRIMARYCCA_VERSION "1.0" /*2017.03.23, Dino*/ |
| |
| /*============================================================*/ |
| /*Definition */ |
| /*============================================================*/ |
| |
| #if (DM_ODM_SUPPORT_TYPE == ODM_CE) |
| #define SECOND_CH_AT_LSB 2 /*primary CH @ MSB, SD4: HAL_PRIME_CHNL_OFFSET_UPPER*/ |
| #define SECOND_CH_AT_USB 1 /*primary CH @ LSB, SD4: HAL_PRIME_CHNL_OFFSET_LOWER*/ |
| #elif (DM_ODM_SUPPORT_TYPE == ODM_WIN) |
| #define SECOND_CH_AT_LSB 2 /*primary CH @ MSB, SD7: HAL_PRIME_CHNL_OFFSET_UPPER*/ |
| #define SECOND_CH_AT_USB 1 /*primary CH @ LSB, SD7: HAL_PRIME_CHNL_OFFSET_LOWER*/ |
| #else /*if (DM_ODM_SUPPORT_TYPE == ODM_AP)*/ |
| #define SECOND_CH_AT_LSB 1 /*primary CH @ MSB, SD8: HT_2NDCH_OFFSET_BELOW*/ |
| #define SECOND_CH_AT_USB 2 /*primary CH @ LSB, SD8: HT_2NDCH_OFFSET_ABOVE*/ |
| #endif |
| |
| #define OFDMCCA_TH 500 |
| #define bw_ind_bias 500 |
| #define PRI_CCA_MONITOR_TIME 30 |
| |
| #ifdef PHYDM_PRIMARY_CCA |
| |
| /*============================================================*/ |
| /*structure and define*/ |
| /*============================================================*/ |
| enum primary_cca_ch_position { /*N-series REG0xc6c[8:7]*/ |
| MF_USC_LSC = 0, |
| MF_LSC = 1, |
| MF_USC = 2 |
| }; |
| |
| struct phydm_pricca_struct { |
| |
| #if (RTL8188E_SUPPORT == 1) || (RTL8192E_SUPPORT == 1) |
| u8 pri_cca_flag; |
| u8 intf_flag; |
| u8 intf_type; |
| u8 monitor_flag; |
| u8 ch_offset; |
| #endif |
| u8 dup_rts_flag; |
| u8 cca_th_40m_bkp; /*c84[31:28]*/ |
| enum channel_width pre_bw; |
| u8 pri_cca_is_become_linked; |
| u8 mf_state; |
| }; |
| |
| /*============================================================*/ |
| /*function prototype*/ |
| /*============================================================*/ |
| |
| #if 0 |
| #if (RTL8192E_SUPPORT == 1) |
| #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) |
| |
| void |
| odm_dynamic_primary_cca_mp_8192e( |
| void *p_dm_void |
| ); |
| |
| #elif (DM_ODM_SUPPORT_TYPE == ODM_AP) |
| |
| void |
| odm_dynamic_primary_cca_ap_8192e( |
| void *p_dm_void |
| ); |
| #endif |
| #endif |
| |
| #if (RTL8188E_SUPPORT == 1) |
| |
| void |
| odm_dynamic_primary_cca_8188e( |
| void *p_dm_void |
| ); |
| #endif |
| #endif |
| |
| #endif /*#ifdef PHYDM_PRIMARY_CCA*/ |
| |
| |
| boolean |
| odm_dynamic_primary_cca_dup_rts( |
| void *p_dm_void |
| ); |
| |
| void |
| phydm_primary_cca_init( |
| void *p_dm_void |
| ); |
| |
| void |
| phydm_primary_cca( |
| void *p_dm_void |
| ); |
| |
| |
| #endif /*#ifndef __PHYDM_PRIMARYCCA_H__*/ |