7#ifndef __PLAT_PM_WLAN_H__
8#define __PLAT_PM_WLAN_H__
13#if defined(_PRE_OS_VERSION) && defined(_PRE_OS_VERSION_LINUX) && (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
14#include <linux/mutex.h>
15#include <linux/kernel.h>
16#include <linux/version.h>
17#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37))
18#if defined(_PRE_OS_VERSION) && defined(_PRE_OS_VERSION_LINUX) && (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
19#include <linux/pm_wakeup.h>
22#include <linux/mmc/host.h>
23#include <linux/mmc/sdio_func.h>
24#include <linux/mmc/sdio.h>
36#define WLAN_WAKUP_MSG_WAIT_TIMEOUT (1000)
37#define WLAN_SLEEP_MSG_WAIT_TIMEOUT (10000)
38#define WLAN_POWEROFF_ACK_WAIT_TIMEOUT (1000)
39#define WLAN_OPEN_BCPU_WAIT_TIMEOUT (1000)
40#define WLAN_HALT_BCPU_TIMEOUT (1000)
41#define WLAN_SLEEP_TIMER_PERIOD (50)
42#define WLAN_SLEEP_DEFAULT_CHECK_CNT (6)
43#define WLAN_SLEEP_LONG_CHECK_CNT (8)
44#define WLAN_SLEEP_FAST_CHECK_CNT (1)
45#define WLAN_WAKELOCK_HOLD_TIME (500)
47#define WLAN_SDIO_MSG_RETRY_NUM (3)
48#define WLAN_WAKEUP_FAIL_MAX_TIMES (1)
50#define HOST_WAIT_BOTTOM_WIFI_TIMEOUT 20000
51#define HOST_WAIT_BOTTOM_WIFI_TIMEOUT_QUARTERS 5000
52#define H2W_SLEEP_REQUEST_FORBID_LIMIT 60
53#define H2W_TRY_WKUP_MAX_TIMES 3
54#define WLAN_PM_MODULE "[wlan]"
79#define ALLOW_IDLESLEEP (1)
80#define DISALLOW_IDLESLEEP (0)
82#define WIFI_PM_POWERUP_EVENT (3)
83#define WIFI_PM_POWERDOWN_EVENT (2)
84#define WIFI_PM_SLEEP_EVENT (1)
85#define WIFI_PM_WAKEUP_EVENT (0)
94#ifdef _PRE_WLAN_WAKEUP_SRC_PARSE
99#ifdef _PRE_WLAN_WAKEUP_SRC_PARSE
100 wifi_srv_data_wkup_print_en_func p_data_wkup_print_en_func;
183#if defined(_PRE_OS_VERSION) && defined(_PRE_OS_VERSION_LINUX) && (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
253#if defined(_PRE_OS_VERSION) && defined(_PRE_OS_VERSION_LINUX) && (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
254osal_s32 wlan_pm_register_notifier(
struct notifier_block *nb);
255osal_void wlan_pm_unregister_notifier(
struct notifier_block *nb);
struct completion oal_completion
Definition oal_schedule.h:114
osal_s32 wlan_power_close_cmd(osal_void)
osal_ulong wlan_pm_state_get_etc(void)
WLAN_HOST_STATUS
Definition plat_pm_wlan.h:74
@ HOST_SLEEPED
Definition plat_pm_wlan.h:76
@ HOST_NOT_SLEEP
Definition plat_pm_wlan.h:75
osal_u32 wlan_wcpu_platform_pm_enable(osal_s32 enable)
osal_s32 wlan_open_ex(osal_void)
void wlan_pm_sub_vote(wlan_pm_vote_id idx, osal_u8 is_work)
osal_u32 wlan_pm_disable_check_wakeup(osal_s32 flag)
osal_void pm_ble_suspend_cb_host_register(pm_ble_suspend_cb cb)
osal_void wlan_cfg_init_cb_reg(wlan_customize_init_cb cb_cfg)
osal_s32 pm_wkup_process_host(osal_void)
void wlan_pm_dump_host_info_etc(void)
struct wlan_pm_s * wlan_pm_get_drv_etc(osal_void)
void wlan_pm_dump_device_info_etc(void)
osal_void wlan_pm_wakeup_dev_ack_etc(osal_void)
void(* pm_ble_suspend_cb)(void)
Definition plat_pm_wlan.h:192
osal_u32 wlan_pm_is_poweron_etc(osal_void)
osal_s32 wlan_pm_stop_wdg_etc(struct wlan_pm_s *wlan_pm_info)
osal_void(* wifi_srv_open_notify)(oal_bool_enum_uint8)
Definition plat_pm_wlan.h:91
osal_s32 wlan_pm_poweroff_cmd_etc(osal_void)
osal_u32 wlan_close_ex(osal_void)
void(* pm_wlan_suspend_cb)(void)
Definition plat_pm_wlan.h:190
osal_void pm_wifi_resume_cb_host_register(pm_wlan_resume_cb cb)
osal_void wlan_pm_debug_wakeup_etc(void)
osal_u32 wlan_close(osal_void)
void(* pm_wow_wkup_cb)(void)
Definition plat_pm_wlan.h:189
osal_void pm_wlan_gpio_intr_enable(osal_u32 en)
WLAN_PM_CPU_FREQ_ENUM
Definition plat_pm_wlan.h:57
@ WLCPU_160MHZ
Definition plat_pm_wlan.h:60
@ WLCPU_80MHZ
Definition plat_pm_wlan.h:59
@ WLCPU_320MHZ
Definition plat_pm_wlan.h:62
@ WLCPU_40MHZ
Definition plat_pm_wlan.h:58
@ WLCPU_480MHZ
Definition plat_pm_wlan.h:63
@ WLCPU_240MHZ
Definition plat_pm_wlan.h:61
osal_s32 wlan_pm_wakeup_for_pcie_open_wcpu(osal_void)
osal_ulong wlan_pm_wakeup_dev_etc(osal_void)
osal_u32(* pm_wlan_resume_cb)(void)
Definition plat_pm_wlan.h:191
struct wlan_pm_s * wlan_pm_init_etc(osal_void)
osal_void pm_wifi_wkup_cb_host_register(pm_wow_wkup_cb cb)
osal_void wlan_pm_debug_wake_lock_etc(void)
osal_void wlan_pm_debug_wake_unlock_etc(void)
struct wlan_memdump_s wlan_memdump_t
osal_void(* wifi_srv_pm_state_notify)(oal_bool_enum_uint8)
Definition plat_pm_wlan.h:92
osal_ulong wlan_pm_open_bcpu_etc(osal_void)
struct wifi_srv_callback_handler * wlan_pm_get_wifi_srv_handler_etc(osal_void)
osal_s32 wlan_open(osal_void)
osal_u32 wlan_pm_close_etc(osal_void)
oal_bool_enum_uint8(* wifi_srv_get_pm_pause_func)(osal_void)
Definition plat_pm_wlan.h:90
osal_void wlan_pm_feed_wdg_etc(osal_void)
osal_u32 wlan_pm_enable_etc(osal_void)
osal_s32 wlan_pm_h2d_notify_sleep_state(osal_u8 slp)
osal_u32 wlan_pm_disable_etc(osal_void)
void wlan_pm_info_clean_etc(void)
void pm_shutdown_process_host(void)
osal_void pm_ble_resume_cb_host_register(pm_ble_resume_cb cb)
WLAN_PM_SLEEP_STAGE
Definition plat_pm_wlan.h:66
@ SLEEP_ALLOW_RCV
Definition plat_pm_wlan.h:69
@ SLEEP_DISALLOW_RCV
Definition plat_pm_wlan.h:70
@ SLEEP_CMD_SND
Definition plat_pm_wlan.h:71
@ SLEEP_REQ_SND
Definition plat_pm_wlan.h:68
@ SLEEP_STAGE_INIT
Definition plat_pm_wlan.h:67
osal_s32 wlan_pm_open_etc(osal_void)
osal_ulong wlan_pm_exit_etc(osal_void)
osal_void pm_wifi_suspend_cb_host_register(pm_wlan_suspend_cb cb)
void wlan_pm_add_h2w_visit_user(int is_add)
osal_void wlan_pm_debug_sleep_etc(void)
osal_s32 wlan_power_open_cmd(osal_void)
osal_s32(* pm_ble_resume_cb)(void)
Definition plat_pm_wlan.h:193
osal_ulong wlan_pm_init_dev_etc(void)
osal_s32 wlan_pm_host_info_print_etc(struct wlan_pm_s *wlan_pm, char *buf, osal_s32 buf_len)
osal_s32(* wlan_customize_init_cb)(osal_void)
Definition plat_pm_wlan.h:187
osal_s32 wlan_pm_shutdown_bcpu_cmd_etc(osal_void)
wlan_pm_vote_id
Definition plat_pm_wlan.h:104
@ WLAN_PM_ID_BCPU
Definition plat_pm_wlan.h:105
@ WLAN_PM_ID_MAX
Definition plat_pm_wlan.h:106
osal_ulong wlan_pm_wakeup_host_etc(void)
oal_bool_enum_uint8(* wifi_srv_get_pm_pause_func)(osal_void)
Definition plat_pm_wlan.h:67
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned long osal_ulong
Definition osal_types.h:15
Definition hcc_bus_types.h:91
Definition oal_schedule.h:35
Definition osal_spinlock.h:18
Definition plat_pm_wlan.h:97
wifi_srv_get_pm_pause_func p_wifi_srv_get_pm_pause_func
Definition plat_pm_wlan.h:98
Definition plat_pm_wlan.h:174
osal_s32 len
Definition plat_pm_wlan.h:176
osal_s32 addr
Definition plat_pm_wlan.h:175
osal_s32 en
Definition plat_pm_wlan.h:177
Definition plat_pm_wlan.h:109
osal_u32 sleep_fail_forbid_cnt
Definition plat_pm_wlan.h:168
struct wifi_srv_callback_handler wifi_srv_handler
Definition plat_pm_wlan.h:140
osal_s32 irq_stat
Definition plat_pm_wlan.h:171
osal_u32 wdg_timeout_curr_cnt
Definition plat_pm_wlan.h:123
osal_u32 try_sleep_feed_wdg_cnt
Definition plat_pm_wlan.h:162
volatile osal_ulong wlan_dev_state
Definition plat_pm_wlan.h:118
oal_completion wifi_powerup_done
Definition plat_pm_wlan.h:136
hcc_bus * bus
Definition plat_pm_wlan.h:110
osal_u32 hcc_wkup_req_fail_cnt
Definition plat_pm_wlan.h:154
osal_u32 wakeup_succ
Definition plat_pm_wlan.h:148
osal_u32 sleep_fail_forbid
Definition plat_pm_wlan.h:167
osal_u32 wakeup_done_callback
Definition plat_pm_wlan.h:151
osal_u32 open_bcpu_done_callback
Definition plat_pm_wlan.h:144
osal_u32 sleep_feed_wdg_cnt
Definition plat_pm_wlan.h:163
oal_completion wakeup_done
Definition plat_pm_wlan.h:133
osal_u32 wakeup_fail_wait_sdio
Definition plat_pm_wlan.h:153
oal_completion sleep_request_ack
Definition plat_pm_wlan.h:134
osal_u32 wakeup_dev_ack
Definition plat_pm_wlan.h:150
osal_u32 wakeup_succ_work_submit
Definition plat_pm_wlan.h:149
osal_u32 sleep_succ
Definition plat_pm_wlan.h:161
osal_u32 close_done_callback
Definition plat_pm_wlan.h:147
oal_completion close_bcpu_done
Definition plat_pm_wlan.h:131
osal_u32 wakeup_fail_set_reg
Definition plat_pm_wlan.h:157
osal_ulong wlan_pm_enable
Definition plat_pm_wlan.h:112
osal_u32 close_bcpu_done_callback
Definition plat_pm_wlan.h:145
volatile osal_ulong sub_vote_status
Definition plat_pm_wlan.h:119
osal_ulong wlan_power_state
Definition plat_pm_wlan.h:114
osal_u32 packet_cnt
Definition plat_pm_wlan.h:121
osal_spinlock irq_lock
Definition plat_pm_wlan.h:172
oal_completion wcpu_pmctrl_ack
Definition plat_pm_wlan.h:137
oal_completion host_sleep_req_ack
Definition plat_pm_wlan.h:138
osal_u32 users_refuse_slp_cnt
Definition plat_pm_wlan.h:128
osal_u32 sleep_fail_wait_timeout
Definition plat_pm_wlan.h:165
osal_u32 sleep_work_submit
Definition plat_pm_wlan.h:169
osal_ulong wlan_state
Definition plat_pm_wlan.h:115
osal_u32 wakeup_fail_timeout
Definition plat_pm_wlan.h:155
osal_u32 sleep_fail_request
Definition plat_pm_wlan.h:164
osal_u32 wkup_err_cnt
Definition plat_pm_wlan.h:156
osal_u32 d2h_work_cnt
Definition plat_pm_wlan.h:159
atomic_t h2w_visit_users
Definition plat_pm_wlan.h:127
oal_completion open_bcpu_done
Definition plat_pm_wlan.h:130
osal_u32 close_cnt
Definition plat_pm_wlan.h:146
volatile osal_ulong sleep_stage
Definition plat_pm_wlan.h:124
oal_wakelock_stru deepsleep_wakelock
Definition plat_pm_wlan.h:120
oal_completion close_done
Definition plat_pm_wlan.h:132
oal_completion halt_bcpu_done
Definition plat_pm_wlan.h:135
osal_u32 wdg_timeout_cnt
Definition plat_pm_wlan.h:122
volatile osal_ulong host_sleep_state
Definition plat_pm_wlan.h:116
osal_s32 wlan_irq
Definition plat_pm_wlan.h:170
osal_u32 wakeup_fail
Definition plat_pm_wlan.h:152
osal_ulong wcpu_platform_pm_enable
Definition plat_pm_wlan.h:113
osal_u32 wakeup_fail_submit_work
Definition plat_pm_wlan.h:158
osal_u32 open_cnt
Definition plat_pm_wlan.h:143
osal_u32 sleep_fail_set_reg
Definition plat_pm_wlan.h:166
osal_u8 g_uc_custom_cali_done_etc