static int rtw_gspi_resume(struct spi_device *spi)
{
	struct dvobj_priv *dvobj = spi_get_drvdata(spi);
	PADAPTER padapter = dvobj->if1;
	struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj);
	 int ret = 0;


	DBG_871X("==> %s (%s:%d)\n",__FUNCTION__, current->comm, current->pid);

	if(pwrpriv->bInternalAutoSuspend ){
 		ret = rtw_resume_process(padapter);
	} else {
#ifdef CONFIG_RESUME_IN_WORKQUEUE
		rtw_resume_in_workqueue(pwrpriv);
#else
		if(rtw_is_earlysuspend_registered(pwrpriv)) {
			/* jeff: bypass resume here, do in late_resume */
			rtw_set_do_late_resume(pwrpriv, _TRUE);
		} else {
			ret = rtw_resume_process(padapter);
		}
#endif /* CONFIG_RESUME_IN_WORKQUEUE */
	}

	DBG_871X("<========  %s return %d\n", __FUNCTION__, ret);
	return ret;

}
Пример #2
0
static void rtw_early_suspend(android_early_suspend_t *h)
{
	struct pwrctrl_priv *pwrpriv =
	    container_of(h, struct pwrctrl_priv, early_suspend);
	DBG_8192D("%s\n", __func__);

	rtw_set_do_late_resume(pwrpriv, false);
}
Пример #3
0
void rtw_unregister_early_suspend(struct pwrctrl_priv *pwrpriv)
{
	DBG_8192D("%s\n", __func__);

	rtw_set_do_late_resume(pwrpriv, false);

	if (pwrpriv->early_suspend.suspend)
		android_unregister_early_suspend(&pwrpriv->early_suspend);

	pwrpriv->early_suspend.suspend = NULL;
	pwrpriv->early_suspend.resume = NULL;
}
Пример #4
0
static void rtw_late_resume(android_early_suspend_t *h)
{
	struct pwrctrl_priv *pwrpriv =
	    container_of(h, struct pwrctrl_priv, early_suspend);
	struct rtw_adapter *adapter =
	    container_of(pwrpriv, _adapter, pwrctrlpriv);

	DBG_8192D("%s\n", __func__);
	if (pwrpriv->do_late_resume) {
		rtw_set_do_late_resume(pwrpriv, false);
		rtw_resume_process(adapter);
	}
}