Print this page
XXXX introduce drv_sectohz


2457         nrate = in->in_txrate;
2458         switch (mod) {
2459         case -1:
2460                 if (nrate > 0) {
2461                         nrate--;
2462                 }
2463                 break;
2464         case 1:
2465                 if (nrate + 1 < rs->ir_nrates) {
2466                         nrate++;
2467                 }
2468                 break;
2469         }
2470 
2471         if (nrate != in->in_txrate)
2472                 in->in_txrate = nrate;
2473         rsc->sc_tx_ok = rsc->sc_tx_err = rsc->sc_tx_retr = 0;
2474         mutex_exit(&rsc->sc_genlock);
2475         if (ic->ic_state == IEEE80211_S_RUN)
2476                 rsc->sc_ratectl_id = timeout(rtw_rate_ctl, ic,
2477                     drv_usectohz(1000000));
2478 }
2479 
2480 static int32_t
2481 rtw_new_state(ieee80211com_t *ic, enum ieee80211_state nstate, int arg)
2482 {
2483         rtw_softc_t *rsc = (rtw_softc_t *)ic;
2484         int error;
2485         enum ieee80211_state ostate;
2486 
2487         ostate = ic->ic_state;
2488 
2489         RTW_DPRINTF(RTW_DEBUG_ATTACH,
2490             "rtw_new_state: ostate:0x%x, nstate:0x%x, opmode:0x%x\n",
2491             ostate, nstate, ic->ic_opmode);
2492 
2493 
2494         mutex_enter(&rsc->sc_genlock);
2495         if (rsc->sc_scan_id != 0) {
2496                 (void) untimeout(rsc->sc_scan_id);
2497                 rsc->sc_scan_id = 0;


2516         case IEEE80211_S_SCAN:
2517                 RTW_DPRINTF(RTW_DEBUG_ATTACH, "rtw_new_state: S_SCAN\n");
2518                 rsc->sc_scan_id = timeout(rtw_next_scan, ic,
2519                     drv_usectohz(200000));
2520                 rtw_set_nettype(rsc, IEEE80211_M_MONITOR);
2521                 break;
2522         case IEEE80211_S_RUN:
2523                 RTW_DPRINTF(RTW_DEBUG_ATTACH, "rtw_new_state: S_RUN\n");
2524                 switch (ic->ic_opmode) {
2525                 case IEEE80211_M_HOSTAP:
2526                 case IEEE80211_M_IBSS:
2527                         rtw_set_nettype(rsc, IEEE80211_M_MONITOR);
2528                         /* TBD */
2529                         /*FALLTHROUGH*/
2530                 case IEEE80211_M_AHDEMO:
2531                 case IEEE80211_M_STA:
2532                         RTW_DPRINTF(RTW_DEBUG_ATTACH,
2533                             "rtw_new_state: sta\n");
2534                         rtw_join_bss(rsc, ic->ic_bss->in_bssid, 0);
2535                         rsc->sc_ratectl_id = timeout(rtw_rate_ctl, ic,
2536                             drv_usectohz(1000000));
2537                         break;
2538                 case IEEE80211_M_MONITOR:
2539                         break;
2540                 }
2541                 rtw_set_nettype(rsc, ic->ic_opmode);
2542                 break;
2543         case IEEE80211_S_ASSOC:
2544         case IEEE80211_S_AUTH:
2545                 break;
2546         }
2547 
2548         mutex_exit(&rsc->sc_genlock);
2549         /*
2550          * Invoke the parent method to complete the work.
2551          */
2552         error = rsc->sc_newstate(ic, nstate, arg);
2553 
2554         return (error);
2555 }
2556 




2457         nrate = in->in_txrate;
2458         switch (mod) {
2459         case -1:
2460                 if (nrate > 0) {
2461                         nrate--;
2462                 }
2463                 break;
2464         case 1:
2465                 if (nrate + 1 < rs->ir_nrates) {
2466                         nrate++;
2467                 }
2468                 break;
2469         }
2470 
2471         if (nrate != in->in_txrate)
2472                 in->in_txrate = nrate;
2473         rsc->sc_tx_ok = rsc->sc_tx_err = rsc->sc_tx_retr = 0;
2474         mutex_exit(&rsc->sc_genlock);
2475         if (ic->ic_state == IEEE80211_S_RUN)
2476                 rsc->sc_ratectl_id = timeout(rtw_rate_ctl, ic,
2477                     drv_sectohz(1));
2478 }
2479 
2480 static int32_t
2481 rtw_new_state(ieee80211com_t *ic, enum ieee80211_state nstate, int arg)
2482 {
2483         rtw_softc_t *rsc = (rtw_softc_t *)ic;
2484         int error;
2485         enum ieee80211_state ostate;
2486 
2487         ostate = ic->ic_state;
2488 
2489         RTW_DPRINTF(RTW_DEBUG_ATTACH,
2490             "rtw_new_state: ostate:0x%x, nstate:0x%x, opmode:0x%x\n",
2491             ostate, nstate, ic->ic_opmode);
2492 
2493 
2494         mutex_enter(&rsc->sc_genlock);
2495         if (rsc->sc_scan_id != 0) {
2496                 (void) untimeout(rsc->sc_scan_id);
2497                 rsc->sc_scan_id = 0;


2516         case IEEE80211_S_SCAN:
2517                 RTW_DPRINTF(RTW_DEBUG_ATTACH, "rtw_new_state: S_SCAN\n");
2518                 rsc->sc_scan_id = timeout(rtw_next_scan, ic,
2519                     drv_usectohz(200000));
2520                 rtw_set_nettype(rsc, IEEE80211_M_MONITOR);
2521                 break;
2522         case IEEE80211_S_RUN:
2523                 RTW_DPRINTF(RTW_DEBUG_ATTACH, "rtw_new_state: S_RUN\n");
2524                 switch (ic->ic_opmode) {
2525                 case IEEE80211_M_HOSTAP:
2526                 case IEEE80211_M_IBSS:
2527                         rtw_set_nettype(rsc, IEEE80211_M_MONITOR);
2528                         /* TBD */
2529                         /*FALLTHROUGH*/
2530                 case IEEE80211_M_AHDEMO:
2531                 case IEEE80211_M_STA:
2532                         RTW_DPRINTF(RTW_DEBUG_ATTACH,
2533                             "rtw_new_state: sta\n");
2534                         rtw_join_bss(rsc, ic->ic_bss->in_bssid, 0);
2535                         rsc->sc_ratectl_id = timeout(rtw_rate_ctl, ic,
2536                             drv_sectohz(1));
2537                         break;
2538                 case IEEE80211_M_MONITOR:
2539                         break;
2540                 }
2541                 rtw_set_nettype(rsc, ic->ic_opmode);
2542                 break;
2543         case IEEE80211_S_ASSOC:
2544         case IEEE80211_S_AUTH:
2545                 break;
2546         }
2547 
2548         mutex_exit(&rsc->sc_genlock);
2549         /*
2550          * Invoke the parent method to complete the work.
2551          */
2552         error = rsc->sc_newstate(ic, nstate, arg);
2553 
2554         return (error);
2555 }
2556