rt2x00_set_field32(®, BCN_TIME_CFG_TSF_TICKING, 1);
                rt2x00_set_field32(®, BCN_TIME_CFG_TSF_SYNC, conf->sync);
                rt2x00_set_field32(®, BCN_TIME_CFG_TBTT_ENABLE,
-                                  (conf->sync == TSF_SYNC_BEACON));
+                                  (conf->sync == TSF_SYNC_ADHOC ||
+                                   conf->sync == TSF_SYNC_AP_NONE));
                rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg);
 
                /*
                 */
                rt2800_register_read(rt2x00dev, INT_TIMER_EN, ®);
                rt2x00_set_field32(®, INT_TIMER_EN_PRE_TBTT_TIMER,
-                                  (conf->sync == TSF_SYNC_BEACON));
+                                  (conf->sync == TSF_SYNC_AP_NONE));
                rt2800_register_write(rt2x00dev, INT_TIMER_EN, reg);
 
        }
 
 
        switch (type) {
        case NL80211_IFTYPE_ADHOC:
+               conf.sync = TSF_SYNC_ADHOC;
+               break;
        case NL80211_IFTYPE_AP:
        case NL80211_IFTYPE_MESH_POINT:
        case NL80211_IFTYPE_WDS:
-               conf.sync = TSF_SYNC_BEACON;
+               conf.sync = TSF_SYNC_AP_NONE;
                break;
        case NL80211_IFTYPE_STATION:
                conf.sync = TSF_SYNC_INFRA;