2012-10-25 13:46:32 -05:00
/******************************************************************************
*
* Copyright ( c ) 2009 - 2012 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 .
*
* 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 . ,
* 51 Franklin Street , Fifth Floor , Boston , MA 02110 , USA
*
* The full GNU General Public License is included in this distribution in the
* file called LICENSE .
*
* Contact Information :
* wlanfae < wlanfae @ realtek . com >
* Realtek Corporation , No . 2 , Innovation Road II , Hsinchu Science Park ,
* Hsinchu 300 , Taiwan .
* Larry Finger < Larry . Finger @ lwfinger . net >
*
2014-09-26 16:40:24 -05:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2012-10-25 13:46:32 -05:00
# ifndef __RTL92C__FW__H__
# define __RTL92C__FW__H__
2014-09-26 16:40:24 -05:00
# define FW_8192C_SIZE 0x3000
2012-10-25 13:46:32 -05:00
# define FW_8192C_START_ADDRESS 0x1000
# define FW_8192C_END_ADDRESS 0x3FFF
2014-09-26 16:40:24 -05:00
# define FW_8192C_PAGE_SIZE 4096
2012-10-25 13:46:32 -05:00
# define FW_8192C_POLLING_DELAY 5
2014-09-26 16:40:24 -05:00
# define IS_FW_HEADER_EXIST(_pfwhdr) \
( ( _pfwhdr - > signature & 0xFFFF ) = = 0x2300 | | \
( _pfwhdr - > signature & 0xFFFF ) = = 0x2301 | | \
( _pfwhdr - > signature & 0xFFFF ) = = 0x2302 )
2012-10-25 13:46:32 -05:00
2014-09-26 16:40:24 -05:00
# define pagenum_128(_len) (u32)(((_len)>>7) + ((_len)&0x7F ? 1 : 0))
2012-10-25 13:46:32 -05:00
# define SET_H2CCMD_PWRMODE_PARM_MODE(__ph2ccmd, __val) \
SET_BITS_TO_LE_1BYTE ( __ph2ccmd , 0 , 8 , __val )
2014-09-26 16:40:24 -05:00
# define SET_H2CCMD_PWRMODE_PARM_SMART_PS(__ph2ccmd, __val) \
2012-10-25 13:46:32 -05:00
SET_BITS_TO_LE_1BYTE ( ( __ph2ccmd ) + 1 , 0 , 8 , __val )
# define SET_H2CCMD_PWRMODE_PARM_BCN_PASS_TIME(__ph2ccmd, __val) \
SET_BITS_TO_LE_1BYTE ( ( __ph2ccmd ) + 2 , 0 , 8 , __val )
# define SET_H2CCMD_JOINBSSRPT_PARM_OPMODE(__ph2ccmd, __val) \
SET_BITS_TO_LE_1BYTE ( __ph2ccmd , 0 , 8 , __val )
# define SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(__ph2ccmd, __val) \
SET_BITS_TO_LE_1BYTE ( __ph2ccmd , 0 , 8 , __val )
# define SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(__ph2ccmd, __val) \
SET_BITS_TO_LE_1BYTE ( ( __ph2ccmd ) + 1 , 0 , 8 , __val )
# define SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(__ph2ccmd, __val) \
SET_BITS_TO_LE_1BYTE ( ( __ph2ccmd ) + 2 , 0 , 8 , __val )
2014-09-26 16:40:24 -05:00
void rtl8723e_fill_h2c_cmd ( struct ieee80211_hw * hw , u8 element_id ,
u32 cmd_len , u8 * p_cmdbuffer ) ;
void rtl8723e_set_fw_pwrmode_cmd ( struct ieee80211_hw * hw , u8 mode ) ;
void rtl8723e_set_fw_rsvdpagepkt ( struct ieee80211_hw * hw , bool b_dl_finished ) ;
void rtl8723e_set_fw_joinbss_report_cmd ( struct ieee80211_hw * hw , u8 mstatus ) ;
void rtl8723e_set_p2p_ps_offload_cmd ( struct ieee80211_hw * hw , u8 p2p_ps_state ) ;
2012-10-25 13:46:32 -05:00
# endif