Esempio n. 1
0
static int r8180_wx_set_mode(struct net_device *dev, struct iw_request_info *a,
			     union iwreq_data *wrqu, char *b)
{
	struct r8180_priv *priv = ieee80211_priv(dev);
	int ret;


	if(priv->ieee80211->bHwRadioOff)
		return 0;

	down(&priv->wx_sem);
#ifdef ENABLE_IPS
//	printk("set mode ENABLE_IPS\n");
	if(priv->bInactivePs){
		if(wrqu->mode == IW_MODE_ADHOC)
			IPSLeave(dev);
	}
#endif
	ret = ieee80211_wx_set_mode(priv->ieee80211,a,wrqu,b);

	//rtl8180_commit(dev);

	up(&priv->wx_sem);
	return ret;
}
Esempio n. 2
0
static int r8192_wx_set_mode(struct net_device *dev, struct iw_request_info *a,
			     union iwreq_data *wrqu, char *b)
{
	struct r8192_priv *priv = ieee80211_priv(dev);
	int ret;
	down(&priv->wx_sem);

	ret = ieee80211_wx_set_mode(priv->ieee80211,a,wrqu,b);

	rtl8192_set_rxconf(dev);

	up(&priv->wx_sem);
	return ret;
}
static int r8180_wx_set_mode(struct net_device *dev, struct iw_request_info *a,
			     union iwreq_data *wrqu, char *b)
{
	struct r8180_priv *priv = ieee80211_priv(dev);
	int ret;


	if (priv->ieee80211->bHwRadioOff)
		return 0;

	down(&priv->wx_sem);
	if (priv->bInactivePs)	{
		if (wrqu->mode == IW_MODE_ADHOC)
			IPSLeave(dev);
	}
	ret = ieee80211_wx_set_mode(priv->ieee80211, a, wrqu, b);

	up(&priv->wx_sem);
	return ret;
}
Esempio n. 4
0
static int r8192_wx_set_mode(struct net_device *dev, struct iw_request_info *a,
			     union iwreq_data *wrqu, char *b)
{
	struct r8192_priv *priv = ieee80211_priv(dev);
	RT_RF_POWER_STATE	rtState;
	int ret;

	if (priv->bHwRadioOff)
		return 0;

	rtState = priv->eRFPowerState;
	down(&priv->wx_sem);
#ifdef ENABLE_IPS
	if(wrqu->mode == IW_MODE_ADHOC){

		if (priv->PowerSaveControl.bInactivePs) {
			if(rtState == eRfOff){
				if(priv->RfOffReason > RF_CHANGE_BY_IPS)
				{
					RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__);
					up(&priv->wx_sem);
					return -1;
				}
				else{
					RT_TRACE(COMP_ERR, "%s(): IPSLeave\n",__FUNCTION__);
					down(&priv->ieee80211->ips_sem);
					IPSLeave(priv);
					up(&priv->ieee80211->ips_sem);
				}
			}
		}
	}
#endif
	ret = ieee80211_wx_set_mode(priv->ieee80211,a,wrqu,b);

	//rtl8187_set_rxconf(dev);

	up(&priv->wx_sem);
	return ret;
}