Skip to content

Commit

Permalink
ath9k: fix custom regulatory call position
Browse files Browse the repository at this point in the history
ath_regd_init() needs to be called with the wiphy already
properly set with the bands. Without this the custom regulatory
settings were not taking effect, and the device would get
the default channel settings from ath9k_[25]ghz_chantable.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Luis R. Rodriguez authored and John W. Linville committed May 20, 2009
1 parent 175427c commit c26c2e5
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions drivers/net/wireless/ath/ath9k/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1430,8 +1430,6 @@ static int ath_init(u16 devid, struct ath_softc *sc)
for (i = 0; i < sc->keymax; i++)
ath9k_hw_keyreset(ah, (u16) i);

error = ath_regd_init(&sc->sc_ah->regulatory, sc->hw->wiphy,
ath9k_reg_notifier);
if (error)
goto bad;

Expand Down Expand Up @@ -1644,14 +1642,19 @@ int ath_attach(u16 devid, struct ath_softc *sc)
if (error != 0)
return error;

reg = &sc->sc_ah->regulatory;

/* get mac address from hardware and set in mac80211 */

SET_IEEE80211_PERM_ADDR(hw, sc->sc_ah->macaddr);

ath_set_hw_capab(sc, hw);

error = ath_regd_init(&sc->sc_ah->regulatory, sc->hw->wiphy,
ath9k_reg_notifier);
if (error)
return error;

reg = &sc->sc_ah->regulatory;

if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) {
setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_2GHZ].ht_cap);
if (test_bit(ATH9K_MODE_11A, sc->sc_ah->caps.wireless_modes))
Expand Down

0 comments on commit c26c2e5

Please sign in to comment.