.. | .. |
---|
230 | 230 | struct ath_hw *ah = hw_priv; |
---|
231 | 231 | struct ath_common *common = ath9k_hw_common(ah); |
---|
232 | 232 | struct ath_softc *sc = (struct ath_softc *) common->priv; |
---|
233 | | - unsigned long uninitialized_var(flags); |
---|
| 233 | + unsigned long flags; |
---|
234 | 234 | u32 val; |
---|
235 | 235 | |
---|
236 | 236 | if (NR_CPUS > 1 && ah->config.serialize_regmode == SER_REG_MODE_ON) { |
---|
.. | .. |
---|
642 | 642 | } |
---|
643 | 643 | |
---|
644 | 644 | mac = of_get_mac_address(np); |
---|
645 | | - if (mac) |
---|
| 645 | + if (!IS_ERR(mac)) |
---|
646 | 646 | ether_addr_copy(common->macaddr, mac); |
---|
647 | 647 | |
---|
648 | 648 | return 0; |
---|
.. | .. |
---|
676 | 676 | |
---|
677 | 677 | /* Will be cleared in ath9k_start() */ |
---|
678 | 678 | set_bit(ATH_OP_INVALID, &common->op_flags); |
---|
679 | | - sc->airtime_flags = (AIRTIME_USE_TX | AIRTIME_USE_RX | |
---|
680 | | - AIRTIME_USE_NEW_QUEUES); |
---|
681 | 679 | |
---|
682 | 680 | sc->sc_ah = ah; |
---|
683 | 681 | sc->dfs_detector = dfs_pattern_detector_init(common, NL80211_DFS_UNSET); |
---|
.. | .. |
---|
730 | 728 | spin_lock_init(&sc->sc_pm_lock); |
---|
731 | 729 | spin_lock_init(&sc->chan_lock); |
---|
732 | 730 | mutex_init(&sc->mutex); |
---|
733 | | - tasklet_init(&sc->intr_tq, ath9k_tasklet, (unsigned long)sc); |
---|
734 | | - tasklet_init(&sc->bcon_tasklet, ath9k_beacon_tasklet, |
---|
735 | | - (unsigned long)sc); |
---|
| 731 | + tasklet_setup(&sc->intr_tq, ath9k_tasklet); |
---|
| 732 | + tasklet_setup(&sc->bcon_tasklet, ath9k_beacon_tasklet); |
---|
736 | 733 | |
---|
737 | 734 | timer_setup(&sc->sleep_timer, ath_ps_full_sleep, 0); |
---|
738 | 735 | INIT_WORK(&sc->hw_reset_work, ath_reset_work); |
---|
.. | .. |
---|
807 | 804 | ah->curchan = &ah->channels[chan->hw_value]; |
---|
808 | 805 | cfg80211_chandef_create(&chandef, chan, NL80211_CHAN_HT20); |
---|
809 | 806 | ath9k_cmn_get_channel(sc->hw, ah, &chandef); |
---|
810 | | - ath9k_hw_set_txpowerlimit(ah, MAX_RATE_POWER, true); |
---|
| 807 | + ath9k_hw_set_txpowerlimit(ah, MAX_COMBINED_POWER, true); |
---|
811 | 808 | } |
---|
812 | 809 | } |
---|
813 | 810 | |
---|
.. | .. |
---|
1013 | 1010 | SET_IEEE80211_PERM_ADDR(hw, common->macaddr); |
---|
1014 | 1011 | |
---|
1015 | 1012 | wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST); |
---|
| 1013 | + wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_AIRTIME_FAIRNESS); |
---|
| 1014 | + wiphy_ext_feature_set(hw->wiphy, |
---|
| 1015 | + NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS); |
---|
| 1016 | + wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CAN_REPLACE_PTK0); |
---|
1016 | 1017 | } |
---|
1017 | 1018 | |
---|
1018 | 1019 | int ath9k_init_device(u16 devid, struct ath_softc *sc, |
---|