Example #1
0
static A_STATUS ar6000_resume_ev(void *context)
{
    AR_SOFTC_T *ar = (AR_SOFTC_T *)context;
    A_UINT16 powerCtrl = ar->arOsPowerCtrl;
    wake_lock(&ar6k_init_wake_lock);
    AR_DEBUG_PRINTF(ATH_DEBUG_SUSPEND, ("%s: enter previous state %d wowState %d\n", __func__, powerCtrl, ar->arWowState));
    ar->arOsPowerCtrl = WLAN_PWR_CTRL_UP;
    switch (powerCtrl) {
    case WLAN_PWR_CTRL_WOW:
        ar6000_wow_resume(ar);
        break;
    case WLAN_PWR_CTRL_CUT_PWR:
        ar6000_restart_endpoint(ar->arNetDev);
        break;
    case WLAN_PWR_CTRL_DEEP_SLEEP:
        ar6000_set_wlan_state(ar, WLAN_ENABLED);
        break;
    case WLAN_PWR_CTRL_DEEP_SLEEP_DISABLED:
        break;
    case WLAN_PWR_CTRL_UP:
        break;
    default:
        AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("Strange SDIO bus power mode!!\n"));
        break; 
    }
    wake_unlock(&ar6k_init_wake_lock);
    return A_OK;
}
Example #2
0
A_STATUS ar6000_exit_cut_power_state(AR_SOFTC_T *ar) 
{
    WMI_REPORT_SLEEP_STATE_EVENT  wmiSleepEvent ;

    ar6000_restart_endpoint(ar->arNetDev);

    wmiSleepEvent.sleepState = WMI_REPORT_SLEEP_STATUS_IS_DEEP_SLEEP;
    ar6000_send_event_to_app(ar, WMI_REPORT_SLEEP_STATE_EVENTID, (A_UINT8*)&wmiSleepEvent, sizeof(WMI_REPORT_SLEEP_STATE_EVENTID));
    
    return A_OK;
}