source: trunk/package/madwifi/patches/332-reset_beacons.patch @ 10553

Last change on this file since 10553 was 10553, checked in by nbd, 8 years ago

fix channel change bugs

File size: 2.7 KB
  • madwifi-trunk-r3314

    old new  
    15941594        ath_init(dev); 
    15951595} 
    15961596 
     1597static HAL_BOOL ath_hw_reset(struct ath_hal *ah, HAL_OPMODE opmode, 
     1598                                     HAL_CHANNEL *channel, HAL_BOOL bChannelChange, 
     1599                                     HAL_STATUS *status) 
     1600{ 
     1601        HAL_BOOL ret; 
     1602        ret = ath_hal_reset(ah, opmode, channel, bChannelChange, status); 
     1603        mdelay(5); /* extra delay to allow the hw to settle in */ 
     1604        return ret; 
     1605} 
     1606 
    15971607/* Channel Availability Check is running, or a channel has already found to be  
    15981608 * unavailable. */ 
    15991609static int 
     
    24762486         */ 
    24772487        sc->sc_curchan.channel = ic->ic_curchan->ic_freq; 
    24782488        sc->sc_curchan.channelFlags = ath_chan2flags(ic->ic_curchan); 
    2479         if (!ath_hal_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_FALSE, &status)) { 
     2489        if (!ath_hw_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_TRUE, &status)) { 
    24802490                EPRINTF(sc, "unable to reset hardware: '%s' (HAL status %u) " 
    24812491                        "(freq %u flags 0x%x)\n",  
    24822492                        ath_get_hal_status_desc(status), status, 
     
    27752785        ath_draintxq(sc);               /* stop xmit side */ 
    27762786        ath_stoprecv(sc);               /* stop recv side */ 
    27772787        /* NB: indicate channel change so we do a full reset */ 
    2778         if (!ath_hal_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_TRUE, &status)) 
     2788        if (!ath_hw_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_TRUE, &status)) 
    27792789                EPRINTF(sc, "Unable to reset hardware: '%s' (HAL status %u)\n", 
    27802790                        ath_get_hal_status_desc(status), status); 
    27812791 
     
    88488858                 * needed to do the reset with chanchange = AH_FALSE in order 
    88498859                 * to receive traffic when peforming high velocity channel 
    88508860                 * changes. */ 
    8851                 if (!ath_hal_reset(ah, sc->sc_opmode, &hchan, AH_TRUE, &status)   || 
    8852                     !ath_hal_reset(ah, sc->sc_opmode, &hchan, AH_FALSE, &status)) { 
     8861                if (!ath_hw_reset(ah, sc->sc_opmode, &hchan, AH_TRUE, &status)) { 
    88538862                        EPRINTF(sc, "Unable to reset channel %u (%u MHz) " 
    88548863                                "flags 0x%x '%s' (HAL status %u)\n", 
    88558864                                ieee80211_chan2ieee(ic, chan), chan->ic_freq, 
     
    89058914                 * re configure beacons when it is a turbo mode switch. 
    89068915                 * HW seems to turn off beacons during turbo mode switch. 
    89078916                 */ 
    8908                 if (sc->sc_beacons && tswitch && !sc->sc_dfs_cac) 
     8917                if (sc->sc_beacons && !sc->sc_dfs_cac) 
    89098918                        ath_beacon_config(sc, NULL); 
    89108919                /* 
    89118920                 * Re-enable interrupts. 
     
    1145611465                ieee80211_cancel_scan(vap);     /* anything current */ 
    1145711466                ieee80211_wme_updateparams(vap); 
    1145811467                /*  reset the WNIC */ 
    11459                 if (!ath_hal_reset(ah, sc->sc_opmode,  
     11468                if (!ath_hw_reset(ah, sc->sc_opmode, 
    1146011469                                        &sc->sc_curchan, AH_TRUE, &status)) { 
    1146111470                        EPRINTF(sc, "ath_hal_reset failed: '%s' " 
    1146211471                                        "(HAL status %u).\n", 
Note: See TracBrowser for help on using the repository browser.