| .. | .. |
|---|
| 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, |
|---|