19fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li/****************************************************************************** 29fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * 3ca742cd9766ff519b0e927a9296e29541ee13c7bLarry Finger * Copyright(c) 2009-2012 Realtek Corporation. 49fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * 59fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * This program is free software; you can redistribute it and/or modify it 69fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * under the terms of version 2 of the GNU General Public License as 79fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * published by the Free Software Foundation. 89fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * 99fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * This program is distributed in the hope that it will be useful, but WITHOUT 109fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 119fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 129fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * more details. 139fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * 149fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * You should have received a copy of the GNU General Public License along with 159fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * this program; if not, write to the Free Software Foundation, Inc., 169fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 179fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * 189fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * The full GNU General Public License is included in this distribution in the 199fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * file called LICENSE. 209fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * 219fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * Contact Information: 229fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * wlanfae <wlanfae@realtek.com> 239fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, 249fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * Hsinchu 300, Taiwan. 259fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * 269fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * Larry Finger <Larry.Finger@lwfinger.net> 279fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li * 289fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li *****************************************************************************/ 299fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#ifndef __RTL_92S_DM_H__ 309fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define __RTL_92S_DM_H__ 319fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 329fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Lienum dm_dig_alg { 339fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_ALGO_BY_FALSE_ALARM = 0, 349fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_ALGO_BY_RSSI = 1, 359fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_ALGO_BEFORE_CONNECT_BY_RSSI_AND_ALARM = 2, 369fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_ALGO_BY_TOW_PORT = 3, 379fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_ALGO_MAX 389fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li}; 399fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 409fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Lienum dm_dig_two_port_alg { 419fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_TWO_PORT_ALGO_RSSI = 0, 429fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_TWO_PORT_ALGO_FALSE_ALARM = 1, 439fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li}; 449fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 459fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Lienum dm_dig_dbg { 469fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_DBG_OFF = 0, 479fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_DBG_ON = 1, 489fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_DBG_MAX 499fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li}; 509fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 519fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Lienum dm_dig_sta { 529fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_STA_DIG_OFF = 0, 539fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_STA_DIG_ON, 549fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_STA_DIG_MAX 559fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li}; 569fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 579fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Lienum dm_dig_connect { 589fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_STA_DISCONNECT = 0, 599fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_STA_CONNECT = 1, 609fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_STA_BEFORE_CONNECT = 2, 619fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_AP_DISCONNECT = 3, 629fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_AP_CONNECT = 4, 639fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_AP_ADD_STATION = 5, 649fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_CONNECT_MAX 659fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li}; 669fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 679fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Lienum dm_dig_ext_port_alg { 689fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_EXT_PORT_STAGE_0 = 0, 699fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_EXT_PORT_STAGE_1 = 1, 709fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_EXT_PORT_STAGE_2 = 2, 719fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_EXT_PORT_STAGE_3 = 3, 729fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DIG_EXT_PORT_STAGE_MAX = 4, 739fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li}; 749fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 759fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Lienum dm_ratr_sta { 769fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_RATR_STA_HIGH = 0, 779fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_RATR_STA_MIDDLEHIGH = 1, 789fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_RATR_STA_MIDDLE = 2, 799fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_RATR_STA_MIDDLELOW = 3, 809fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_RATR_STA_LOW = 4, 819fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_RATR_STA_ULTRALOW = 5, 829fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li DM_RATR_STA_MAX 839fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li}; 849fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 859fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_TYPE_BYFW 0 869fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_TYPE_BYDRIVER 1 879fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 889fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define TX_HIGH_PWR_LEVEL_NORMAL 0 899fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define TX_HIGH_PWR_LEVEL_LEVEL1 1 909fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define TX_HIGH_PWR_LEVEL_LEVEL2 2 919fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 929fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define HAL_DM_DIG_DISABLE BIT(0) /* Disable Dig */ 939fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define HAL_DM_HIPWR_DISABLE BIT(1) /* Disable High Power */ 949fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 959fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define TX_HIGHPWR_LEVEL_NORMAL 0 969fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define TX_HIGHPWR_LEVEL_NORMAL1 1 979fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define TX_HIGHPWR_LEVEL_NORMAL2 2 989fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 999fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define TX_POWER_NEAR_FIELD_THRESH_LVL2 74 1009fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define TX_POWER_NEAR_FIELD_THRESH_LVL1 67 1019fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 1029fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_THRESH_HIGH 40 1039fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_THRESH_LOW 35 1049fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_FALSEALARM_THRESH_LOW 40 1059fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_FALSEALARM_THRESH_HIGH 1000 1069fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_HIGH_PWR_THRESH_HIGH 75 1079fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_HIGH_PWR_THRESH_LOW 70 1089fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_BACKOFF 12 1099fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_MAX 0x3e 1109fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_MIN 0x1c 1119fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_MIN_Netcore 0x12 1129fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_BACKOFF_MAX 12 1139fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#define DM_DIG_BACKOFF_MIN -4 1149fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 1159fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Livoid rtl92s_dm_watchdog(struct ieee80211_hw *hw); 1169fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Livoid rtl92s_dm_init(struct ieee80211_hw *hw); 1179fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Livoid rtl92s_dm_init_edca_turbo(struct ieee80211_hw *hw); 1189fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 1199fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li#endif 1209fe255ee3c0dd81c134b354e4b328c51f863ac40Chaoming Li 121