aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/ath6kl/os/linux/ar6000_pm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/ath6kl/os/linux/ar6000_pm.c')
-rw-r--r--drivers/staging/ath6kl/os/linux/ar6000_pm.c206
1 files changed, 89 insertions, 117 deletions
diff --git a/drivers/staging/ath6kl/os/linux/ar6000_pm.c b/drivers/staging/ath6kl/os/linux/ar6000_pm.c
index b937df9c0cb5..1a9042446bcb 100644
--- a/drivers/staging/ath6kl/os/linux/ar6000_pm.c
+++ b/drivers/staging/ath6kl/os/linux/ar6000_pm.c
@@ -30,32 +30,21 @@
#include <linux/platform_device.h>
#include "wlan_config.h"
-#ifdef CONFIG_HAS_WAKELOCK
-#include <linux/wakelock.h>
-#endif
-
#define WOW_ENABLE_MAX_INTERVAL 0
#define WOW_SET_SCAN_PARAMS 0
extern unsigned int wmitimeout;
extern wait_queue_head_t arEvent;
-#ifdef CONFIG_PM
-#ifdef CONFIG_HAS_WAKELOCK
-struct wake_lock ar6k_suspend_wake_lock;
-struct wake_lock ar6k_wow_wake_lock;
-#endif
-#endif /* CONFIG_PM */
-
#ifdef ANDROID_ENV
-extern void android_ar6k_check_wow_status(AR_SOFTC_T *ar, struct sk_buff *skb, A_BOOL isEvent);
+extern void android_ar6k_check_wow_status(struct ar6_softc *ar, struct sk_buff *skb, bool isEvent);
#endif
#undef ATH_MODULE_NAME
#define ATH_MODULE_NAME pm
#define ATH_DEBUG_PM ATH_DEBUG_MAKE_MODULE_MASK(0)
#ifdef DEBUG
-static ATH_DEBUG_MASK_DESCRIPTION pm_debug_desc[] = {
+static struct ath_debug_mask_description pm_debug_desc[] = {
{ ATH_DEBUG_PM , "System power management"},
};
@@ -68,10 +57,10 @@ ATH_DEBUG_INSTANTIATE_MODULE_VAR(pm,
#endif /* DEBUG */
-A_STATUS ar6000_exit_cut_power_state(AR_SOFTC_T *ar);
+int ar6000_exit_cut_power_state(struct ar6_softc *ar);
#ifdef CONFIG_PM
-static void ar6k_send_asleep_event_to_app(AR_SOFTC_T *ar, A_BOOL asleep)
+static void ar6k_send_asleep_event_to_app(struct ar6_softc *ar, bool asleep)
{
char buf[128];
union iwreq_data wrqu;
@@ -82,17 +71,14 @@ static void ar6k_send_asleep_event_to_app(AR_SOFTC_T *ar, A_BOOL asleep)
wireless_send_event(ar->arNetDev, IWEVCUSTOM, &wrqu, buf);
}
-static void ar6000_wow_resume(AR_SOFTC_T *ar)
+static void ar6000_wow_resume(struct ar6_softc *ar)
{
if (ar->arWowState!= WLAN_WOW_STATE_NONE) {
- A_UINT16 fg_start_period = (ar->scParams.fg_start_period==0) ? 1 : ar->scParams.fg_start_period;
- A_UINT16 bg_period = (ar->scParams.bg_period==0) ? 60 : ar->scParams.bg_period;
- WMI_SET_HOST_SLEEP_MODE_CMD hostSleepMode = {TRUE, FALSE};
+ u16 fg_start_period = (ar->scParams.fg_start_period==0) ? 1 : ar->scParams.fg_start_period;
+ u16 bg_period = (ar->scParams.bg_period==0) ? 60 : ar->scParams.bg_period;
+ WMI_SET_HOST_SLEEP_MODE_CMD hostSleepMode = {true, false};
ar->arWowState = WLAN_WOW_STATE_NONE;
-#ifdef CONFIG_HAS_WAKELOCK
- wake_lock_timeout(&ar6k_wow_wake_lock, 3*HZ);
-#endif
- if (wmi_set_host_sleep_mode_cmd(ar->arWmi, &hostSleepMode)!=A_OK) {
+ if (wmi_set_host_sleep_mode_cmd(ar->arWmi, &hostSleepMode)!= 0) {
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("Fail to setup restore host awake\n"));
}
#if WOW_SET_SCAN_PARAMS
@@ -113,10 +99,10 @@ static void ar6000_wow_resume(AR_SOFTC_T *ar)
#if WOW_ENABLE_MAX_INTERVAL /* we don't do it if the power consumption is already good enough. */
- if (wmi_listeninterval_cmd(ar->arWmi, ar->arListenIntervalT, ar->arListenIntervalB) == A_OK) {
+ if (wmi_listeninterval_cmd(ar->arWmi, ar->arListenIntervalT, ar->arListenIntervalB) == 0) {
}
#endif
- ar6k_send_asleep_event_to_app(ar, FALSE);
+ ar6k_send_asleep_event_to_app(ar, false);
AR_DEBUG_PRINTF(ATH_DEBUG_PM, ("Resume WoW successfully\n"));
} else {
AR_DEBUG_PRINTF(ATH_DEBUG_PM, ("WoW does not invoked. skip resume"));
@@ -124,7 +110,7 @@ static void ar6000_wow_resume(AR_SOFTC_T *ar)
ar->arWlanPowerState = WLAN_POWER_STATE_ON;
}
-static void ar6000_wow_suspend(AR_SOFTC_T *ar)
+static void ar6000_wow_suspend(struct ar6_softc *ar)
{
#define WOW_LIST_ID 1
if (ar->arNetworkType != AP_NETWORK) {
@@ -135,12 +121,12 @@ static void ar6000_wow_suspend(AR_SOFTC_T *ar)
struct in_ifaddr **ifap = NULL;
struct in_ifaddr *ifa = NULL;
struct in_device *in_dev;
- A_UINT8 macMask[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
- A_STATUS status;
+ u8 macMask[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
+ int status;
WMI_ADD_WOW_PATTERN_CMD addWowCmd = { .filter = { 0 } };
WMI_DEL_WOW_PATTERN_CMD delWowCmd;
- WMI_SET_HOST_SLEEP_MODE_CMD hostSleepMode = {FALSE, TRUE};
- WMI_SET_WOW_MODE_CMD wowMode = { .enable_wow = TRUE,
+ WMI_SET_HOST_SLEEP_MODE_CMD hostSleepMode = {false, true};
+ WMI_SET_WOW_MODE_CMD wowMode = { .enable_wow = true,
.hostReqDelay = 500 };/*500 ms delay*/
if (ar->arWowState!= WLAN_WOW_STATE_NONE) {
@@ -151,7 +137,7 @@ static void ar6000_wow_suspend(AR_SOFTC_T *ar)
ar6000_TxDataCleanup(ar); /* IMPORTANT, otherwise there will be 11mA after listen interval as 1000*/
#if WOW_ENABLE_MAX_INTERVAL /* we don't do it if the power consumption is already good enough. */
- if (wmi_listeninterval_cmd(ar->arWmi, A_MAX_WOW_LISTEN_INTERVAL, 0) == A_OK) {
+ if (wmi_listeninterval_cmd(ar->arWmi, A_MAX_WOW_LISTEN_INTERVAL, 0) == 0) {
}
#endif
@@ -169,7 +155,7 @@ static void ar6000_wow_suspend(AR_SOFTC_T *ar)
addWowCmd.filter_size = 6; /* MAC address */
addWowCmd.filter_offset = 0;
status = wmi_add_wow_pattern_cmd(ar->arWmi, &addWowCmd, ar->arNetDev->dev_addr, macMask, addWowCmd.filter_size);
- if (status != A_OK) {
+ if (status) {
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("Fail to add WoW pattern\n"));
}
}
@@ -186,7 +172,7 @@ static void ar6000_wow_suspend(AR_SOFTC_T *ar)
memset(&ipCmd, 0, sizeof(ipCmd));
ipCmd.ips[0] = ifa->ifa_local;
status = wmi_set_ip_cmd(ar->arWmi, &ipCmd);
- if (status != A_OK) {
+ if (status) {
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("Fail to setup IP for ARP agent\n"));
}
}
@@ -196,19 +182,19 @@ static void ar6000_wow_suspend(AR_SOFTC_T *ar)
#endif
status = wmi_set_wow_mode_cmd(ar->arWmi, &wowMode);
- if (status != A_OK) {
+ if (status) {
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("Fail to enable wow mode\n"));
}
- ar6k_send_asleep_event_to_app(ar, TRUE);
+ ar6k_send_asleep_event_to_app(ar, true);
status = wmi_set_host_sleep_mode_cmd(ar->arWmi, &hostSleepMode);
- if (status != A_OK) {
+ if (status) {
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("Fail to set host asleep\n"));
}
ar->arWowState = WLAN_WOW_STATE_SUSPENDING;
if (ar->arTxPending[ar->arControlEp]) {
- A_UINT32 timeleft = wait_event_interruptible_timeout(arEvent,
+ u32 timeleft = wait_event_interruptible_timeout(arEvent,
ar->arTxPending[ar->arControlEp] == 0, wmitimeout * HZ);
if (!timeleft || signal_pending(current)) {
/* what can I do? wow resume at once */
@@ -225,11 +211,11 @@ static void ar6000_wow_suspend(AR_SOFTC_T *ar)
}
}
-A_STATUS ar6000_suspend_ev(void *context)
+int ar6000_suspend_ev(void *context)
{
- A_STATUS status = A_OK;
- AR_SOFTC_T *ar = (AR_SOFTC_T *)context;
- A_INT16 pmmode = ar->arSuspendConfig;
+ int status = 0;
+ struct ar6_softc *ar = (struct ar6_softc *)context;
+ s16 pmmode = ar->arSuspendConfig;
wow_not_connected:
switch (pmmode) {
case WLAN_SUSPEND_WOW:
@@ -248,13 +234,13 @@ wow_not_connected:
case WLAN_SUSPEND_DEEP_SLEEP:
/* fall through */
default:
- status = ar6000_update_wlan_pwr_state(ar, WLAN_DISABLED, TRUE);
+ status = ar6000_update_wlan_pwr_state(ar, WLAN_DISABLED, true);
if (ar->arWlanPowerState==WLAN_POWER_STATE_ON ||
ar->arWlanPowerState==WLAN_POWER_STATE_WOW) {
AR_DEBUG_PRINTF(ATH_DEBUG_PM, ("Strange suspend state for not wow mode %d", ar->arWlanPowerState));
}
AR_DEBUG_PRINTF(ATH_DEBUG_PM,("%s:Suspend for %d mode pwr %d status %d\n", __func__, pmmode, ar->arWlanPowerState, status));
- status = (ar->arWlanPowerState == WLAN_POWER_STATE_CUT_PWR) ? A_OK : A_EBUSY;
+ status = (ar->arWlanPowerState == WLAN_POWER_STATE_CUT_PWR) ? 0 : A_EBUSY;
break;
}
@@ -262,14 +248,11 @@ wow_not_connected:
return status;
}
-A_STATUS ar6000_resume_ev(void *context)
+int ar6000_resume_ev(void *context)
{
- AR_SOFTC_T *ar = (AR_SOFTC_T *)context;
- A_UINT16 powerState = ar->arWlanPowerState;
+ struct ar6_softc *ar = (struct ar6_softc *)context;
+ u16 powerState = ar->arWlanPowerState;
-#ifdef CONFIG_HAS_WAKELOCK
- wake_lock(&ar6k_suspend_wake_lock);
-#endif
AR_DEBUG_PRINTF(ATH_DEBUG_PM, ("%s: enter previous state %d wowState %d\n", __func__, powerState, ar->arWowState));
switch (powerState) {
case WLAN_POWER_STATE_WOW:
@@ -278,7 +261,7 @@ A_STATUS ar6000_resume_ev(void *context)
case WLAN_POWER_STATE_CUT_PWR:
/* fall through */
case WLAN_POWER_STATE_DEEP_SLEEP:
- ar6000_update_wlan_pwr_state(ar, WLAN_ENABLED, TRUE);
+ ar6000_update_wlan_pwr_state(ar, WLAN_ENABLED, true);
AR_DEBUG_PRINTF(ATH_DEBUG_PM,("%s:Resume for %d mode pwr %d\n", __func__, powerState, ar->arWlanPowerState));
break;
case WLAN_POWER_STATE_ON:
@@ -287,13 +270,10 @@ A_STATUS ar6000_resume_ev(void *context)
AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("Strange SDIO bus power mode!!\n"));
break;
}
-#ifdef CONFIG_HAS_WAKELOCK
- wake_unlock(&ar6k_suspend_wake_lock);
-#endif
- return A_OK;
+ return 0;
}
-void ar6000_check_wow_status(AR_SOFTC_T *ar, struct sk_buff *skb, A_BOOL isEvent)
+void ar6000_check_wow_status(struct ar6_softc *ar, struct sk_buff *skb, bool isEvent)
{
if (ar->arWowState!=WLAN_WOW_STATE_NONE) {
if (ar->arWowState==WLAN_WOW_STATE_SUSPENDING) {
@@ -310,20 +290,20 @@ void ar6000_check_wow_status(AR_SOFTC_T *ar, struct sk_buff *skb, A_BOOL isEvent
}
}
-A_STATUS ar6000_power_change_ev(void *context, A_UINT32 config)
+int ar6000_power_change_ev(void *context, u32 config)
{
- AR_SOFTC_T *ar = (AR_SOFTC_T *)context;
- A_STATUS status = A_OK;
+ struct ar6_softc *ar = (struct ar6_softc *)context;
+ int status = 0;
AR_DEBUG_PRINTF(ATH_DEBUG_PM, ("%s: power change event callback %d \n", __func__, config));
switch (config) {
case HIF_DEVICE_POWER_UP:
ar6000_restart_endpoint(ar->arNetDev);
- status = A_OK;
+ status = 0;
break;
case HIF_DEVICE_POWER_DOWN:
case HIF_DEVICE_POWER_CUT:
- status = A_OK;
+ status = 0;
break;
}
return status;
@@ -362,10 +342,10 @@ static struct platform_driver ar6000_pm_device = {
};
#endif /* CONFIG_PM */
-A_STATUS
+int
ar6000_setup_cut_power_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
{
- A_STATUS status = A_OK;
+ int status = 0;
HIF_DEVICE_POWER_CHANGE_TYPE config;
AR_DEBUG_PRINTF(ATH_DEBUG_PM, ("%s: Cut power %d %d \n", __func__,state, ar->arWlanPowerState));
@@ -395,18 +375,18 @@ ar6000_setup_cut_power_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
if (status == A_PENDING) {
#ifdef ANDROID_ENV
/* Wait for WMI ready event */
- A_UINT32 timeleft = wait_event_interruptible_timeout(arEvent,
- (ar->arWmiReady == TRUE), wmitimeout * HZ);
+ u32 timeleft = wait_event_interruptible_timeout(arEvent,
+ (ar->arWmiReady == true), wmitimeout * HZ);
if (!timeleft || signal_pending(current)) {
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("ar6000 : Failed to get wmi ready \n"));
status = A_ERROR;
break;
}
#endif
- status = A_OK;
- } else if (status == A_OK) {
+ status = 0;
+ } else if (status == 0) {
ar6000_restart_endpoint(ar->arNetDev);
- status = A_OK;
+ status = 0;
}
} else if (state == WLAN_DISABLED) {
@@ -415,7 +395,7 @@ ar6000_setup_cut_power_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
if (ar->arWlanPowerState == WLAN_POWER_STATE_CUT_PWR) {
break;
}
- ar6000_stop_endpoint(ar->arNetDev, TRUE, FALSE);
+ ar6000_stop_endpoint(ar->arNetDev, true, false);
config = HIF_DEVICE_POWER_CUT;
status = HIFConfigureDevice(ar->arHifDevice,
@@ -432,10 +412,10 @@ ar6000_setup_cut_power_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
return status;
}
-A_STATUS
+int
ar6000_setup_deep_sleep_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
{
- A_STATUS status = A_OK;
+ int status = 0;
AR_DEBUG_PRINTF(ATH_DEBUG_PM, ("%s: Deep sleep %d %d \n", __func__,state, ar->arWlanPowerState));
#ifdef CONFIG_PM
@@ -445,7 +425,7 @@ ar6000_setup_deep_sleep_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
WMI_SET_HOST_SLEEP_MODE_CMD hostSleepMode;
if (state == WLAN_ENABLED) {
- A_UINT16 fg_start_period;
+ u16 fg_start_period;
/* Not in deep sleep state.. exit */
if (ar->arWlanPowerState != WLAN_POWER_STATE_DEEP_SLEEP) {
@@ -456,10 +436,10 @@ ar6000_setup_deep_sleep_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
}
fg_start_period = (ar->scParams.fg_start_period==0) ? 1 : ar->scParams.fg_start_period;
- hostSleepMode.awake = TRUE;
- hostSleepMode.asleep = FALSE;
+ hostSleepMode.awake = true;
+ hostSleepMode.asleep = false;
- if ((status=wmi_set_host_sleep_mode_cmd(ar->arWmi, &hostSleepMode)) != A_OK) {
+ if ((status=wmi_set_host_sleep_mode_cmd(ar->arWmi, &hostSleepMode)) != 0) {
break;
}
@@ -476,7 +456,7 @@ ar6000_setup_deep_sleep_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
ar->scParams.shortScanRatio,
ar->scParams.scanCtrlFlags,
ar->scParams.max_dfsch_act_time,
- ar->scParams.maxact_scan_per_ssid)) != A_OK)
+ ar->scParams.maxact_scan_per_ssid)) != 0)
{
break;
}
@@ -484,14 +464,14 @@ ar6000_setup_deep_sleep_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
if (ar->arNetworkType != AP_NETWORK)
{
if (ar->arSsidLen) {
- if (ar6000_connect_to_ap(ar) != A_OK) {
+ if (ar6000_connect_to_ap(ar) != 0) {
/* no need to report error if connection failed */
break;
}
}
}
} else if (state == WLAN_DISABLED){
- WMI_SET_WOW_MODE_CMD wowMode = { .enable_wow = FALSE };
+ WMI_SET_WOW_MODE_CMD wowMode = { .enable_wow = false };
/* Already in deep sleep state.. exit */
if (ar->arWlanPowerState != WLAN_POWER_STATE_ON) {
@@ -505,7 +485,7 @@ ar6000_setup_deep_sleep_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
{
/* Disconnect from the AP and disable foreground scanning */
AR6000_SPIN_LOCK(&ar->arLock, 0);
- if (ar->arConnected == TRUE || ar->arConnectPending == TRUE) {
+ if (ar->arConnected == true || ar->arConnectPending == true) {
AR6000_SPIN_UNLOCK(&ar->arLock, 0);
wmi_disconnect_cmd(ar->arWmi);
} else {
@@ -515,12 +495,12 @@ ar6000_setup_deep_sleep_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
ar->scan_triggered = 0;
- if ((status=wmi_scanparams_cmd(ar->arWmi, 0xFFFF, 0, 0, 0, 0, 0, 0, 0, 0, 0)) != A_OK) {
+ if ((status=wmi_scanparams_cmd(ar->arWmi, 0xFFFF, 0, 0, 0, 0, 0, 0, 0, 0, 0)) != 0) {
break;
}
/* make sure we disable wow for deep sleep */
- if ((status=wmi_set_wow_mode_cmd(ar->arWmi, &wowMode))!=A_OK)
+ if ((status=wmi_set_wow_mode_cmd(ar->arWmi, &wowMode))!= 0)
{
break;
}
@@ -530,13 +510,13 @@ ar6000_setup_deep_sleep_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
wmi_powermode_cmd(ar->arWmi, REC_POWER);
#endif
- hostSleepMode.awake = FALSE;
- hostSleepMode.asleep = TRUE;
- if ((status=wmi_set_host_sleep_mode_cmd(ar->arWmi, &hostSleepMode))!=A_OK) {
+ hostSleepMode.awake = false;
+ hostSleepMode.asleep = true;
+ if ((status=wmi_set_host_sleep_mode_cmd(ar->arWmi, &hostSleepMode))!= 0) {
break;
}
if (ar->arTxPending[ar->arControlEp]) {
- A_UINT32 timeleft = wait_event_interruptible_timeout(arEvent,
+ u32 timeleft = wait_event_interruptible_timeout(arEvent,
ar->arTxPending[ar->arControlEp] == 0, wmitimeout * HZ);
if (!timeleft || signal_pending(current)) {
status = A_ERROR;
@@ -549,22 +529,22 @@ ar6000_setup_deep_sleep_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
}
} while (0);
- if (status!=A_OK) {
+ if (status) {
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("Fail to enter/exit deep sleep %d\n", state));
}
return status;
}
-A_STATUS
-ar6000_update_wlan_pwr_state(struct ar6_softc *ar, AR6000_WLAN_STATE state, A_BOOL pmEvent)
+int
+ar6000_update_wlan_pwr_state(struct ar6_softc *ar, AR6000_WLAN_STATE state, bool pmEvent)
{
- A_STATUS status = A_OK;
- A_UINT16 powerState, oldPowerState;
+ int status = 0;
+ u16 powerState, oldPowerState;
AR6000_WLAN_STATE oldstate = ar->arWlanState;
- A_BOOL wlanOff = ar->arWlanOff;
+ bool wlanOff = ar->arWlanOff;
#ifdef CONFIG_PM
- A_BOOL btOff = ar->arBTOff;
+ bool btOff = ar->arBTOff;
#endif /* CONFIG_PM */
if ((state!=WLAN_DISABLED && state!=WLAN_ENABLED)) {
@@ -598,7 +578,7 @@ ar6000_update_wlan_pwr_state(struct ar6_softc *ar, AR6000_WLAN_STATE state, A_BO
}
#ifdef CONFIG_PM
else if (pmEvent && wlanOff) {
- A_BOOL allowCutPwr = ((!ar->arBTSharing) || btOff);
+ bool allowCutPwr = ((!ar->arBTSharing) || btOff);
if ((powerState==WLAN_POWER_STATE_CUT_PWR) && (!allowCutPwr)) {
/* Come out of cut power */
ar6000_setup_cut_power_state(ar, WLAN_ENABLED);
@@ -611,10 +591,10 @@ ar6000_update_wlan_pwr_state(struct ar6_softc *ar, AR6000_WLAN_STATE state, A_BO
powerState = WLAN_POWER_STATE_DEEP_SLEEP;
#ifdef CONFIG_PM
if (pmEvent) { /* disable due to suspend */
- A_BOOL suspendCutPwr = (ar->arSuspendConfig == WLAN_SUSPEND_CUT_PWR ||
+ bool suspendCutPwr = (ar->arSuspendConfig == WLAN_SUSPEND_CUT_PWR ||
(ar->arSuspendConfig == WLAN_SUSPEND_WOW &&
ar->arWow2Config==WLAN_SUSPEND_CUT_PWR));
- A_BOOL suspendCutIfBtOff = ((ar->arSuspendConfig ==
+ bool suspendCutIfBtOff = ((ar->arSuspendConfig ==
WLAN_SUSPEND_CUT_PWR_IF_BT_OFF ||
(ar->arSuspendConfig == WLAN_SUSPEND_WOW &&
ar->arWow2Config==WLAN_SUSPEND_CUT_PWR_IF_BT_OFF)) &&
@@ -648,10 +628,10 @@ ar6000_update_wlan_pwr_state(struct ar6_softc *ar, AR6000_WLAN_STATE state, A_BO
}
- if (status!=A_OK) {
+ if (status) {
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("Fail to setup WLAN state %d\n", ar->arWlanState));
ar->arWlanState = oldstate;
- } else if (status == A_OK) {
+ } else if (status == 0) {
WMI_REPORT_SLEEP_STATE_EVENT wmiSleepEvent, *pSleepEvent = NULL;
if ((ar->arWlanPowerState == WLAN_POWER_STATE_ON) && (oldPowerState != WLAN_POWER_STATE_ON)) {
wmiSleepEvent.sleepState = WMI_REPORT_SLEEP_STATUS_IS_AWAKE;
@@ -662,7 +642,7 @@ ar6000_update_wlan_pwr_state(struct ar6_softc *ar, AR6000_WLAN_STATE state, A_BO
}
if (pSleepEvent) {
AR_DEBUG_PRINTF(ATH_DEBUG_PM, ("SENT WLAN Sleep Event %d\n", wmiSleepEvent.sleepState));
- ar6000_send_event_to_app(ar, WMI_REPORT_SLEEP_STATE_EVENTID, (A_UINT8*)pSleepEvent,
+ ar6000_send_event_to_app(ar, WMI_REPORT_SLEEP_STATE_EVENTID, (u8 *)pSleepEvent,
sizeof(WMI_REPORT_SLEEP_STATE_EVENTID));
}
}
@@ -670,33 +650,33 @@ ar6000_update_wlan_pwr_state(struct ar6_softc *ar, AR6000_WLAN_STATE state, A_BO
return status;
}
-A_STATUS
-ar6000_set_bt_hw_state(struct ar6_softc *ar, A_UINT32 enable)
+int
+ar6000_set_bt_hw_state(struct ar6_softc *ar, u32 enable)
{
#ifdef CONFIG_PM
- A_BOOL off = (enable == 0);
- A_STATUS status;
+ bool off = (enable == 0);
+ int status;
if (ar->arBTOff == off) {
- return A_OK;
+ return 0;
}
ar->arBTOff = off;
- status = ar6000_update_wlan_pwr_state(ar, ar->arWlanOff ? WLAN_DISABLED : WLAN_ENABLED, FALSE);
+ status = ar6000_update_wlan_pwr_state(ar, ar->arWlanOff ? WLAN_DISABLED : WLAN_ENABLED, false);
return status;
#else
- return A_OK;
+ return 0;
#endif
}
-A_STATUS
+int
ar6000_set_wlan_state(struct ar6_softc *ar, AR6000_WLAN_STATE state)
{
- A_STATUS status;
- A_BOOL off = (state == WLAN_DISABLED);
+ int status;
+ bool off = (state == WLAN_DISABLED);
if (ar->arWlanOff == off) {
- return A_OK;
+ return 0;
}
ar->arWlanOff = off;
- status = ar6000_update_wlan_pwr_state(ar, state, FALSE);
+ status = ar6000_update_wlan_pwr_state(ar, state, false);
return status;
}
@@ -704,10 +684,6 @@ void ar6000_pm_init()
{
A_REGISTER_MODULE_DEBUG_INFO(pm);
#ifdef CONFIG_PM
-#ifdef CONFIG_HAS_WAKELOCK
- wake_lock_init(&ar6k_suspend_wake_lock, WAKE_LOCK_SUSPEND, "ar6k_suspend");
- wake_lock_init(&ar6k_wow_wake_lock, WAKE_LOCK_SUSPEND, "ar6k_wow");
-#endif
/*
* Register ar6000_pm_device into system.
* We should also add platform_device into the first item of array
@@ -723,9 +699,5 @@ void ar6000_pm_exit()
{
#ifdef CONFIG_PM
platform_driver_unregister(&ar6000_pm_device);
-#ifdef CONFIG_HAS_WAKELOCK
- wake_lock_destroy(&ar6k_suspend_wake_lock);
- wake_lock_destroy(&ar6k_wow_wake_lock);
-#endif
#endif /* CONFIG_PM */
}