This commit is contained in:
pvvx 2017-06-28 07:09:45 +03:00
parent b8c699eb1c
commit 3a865fb51d
40 changed files with 293 additions and 463 deletions

View file

@ -707,14 +707,14 @@ void fATSP(void *arg) {
switch (argv[1][0]) {
case 'a': // acquire
{
pmu_acquire_wakelock(WAKELOCK_OS);
acquire_wakelock(WAKELOCK_OS);
//at_printf("\r\n[ATSP] wakelock:0x%08x", get_wakelock_status());
break;
}
case 'r': // release
{
pmu_release_wakelock(WAKELOCK_OS);
release_wakelock(WAKELOCK_OS);
//at_printf("\r\n[ATSP] wakelock:0x%08x", get_wakelock_status());
break;
}
@ -1110,7 +1110,7 @@ void fATSL(void *arg) {
{
if (argc == 3) {
lock_id = strtoul(argv[2], NULL, 16);
pmu_acquire_wakelock(lock_id);
acquire_wakelock(lock_id);
}
AT_DBG_MSG(AT_FLAG_OS, AT_DBG_ALWAYS, "[ATSL] wakelock:0x%08x",
pmu_get_wakelock_status());
@ -1121,7 +1121,7 @@ void fATSL(void *arg) {
{
if (argc == 3) {
lock_id = strtoul(argv[2], NULL, 16);
pmu_release_wakelock(lock_id);
release_wakelock(lock_id);
}
AT_DBG_MSG(AT_FLAG_OS, AT_DBG_ALWAYS, "[ATSL] wakelock:0x%08x",
pmu_get_wakelock_status());

View file

@ -427,7 +427,7 @@ void log_service(void *param)
log_service_unlock();
#endif
#if defined(configUSE_WAKELOCK_PMU) && (configUSE_WAKELOCK_PMU == 1)
pmu_release_wakelock(WAKELOCK_LOGUART);
release_wakelock(WAKELOCK_LOGUART);
#endif
}
}

View file

@ -13,7 +13,12 @@
#endif
#include <osdep_service.h>
#include "sdk_ver.h"
#if SDK_VER_NUM < 0x4000
#define USE_WIFI_ADAPTER 1 // использовать прямое обращение в тело драйвера WiFi
#else
#define USE_WIFI_ADAPTER 0 // не использовать прямое обращение в тело драйвера WiFi (ещё не согласована struct adapter)
#endif
int iw_ioctl(const char * ifname, unsigned long request, struct iwreq * pwrq) {
memcpy(pwrq->ifr_name, ifname, 5);
@ -32,7 +37,7 @@ int iw_ioctl(const char * ifname, unsigned long request, struct iwreq * pwrq) {
return ret;
}
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
extern Rltk_wlan_t rltk_wlan_info[2]; // in wrapper.h
LOCAL _adapter * get_padapter(const char *ifname) {
if(ifname[4] == '0') {
@ -46,7 +51,7 @@ LOCAL _adapter * get_padapter(const char *ifname) {
/* ssid = NULL -> not connected */
int wext_get_ssid(const char *ifname, __u8 *ssid) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
_adapter * pad = get_padapter(ifname);
rtw_result_t ret = RTW_ERROR;
if(pad != NULL && (pad->mlmepriv.fw_state & 0x41) != 0) {
@ -250,7 +255,7 @@ int wext_get_mac_address(const char *ifname, char * mac)
#endif
int wext_enable_powersave(const char *ifname, __u8 ips_mode, __u8 lps_mode) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
_adapter * pad = get_padapter(ifname);
rtw_result_t ret = RTW_ERROR;
if(pad) {
@ -303,7 +308,7 @@ int wext_disable_powersave(const char *ifname) {
int wext_set_tdma_param(const char *ifname, __u8 slot_period,
__u8 rfon_period_len_1, __u8 rfon_period_len_2, __u8 rfon_period_len_3) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
_adapter * pad = get_padapter(ifname);
rtw_result_t ret = RTW_ERROR;
if(pad) {
@ -336,7 +341,7 @@ int wext_set_tdma_param(const char *ifname, __u8 slot_period,
}
int wext_set_lps_dtim(const char *ifname, __u8 lps_dtim) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
_adapter * pad = get_padapter(ifname);
rtw_result_t ret = RTW_ERROR;
if(pad) {
@ -365,7 +370,7 @@ int wext_set_lps_dtim(const char *ifname, __u8 lps_dtim) {
}
int wext_get_lps_dtim(const char *ifname, __u8 *lps_dtim) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
_adapter * pad = get_padapter(ifname);
rtw_result_t ret = RTW_ERROR;
if(pad) {
@ -506,7 +511,7 @@ int wext_get_ap_info(const char *ifname, rtw_bss_info_t * ap_info,
#endif
int wext_set_mode(const char *ifname, int mode) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
_adapter * pad = get_padapter(ifname);
int nwm;
if(rtw_pwr_wakeup(pad) && pad->hw_init_completed) {
@ -540,7 +545,7 @@ int wext_set_mode(const char *ifname, int mode) {
}
int wext_get_mode(const char *ifname, int *mode) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
_adapter * pad = get_padapter(ifname);
rtw_result_t ret = RTW_ERROR;
if(pad) {
@ -563,7 +568,7 @@ int wext_get_mode(const char *ifname, int *mode) {
}
int wext_set_ap_ssid(const char *ifname, const __u8 *ssid, __u16 ssid_len) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
struct net_device * pdev = rltk_wlan_info[0].dev;
if(ifname[4] != '0')
pdev = rltk_wlan_info[1].dev;
@ -593,7 +598,7 @@ int wext_set_country(const char *ifname, rtw_country_code_t country_code) {
}
int wext_get_rssi(const char *ifname, int *rssi) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
_adapter * pad = get_padapter(ifname);
rtw_result_t ret = RTW_ERROR;
if(pad) {
@ -671,7 +676,7 @@ int wext_set_channel(const char *ifname, __u8 ch) {
}
int wext_get_channel(const char *ifname, __u8 *ch) {
#ifdef USE_WIFI_ADAPTER
#if USE_WIFI_ADAPTER
_adapter * pad = get_padapter(ifname);
rtw_result_t ret = RTW_ERROR;
if(pad) {

View file

@ -248,16 +248,16 @@ LOCAL uint8 chk_ap_netif_num(void)
extern Rltk_wlan_t rltk_wlan_info[2]; // in wrapper.h
/*LOCAL _adapter * get_padapter(int num) {
/*LOCAL _adapter * get_padaptern(int num) {
if(rltk_wlan_info[num].enable) {
return *(_adapter **)((rltk_wlan_info[0].dev)->priv);
}
return NULL;
};*/
#define get_padapter(num) (*(_adapter **)((rltk_wlan_info[num].dev)->priv));
#define get_padaptern(num) (*(_adapter **)((rltk_wlan_info[num].dev)->priv));
LOCAL rtw_result_t _wext_set_lps_dtim(int adapter_num, uint8 lps_dtim ) {
_adapter * pad = get_padapter(adapter_num);
rtw_result_t _wext_set_lps_dtim(int adapter_num, uint8 lps_dtim ) {
_adapter * pad = get_padaptern(adapter_num);
rtw_result_t ret = RTW_ERROR;
if(pad) {
ret = rtw_pm_set_lps_dtim(pad, lps_dtim);
@ -265,8 +265,13 @@ LOCAL rtw_result_t _wext_set_lps_dtim(int adapter_num, uint8 lps_dtim ) {
return ret;
}
LOCAL rtw_result_t _wext_enable_powersave(int adapter_num, uint8 ips_mode, uint8 lps_mode) {
_adapter * pad = get_padapter(adapter_num);
int _wext_get_lps_dtim(int adapter_num) {
_adapter * pad = get_padaptern(adapter_num);
return rtw_pm_get_lps_dtim(pad);
}
rtw_result_t _wext_enable_powersave(int adapter_num, uint8 ips_mode, uint8 lps_mode) {
_adapter * pad = get_padaptern(adapter_num);
rtw_result_t ret = RTW_ERROR;
if(pad) {
ret = rtw_pm_set_ips(pad, ips_mode); // 2 режима 1,2 !
@ -280,7 +285,7 @@ LOCAL rtw_result_t _wext_enable_powersave(int adapter_num, uint8 ips_mode, uint8
LOCAL int _wext_cmp_ssid(int adapter_num, uint8 *ssid)
{
_adapter * pad = get_padapter(adapter_num);
_adapter * pad = get_padaptern(adapter_num);
int ret = 0;
if((pad != NULL) && (pad->mlmepriv.fw_state & 0x41) != 0) {
int len = pad->mlmepriv.cur_network.network.Ssid.SsidLength;
@ -295,7 +300,7 @@ LOCAL int _wext_cmp_ssid(int adapter_num, uint8 *ssid)
#ifdef NOT_USE_CALLS
LOCAL rtw_result_t _wext_get_mode(int adapter_num, int *mode) {
_adapter * pad = get_padapter(adapter_num);
_adapter * pad = get_padaptern(adapter_num);
rtw_result_t ret = RTW_ERROR;
if(pad) {
uint16 f = pad->mlmepriv.fw_state;
@ -310,7 +315,7 @@ LOCAL rtw_result_t _wext_get_mode(int adapter_num, int *mode) {
LOCAL rtw_result_t _wext_get_channel(int adapter_num, uint8 *ch)
{
_adapter * pad = get_padapter(adapter_num);
_adapter * pad = get_padaptern(adapter_num);
rtw_result_t ret = RTW_ERROR;
if(pad) {
if(pad->mlmepriv.fw_state & 1) {

View file

@ -185,4 +185,8 @@ rtw_result_t api_wifi_scan(api_scan_result_handler_t scan_result_cb);
void wifi_close_scan(void);
rtw_result_t _wext_set_lps_dtim(int adapter_num, uint8 lps_dtim);
int _wext_get_lps_dtim(int adapter_num);
rtw_result_t _wext_enable_powersave(int adapter_num, uint8 ips_mode, uint8 lps_mode);
#endif // _WIFI_API_H_

View file

@ -1977,6 +1977,53 @@ struct hal_ops {
uint8_t (*hal_get_tx_buff_rsvd_page_num)(_adapter *, bool);
};
/* 138 */
typedef enum _P2P_ROLE // : __int32
{
P2P_ROLE_DISABLE = 0x0,
P2P_ROLE_DEVICE = 0x1,
P2P_ROLE_CLIENT = 0x2,
P2P_ROLE_GO = 0x3,
} P2P_ROLE;
typedef enum P2P_STATE // : __int32
{
P2P_STATE_NONE = 0x0,
P2P_STATE_IDLE = 0x1,
P2P_STATE_LISTEN = 0x2,
P2P_STATE_SCAN = 0x3,
P2P_STATE_FIND_PHASE_LISTEN = 0x4,
P2P_STATE_FIND_PHASE_SEARCH = 0x5,
P2P_STATE_TX_PROVISION_DIS_REQ = 0x6,
P2P_STATE_RX_PROVISION_DIS_RSP = 0x7,
P2P_STATE_RX_PROVISION_DIS_REQ = 0x8,
P2P_STATE_GONEGO_ING = 0x9,
P2P_STATE_GONEGO_OK = 0xA,
P2P_STATE_GONEGO_FAIL = 0xB,
P2P_STATE_RECV_INVITE_REQ_MATCH = 0xC,
P2P_STATE_PROVISIONING_ING = 0xD,
P2P_STATE_PROVISIONING_DONE = 0xE,
P2P_STATE_TX_INVITE_REQ = 0xF,
P2P_STATE_RX_INVITE_RESP = 0x10,
P2P_STATE_RECV_INVITE_REQ_DISMATCH = 0x11,
P2P_STATE_RECV_INVITE_REQ_GO = 0x12,
P2P_STATE_RECV_INVITE_REQ_JOIN = 0x13,
P2P_STATE_FORMATION_COMPLETE = 0x14,
P2P_STATE_CONNECTED = 0x15,
} P2P_STATE;
struct wifidirect_info
{
P2P_ROLE role;
P2P_STATE p2p_state;
uint8_t baction_tx_pending;
uint8_t pending_peer[6];
struct xmit_frame *pending_action;
_timer pre_tx_scan_timer;
};
struct _atr_aligned4_ _ADAPTER {
uint16_t HardwareType;
uint16_t interface_type; //+2
@ -1994,6 +2041,9 @@ struct _atr_aligned4_ _ADAPTER {
struct registry_priv registrypriv;
struct pwrctrl_priv pwrctrlpriv; // pwrctrlpriv.bInternalAutoSuspend //+5061
struct eeprom_priv eeprompriv;
struct wifidirect_info wdinfo;
PVOID HalData;
uint32_t hal_data_sz;
struct hal_ops HalFunc;
@ -2024,14 +2074,22 @@ struct _atr_aligned4_ _ADAPTER {
uint8_t bRxRSSIDisplay;
_adapter *pbuddy_adapter; //+6056
_mutex *hw_init_mutex; //+6060
_mutex *ph2c_fwcmd_mutex;
uint8_t isprimary; //+6064
uint8_t adapter_type; //+6065
uint8_t iface_type; //+6056
_mutex *ph2c_fwcmd_mutex; //+6068
// _mutex *ph2c_fwcmd_mutex; //+6068
_mutex *psetch_mutex; //+6072
_mutex *psetbw_mutex; //+6076
struct co_data_priv *pcodatapriv; //+6080
uint8_t fix_rate; //+6084
uint8_t ra_mask_user_en;
uint32_t ra_mask_define;
uint8_t auto_rate_fallback_user_en;
}; // [6088] (!)
typedef struct _ADAPTER *PADAPTER;
// if sizeof(struct _ADAPTER) != 6088 #error "Check aligned struct!" !

View file

@ -1287,8 +1287,10 @@ extern void LPS_Enter(PADAPTER padapter);
extern void LPS_Leave(PADAPTER padapter);
extern void LeaveAllPowerSaveMode(PADAPTER Adapter);
extern void rtw_init_pwrctrl_priv(PADAPTER padapter);
extern void rtw_free_pwrctrl_priv(PADAPTER adapter);
extern int rtw_pwr_wakeup(_adapter *padapter, uint32_t ips_deffer_ms, const char *caller);
extern void rtw_free_pwrctrl_priv(PADAPTER adapter);
extern int _rtw_pwr_wakeup(_adapter *padapter, uint32_t ips_deffer_ms, const char *caller);
#define RTW_PWR_STATE_CHK_INTERVAL 2000
#define rtw_pwr_wakeup(adapter) _rtw_pwr_wakeup(adapter, RTW_PWR_STATE_CHK_INTERVAL, __FUNCTION__)
extern int rtw_pm_set_lps(_adapter *padapter, int mode);
extern int rtw_pm_set_ips(_adapter *padapter, int mode);
extern int rtw_pm_set_tdma_param(_adapter *padapter, uint8_t tdma_slot_period, uint8_t tdma_rfon_period_len_1, uint8_t tdma_rfon_period_len_2, uint8_t tdma_rfon_period_len_3);

View file

@ -34,8 +34,13 @@ void sys_recover_ota_signature(void);
void sys_log_uart_on(void);
void sys_log_uart_off(void);
void sys_adc_calibration(u8 write, u16 *offset, u16 *gain);
u8 sys_is_sdram_power_on(void);
#ifdef CONFIG_SDR_EN
void sys_sdram_off(void);
u8 sys_is_sdram_power_on(void);
#else
#define sys_sdram_off()
#define sys_is_sdram_power_on() (0)
#endif
/**
* @brief system software reset

View file

@ -203,28 +203,16 @@ void sys_reset(void)
(1 << 2)); // SYSRESETREQ
}
#ifdef CONFIG_SDR_EN
u8 sys_is_sdram_power_on(void)
{
#ifdef CONFIG_SDR_EN
// u8 ison = 0;
//#if defined ( __ICCARM__ )
return IsSdrPowerOn();
//#endif
// return ison;
#else
return 0;
#endif
}
void sys_sdram_off(void)
{
#ifdef CONFIG_SDR_EN
//#if defined ( __ICCARM__ )
if (IsSdrPowerOn()) {
SdrPowerOff();
}
//#endif
#endif
}
#endif