ath9k: fix custom regulatory call position
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>
This commit is contained in:
parent
175427ce40
commit
c26c2e576d
1 changed files with 7 additions and 4 deletions
|
@ -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;
|
||||
|
||||
|
@ -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))
|
||||
|
|
Loading…
Reference in a new issue