#EXTRA_CFLAGS += -O2
#CC = gcc
-#added for EeePC testing
-EXTRA_CFLAGS += -DENABLE_IPS
EXTRA_CFLAGS += -DSW_ANTE
EXTRA_CFLAGS += -DTX_TRACK
EXTRA_CFLAGS += -DHIGH_POWER
TODO:
- prepare private ieee80211 stack for merge with rtl8192su's version:
- - remove ENABLE_IPS ifdefs
- rename struct ieee80211_hdr to struct ieee80211_hdr_4addr
- rename struct ieee80211_hdr_3addr_QOS to struct ieee80211_hdr_3addrqos
- rename struct ieee80211_hdr_QOS to struct ieee80211_hdr_4addrqos
DOT11D_ScanComplete(ieee);
}
-#ifdef ENABLE_IPS
void ieee80211_softmac_scan_wq(struct work_struct *work)
{
struct delayed_work *dwork = to_delayed_work(work);
DOT11D_ScanComplete(ieee);
return;
}
-#else
-void ieee80211_softmac_scan_wq(struct work_struct *work)
-{
- struct delayed_work *dwork = to_delayed_work(work);
- struct ieee80211_device *ieee = container_of(work, struct ieee80211_device, softmac_scan_wq);
- short watchdog = 0;
- u8 channel_map[MAX_CHANNEL_NUMBER+1];
- memcpy(channel_map, GET_DOT11D_INFO(ieee)->channel_map, MAX_CHANNEL_NUMBER+1);
-// printk("enter scan wq,watchdog is %d\n",watchdog);
- down(&ieee->scan_sem);
-
- do{
- ieee->current_network.channel =
- (ieee->current_network.channel + 1) % MAX_CHANNEL_NUMBER;
- if (watchdog++ > MAX_CHANNEL_NUMBER)
- goto out; /* no good chans */
-
- }while(!channel_map[ieee->current_network.channel]);
-
-// printk("current_network.channel:%d\n", ieee->current_network.channel);
- if (ieee->scanning == 0 )
- {
- printk("error out, scanning = 0\n");
- goto out;
- }
- ieee->set_chan(ieee->dev, ieee->current_network.channel);
- if(channel_map[ieee->current_network.channel] == 1)
- ieee80211_send_probe_requests(ieee);
-
- queue_delayed_work(ieee->wq, &ieee->softmac_scan_wq, IEEE80211_SOFTMAC_SCAN_TIME);
-out:
- up(&ieee->scan_sem);
- if(IS_DOT11D_ENABLE(ieee))
- DOT11D_ScanComplete(ieee);
-}
-
-#endif
void ieee80211_beacons_start(struct ieee80211_device *ieee)
{
u32 TotalRxNum = 0;
u16 SlotIndex = 0;
u16 i = 0;
-#ifdef ENABLE_IPS
if(priv->ieee80211->actscanning == false){
if((priv->ieee80211->iw_mode != IW_MODE_ADHOC) && (priv->ieee80211->state == IEEE80211_NOLINK) && (priv->ieee80211->beinretry == false) && (priv->eRFPowerState == eRfOn)){
IPSEnter(dev);
}
}
-#endif
//YJ,add,080828,for link state check
if((priv->ieee80211->state == IEEE80211_LINKED) && (priv->ieee80211->iw_mode == IW_MODE_INFRA)){
SlotIndex = (priv->link_detect.SlotIndex++) % priv->link_detect.SlotNum;
rtl8185b_adapter_start(dev);
rtl8185b_rx_enable(dev);
rtl8185b_tx_enable(dev);
-#ifdef ENABLE_IPS
if(priv->bInactivePs){
if(priv->ieee80211->iw_mode == IW_MODE_ADHOC)
IPSLeave(dev);
}
-#endif
#ifdef RATE_ADAPT
timer_rate_adaptive((unsigned long)dev);
#endif
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);
down(&priv->wx_sem);
if(priv->up){
-#ifdef ENABLE_IPS
// printk("set scan ENABLE_IPS\n");
priv->ieee80211->actscanning = true;
if(priv->bInactivePs && (priv->ieee80211->state != IEEE80211_LINKED)){
ret = 0;
}
else
-#endif
{
//YJ,add,080828, prevent scan in BusyTraffic
//FIXME: Need to consider last scan time
return 0;
down(&priv->wx_sem);
-#ifdef ENABLE_IPS
//printk("set essid ENABLE_IPS\n");
if(priv->bInactivePs)
IPSLeave(dev);
-#endif
// printk("haha:set essid %s essid_len = %d essid_flgs = %d\n",b, wrqu->essid.length, wrqu->essid.flags);
ret = ieee80211_wx_set_essid(priv->ieee80211,a,wrqu,b);
InitWirelessMode = ieee->mode;
}
//by amy for power save
-#ifdef ENABLE_IPS
// printk("initialize ENABLE_IPS\n");
priv->eRFPowerState = eRfOff;
priv->RfOffReason = 0;
// printk("rf off cost jiffies:%lx\n", (tmp2-tmp)*1000/HZ);
}
-#endif
// IPSEnter(dev);
//by amy for power save
#ifdef TODO