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; }
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; }
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; }