/* ************************************************************************* * Ralink Tech Inc. * 5F., No.36, Taiyuan St., Jhubei City, * Hsinchu County 302, * Taiwan, R.O.C. * * (c) Copyright 2002-2010, Ralink Technology, Inc. * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * 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. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * *************************************************************************/ #define RADAR_PULSE 1 #define RADAR_WIDTH 2 #define WIDTH_RD_IDLE 0 #define WIDTH_RD_CHECK 1 /************************************************************************* * * DFS Radar related definitions. * ************************************************************************/ /*#define CARRIER_DETECT_TASK_NUM 6 */ /*#define RADAR_DETECT_TASK_NUM 7 */ /* McuRadarState && McuCarrierState for 2880-SW-MCU */ #define FREE_FOR_TX 0 #define WAIT_CTS_BEING_SENT 1 #define DO_DETECTION 2 /* McuRadarEvent */ #define RADAR_EVENT_CTS_SENT 0x01 /* Host signal MCU that CTS has been sent */ #define RADAR_EVENT_CTS_CARRIER_SENT 0x02 /* Host signal MCU that CTS has been sent (Carrier) */ #define RADAR_EVENT_RADAR_DETECTING 0x04 /* Radar detection is on going, carrier detection hold back */ #define RADAR_EVENT_CARRIER_DETECTING 0x08 /* Carrier detection is on going, radar detection hold back */ #define RADAR_EVENT_WIDTH_RADAR 0x10 /* BBP == 2 radar detected */ #define RADAR_EVENT_CTS_KICKED 0x20 /* Radar detection need to sent double CTS, first CTS sent */ /* McuRadarCmd */ #define DETECTION_STOP 0 #define RADAR_DETECTION 1 #define CARRIER_DETECTION 2 #if defined(RTMP_RBUS_SUPPORT) || defined(DFS_INTERRUPT_SUPPORT) #define RADAR_GPIO_DEBUG 0x01 /* GPIO external debug */ #define RADAR_SIMULATE 0x02 /* simulate a short pulse hit this channel */ #define RADAR_SIMULATE2 0x04 /* print any hit */ #define RADAR_LOG 0x08 /* log record and ready for print */ /* Both Old and New DFS */ #define RADAR_DONT_SWITCH 0x10 /* Don't Switch channel when hit */ #ifdef DFS_HARDWARE_SUPPORT /* New DFS only */ #define RADAR_DEBUG_EVENT 0x01 /* print long pulse debug event */ #define RADAR_DEBUG_FLAG_1 0x02 #define RADAR_DEBUG_FLAG_2 0x04 #define RADAR_DEBUG_FLAG_3 0x08 #define RADAR_DEBUG_SILENCE 0x4 #define RADAR_DEBUG_SW_SILENCE 0x8 #endif /* DFS_HARDWARE_SUPPORT */ #ifdef DFS_HARDWARE_SUPPORT VOID NewRadarDetectionStart( IN PRTMP_ADAPTER pAd); VOID NewRadarDetectionStop( IN PRTMP_ADAPTER pAd); void modify_table1( IN PRTMP_ADAPTER pAd, IN ULONG idx, IN ULONG value); void modify_table2( IN PRTMP_ADAPTER pAd, IN ULONG idx, IN ULONG value); VOID NewTimerCB_Radar( IN PRTMP_ADAPTER pAd); void schedule_dfs_task( IN PRTMP_ADAPTER pAd); #endif /* DFS_HARDWARE_SUPPORT */ #endif /* defined (RTMP_RBUS_SUPPORT) || defined(DFS_INTERRUPT_SUPPORT) */ void MCURadarDetect(PRTMP_ADAPTER pAd); #ifdef TONE_RADAR_DETECT_SUPPORT void RTMPHandleRadarInterrupt(PRTMP_ADAPTER pAd); #else #ifdef DFS_HARDWARE_SUPPORT #if defined (RTMP_RBUS_SUPPORT) || defined(DFS_INTERRUPT_SUPPORT) void RTMPHandleRadarInterrupt(PRTMP_ADAPTER pAd); #endif /* defined (RTMP_RBUS_SUPPORT) || defined(DFS_INTERRUPT_SUPPORT) */ #endif /* DFS_HARDWARE_SUPPORT */ #endif /* TONE_RADAR_DETECT_SUPPORT */ #ifdef TONE_RADAR_DETECT_SUPPORT INT Set_CarrierCriteria_Proc(IN PRTMP_ADAPTER pAd, IN PSTRING arg); int Set_CarrierReCheck_Proc(IN PRTMP_ADAPTER pAd, IN PSTRING arg); INT Set_CarrierStopCheck_Proc(IN PRTMP_ADAPTER pAd, IN PSTRING arg); void NewCarrierDetectionStart(PRTMP_ADAPTER pAd); #endif /* TONE_RADAR_DETECT_SUPPORT */ #ifdef DFS_SOFTWARE_SUPPORT VOID BbpRadarDetectionStart( IN PRTMP_ADAPTER pAd); VOID BbpRadarDetectionStop( IN PRTMP_ADAPTER pAd); VOID RadarDetectionStart( IN PRTMP_ADAPTER pAd, IN BOOLEAN CTS_Protect, IN UINT8 CTSPeriod); VOID RadarDetectionStop( IN PRTMP_ADAPTER pAd); #endif /* DFS_SOFTWARE_SUPPORT */ VOID RadarDetectPeriodic( IN PRTMP_ADAPTER pAd); BOOLEAN RadarChannelCheck( IN PRTMP_ADAPTER pAd, IN UCHAR Ch); ULONG JapRadarType( IN PRTMP_ADAPTER pAd); ULONG RTMPBbpReadRadarDuration( IN PRTMP_ADAPTER pAd); ULONG RTMPReadRadarDuration( IN PRTMP_ADAPTER pAd); VOID RTMPCleanRadarDuration( IN PRTMP_ADAPTER pAd); VOID RTMPPrepareRDCTSFrame( IN PRTMP_ADAPTER pAd, IN PUCHAR pDA, IN ULONG Duration, IN UCHAR RTSRate, IN ULONG CTSBaseAddr, IN UCHAR FrameGap); #ifdef DFS_SOFTWARE_SUPPORT VOID RTMPPrepareRadarDetectParams( IN PRTMP_ADAPTER pAd); #endif /* DFS_SOFTWARE_SUPPORT */ INT Set_ChMovingTime_Proc( IN PRTMP_ADAPTER pAd, IN PSTRING arg); INT Set_LongPulseRadarTh_Proc( IN PRTMP_ADAPTER pAd, IN PSTRING arg);