Loading MAINTAINERS +0 −1 Original line number Diff line number Diff line Loading @@ -14565,7 +14565,6 @@ L: wil6210@qca.qualcomm.com S: Supported W: http://wireless.kernel.org/en/users/Drivers/wil6210 F: drivers/net/wireless/ath/wil6210/ F: include/uapi/linux/wil6210_uapi.h WIMAX STACK M: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> Loading drivers/net/wireless/ath/ar5523/ar5523.c +3 −4 Original line number Diff line number Diff line Loading @@ -889,9 +889,9 @@ static void ar5523_tx_work(struct work_struct *work) mutex_unlock(&ar->mutex); } static void ar5523_tx_wd_timer(unsigned long arg) static void ar5523_tx_wd_timer(struct timer_list *t) { struct ar5523 *ar = (struct ar5523 *) arg; struct ar5523 *ar = from_timer(ar, t, tx_wd_timer); ar5523_dbg(ar, "TX watchdog timer triggered\n"); ieee80211_queue_work(ar->hw, &ar->tx_wd_work); Loading Loading @@ -1599,8 +1599,7 @@ static int ar5523_probe(struct usb_interface *intf, mutex_init(&ar->mutex); INIT_DELAYED_WORK(&ar->stat_work, ar5523_stat_work); init_timer(&ar->tx_wd_timer); setup_timer(&ar->tx_wd_timer, ar5523_tx_wd_timer, (unsigned long) ar); timer_setup(&ar->tx_wd_timer, ar5523_tx_wd_timer, 0); INIT_WORK(&ar->tx_wd_work, ar5523_tx_wd_work); INIT_WORK(&ar->tx_work, ar5523_tx_work); INIT_LIST_HEAD(&ar->tx_queue_pending); Loading drivers/net/wireless/ath/ath10k/htt_rx.c +3 −3 Original line number Diff line number Diff line Loading @@ -200,9 +200,9 @@ static void ath10k_htt_rx_msdu_buff_replenish(struct ath10k_htt *htt) spin_unlock_bh(&htt->rx_ring.lock); } static void ath10k_htt_rx_ring_refill_retry(unsigned long arg) static void ath10k_htt_rx_ring_refill_retry(struct timer_list *t) { struct ath10k_htt *htt = (struct ath10k_htt *)arg; struct ath10k_htt *htt = from_timer(htt, t, rx_ring.refill_retry_timer); ath10k_htt_rx_msdu_buff_replenish(htt); } Loading Loading @@ -507,7 +507,7 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt) *htt->rx_ring.alloc_idx.vaddr = 0; /* Initialize the Rx refill retry timer */ setup_timer(timer, ath10k_htt_rx_ring_refill_retry, (unsigned long)htt); timer_setup(timer, ath10k_htt_rx_ring_refill_retry, 0); spin_lock_init(&htt->rx_ring.lock); Loading drivers/net/wireless/ath/ath10k/mac.c +63 −53 Original line number Diff line number Diff line Loading @@ -5585,6 +5585,59 @@ static void ath10k_mac_op_set_coverage_class(struct ieee80211_hw *hw, s16 value) ar->hw_params.hw_ops->set_coverage_class(ar, value); } struct ath10k_mac_tdls_iter_data { u32 num_tdls_stations; struct ieee80211_vif *curr_vif; }; static void ath10k_mac_tdls_vif_stations_count_iter(void *data, struct ieee80211_sta *sta) { struct ath10k_mac_tdls_iter_data *iter_data = data; struct ath10k_sta *arsta = (struct ath10k_sta *)sta->drv_priv; struct ieee80211_vif *sta_vif = arsta->arvif->vif; if (sta->tdls && sta_vif == iter_data->curr_vif) iter_data->num_tdls_stations++; } static int ath10k_mac_tdls_vif_stations_count(struct ieee80211_hw *hw, struct ieee80211_vif *vif) { struct ath10k_mac_tdls_iter_data data = {}; data.curr_vif = vif; ieee80211_iterate_stations_atomic(hw, ath10k_mac_tdls_vif_stations_count_iter, &data); return data.num_tdls_stations; } static void ath10k_mac_tdls_vifs_count_iter(void *data, u8 *mac, struct ieee80211_vif *vif) { struct ath10k_vif *arvif = (void *)vif->drv_priv; int *num_tdls_vifs = data; if (vif->type != NL80211_IFTYPE_STATION) return; if (ath10k_mac_tdls_vif_stations_count(arvif->ar->hw, vif) > 0) (*num_tdls_vifs)++; } static int ath10k_mac_tdls_vifs_count(struct ieee80211_hw *hw) { int num_tdls_vifs = 0; ieee80211_iterate_active_interfaces_atomic(hw, IEEE80211_IFACE_ITER_NORMAL, ath10k_mac_tdls_vifs_count_iter, &num_tdls_vifs); return num_tdls_vifs; } static int ath10k_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_scan_request *hw_req) Loading @@ -5598,6 +5651,11 @@ static int ath10k_hw_scan(struct ieee80211_hw *hw, mutex_lock(&ar->conf_mutex); if (ath10k_mac_tdls_vif_stations_count(hw, vif) > 0) { ret = -EBUSY; goto exit; } spin_lock_bh(&ar->data_lock); switch (ar->scan.state) { case ATH10K_SCAN_IDLE: Loading Loading @@ -6013,59 +6071,6 @@ static void ath10k_mac_dec_num_stations(struct ath10k_vif *arvif, ar->num_stations--; } struct ath10k_mac_tdls_iter_data { u32 num_tdls_stations; struct ieee80211_vif *curr_vif; }; static void ath10k_mac_tdls_vif_stations_count_iter(void *data, struct ieee80211_sta *sta) { struct ath10k_mac_tdls_iter_data *iter_data = data; struct ath10k_sta *arsta = (struct ath10k_sta *)sta->drv_priv; struct ieee80211_vif *sta_vif = arsta->arvif->vif; if (sta->tdls && sta_vif == iter_data->curr_vif) iter_data->num_tdls_stations++; } static int ath10k_mac_tdls_vif_stations_count(struct ieee80211_hw *hw, struct ieee80211_vif *vif) { struct ath10k_mac_tdls_iter_data data = {}; data.curr_vif = vif; ieee80211_iterate_stations_atomic(hw, ath10k_mac_tdls_vif_stations_count_iter, &data); return data.num_tdls_stations; } static void ath10k_mac_tdls_vifs_count_iter(void *data, u8 *mac, struct ieee80211_vif *vif) { struct ath10k_vif *arvif = (void *)vif->drv_priv; int *num_tdls_vifs = data; if (vif->type != NL80211_IFTYPE_STATION) return; if (ath10k_mac_tdls_vif_stations_count(arvif->ar->hw, vif) > 0) (*num_tdls_vifs)++; } static int ath10k_mac_tdls_vifs_count(struct ieee80211_hw *hw) { int num_tdls_vifs = 0; ieee80211_iterate_active_interfaces_atomic(hw, IEEE80211_IFACE_ITER_NORMAL, ath10k_mac_tdls_vifs_count_iter, &num_tdls_vifs); return num_tdls_vifs; } static int ath10k_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, Loading Loading @@ -6490,6 +6495,11 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw, mutex_lock(&ar->conf_mutex); if (ath10k_mac_tdls_vif_stations_count(hw, vif) > 0) { ret = -EBUSY; goto exit; } spin_lock_bh(&ar->data_lock); switch (ar->scan.state) { case ATH10K_SCAN_IDLE: Loading drivers/net/wireless/ath/ath10k/pci.c +8 −14 Original line number Diff line number Diff line Loading @@ -585,10 +585,10 @@ static void ath10k_pci_sleep(struct ath10k *ar) spin_unlock_irqrestore(&ar_pci->ps_lock, flags); } static void ath10k_pci_ps_timer(unsigned long ptr) static void ath10k_pci_ps_timer(struct timer_list *t) { struct ath10k *ar = (void *)ptr; struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); struct ath10k_pci *ar_pci = from_timer(ar_pci, t, ps_timer); struct ath10k *ar = ar_pci->ar; unsigned long flags; spin_lock_irqsave(&ar_pci->ps_lock, flags); Loading Loading @@ -838,9 +838,10 @@ void ath10k_pci_rx_post(struct ath10k *ar) ath10k_pci_rx_post_pipe(&ar_pci->pipe_info[i]); } void ath10k_pci_rx_replenish_retry(unsigned long ptr) void ath10k_pci_rx_replenish_retry(struct timer_list *t) { struct ath10k *ar = (void *)ptr; struct ath10k_pci *ar_pci = from_timer(ar_pci, t, rx_post_retry); struct ath10k *ar = ar_pci->ar; ath10k_pci_rx_post(ar); } Loading Loading @@ -2577,8 +2578,6 @@ void ath10k_pci_hif_power_down(struct ath10k *ar) */ } #ifdef CONFIG_PM static int ath10k_pci_hif_suspend(struct ath10k *ar) { /* Nothing to do; the important stuff is in the driver suspend. */ Loading Loading @@ -2627,7 +2626,6 @@ static int ath10k_pci_resume(struct ath10k *ar) return ret; } #endif static bool ath10k_pci_validate_cal(void *data, size_t size) { Loading Loading @@ -2782,10 +2780,8 @@ static const struct ath10k_hif_ops ath10k_pci_hif_ops = { .power_down = ath10k_pci_hif_power_down, .read32 = ath10k_pci_read32, .write32 = ath10k_pci_write32, #ifdef CONFIG_PM .suspend = ath10k_pci_hif_suspend, .resume = ath10k_pci_hif_resume, #endif .fetch_cal_eeprom = ath10k_pci_hif_fetch_cal_eeprom, }; Loading Loading @@ -3169,8 +3165,7 @@ int ath10k_pci_setup_resource(struct ath10k *ar) spin_lock_init(&ce->ce_lock); spin_lock_init(&ar_pci->ps_lock); setup_timer(&ar_pci->rx_post_retry, ath10k_pci_rx_replenish_retry, (unsigned long)ar); timer_setup(&ar_pci->rx_post_retry, ath10k_pci_rx_replenish_retry, 0); if (QCA_REV_6174(ar) || QCA_REV_9377(ar)) ath10k_pci_override_ce_config(ar); Loading Loading @@ -3296,8 +3291,7 @@ static int ath10k_pci_probe(struct pci_dev *pdev, ar->id.subsystem_vendor = pdev->subsystem_vendor; ar->id.subsystem_device = pdev->subsystem_device; setup_timer(&ar_pci->ps_timer, ath10k_pci_ps_timer, (unsigned long)ar); timer_setup(&ar_pci->ps_timer, ath10k_pci_ps_timer, 0); ret = ath10k_pci_setup_resource(ar); if (ret) { Loading Loading
MAINTAINERS +0 −1 Original line number Diff line number Diff line Loading @@ -14565,7 +14565,6 @@ L: wil6210@qca.qualcomm.com S: Supported W: http://wireless.kernel.org/en/users/Drivers/wil6210 F: drivers/net/wireless/ath/wil6210/ F: include/uapi/linux/wil6210_uapi.h WIMAX STACK M: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> Loading
drivers/net/wireless/ath/ar5523/ar5523.c +3 −4 Original line number Diff line number Diff line Loading @@ -889,9 +889,9 @@ static void ar5523_tx_work(struct work_struct *work) mutex_unlock(&ar->mutex); } static void ar5523_tx_wd_timer(unsigned long arg) static void ar5523_tx_wd_timer(struct timer_list *t) { struct ar5523 *ar = (struct ar5523 *) arg; struct ar5523 *ar = from_timer(ar, t, tx_wd_timer); ar5523_dbg(ar, "TX watchdog timer triggered\n"); ieee80211_queue_work(ar->hw, &ar->tx_wd_work); Loading Loading @@ -1599,8 +1599,7 @@ static int ar5523_probe(struct usb_interface *intf, mutex_init(&ar->mutex); INIT_DELAYED_WORK(&ar->stat_work, ar5523_stat_work); init_timer(&ar->tx_wd_timer); setup_timer(&ar->tx_wd_timer, ar5523_tx_wd_timer, (unsigned long) ar); timer_setup(&ar->tx_wd_timer, ar5523_tx_wd_timer, 0); INIT_WORK(&ar->tx_wd_work, ar5523_tx_wd_work); INIT_WORK(&ar->tx_work, ar5523_tx_work); INIT_LIST_HEAD(&ar->tx_queue_pending); Loading
drivers/net/wireless/ath/ath10k/htt_rx.c +3 −3 Original line number Diff line number Diff line Loading @@ -200,9 +200,9 @@ static void ath10k_htt_rx_msdu_buff_replenish(struct ath10k_htt *htt) spin_unlock_bh(&htt->rx_ring.lock); } static void ath10k_htt_rx_ring_refill_retry(unsigned long arg) static void ath10k_htt_rx_ring_refill_retry(struct timer_list *t) { struct ath10k_htt *htt = (struct ath10k_htt *)arg; struct ath10k_htt *htt = from_timer(htt, t, rx_ring.refill_retry_timer); ath10k_htt_rx_msdu_buff_replenish(htt); } Loading Loading @@ -507,7 +507,7 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt) *htt->rx_ring.alloc_idx.vaddr = 0; /* Initialize the Rx refill retry timer */ setup_timer(timer, ath10k_htt_rx_ring_refill_retry, (unsigned long)htt); timer_setup(timer, ath10k_htt_rx_ring_refill_retry, 0); spin_lock_init(&htt->rx_ring.lock); Loading
drivers/net/wireless/ath/ath10k/mac.c +63 −53 Original line number Diff line number Diff line Loading @@ -5585,6 +5585,59 @@ static void ath10k_mac_op_set_coverage_class(struct ieee80211_hw *hw, s16 value) ar->hw_params.hw_ops->set_coverage_class(ar, value); } struct ath10k_mac_tdls_iter_data { u32 num_tdls_stations; struct ieee80211_vif *curr_vif; }; static void ath10k_mac_tdls_vif_stations_count_iter(void *data, struct ieee80211_sta *sta) { struct ath10k_mac_tdls_iter_data *iter_data = data; struct ath10k_sta *arsta = (struct ath10k_sta *)sta->drv_priv; struct ieee80211_vif *sta_vif = arsta->arvif->vif; if (sta->tdls && sta_vif == iter_data->curr_vif) iter_data->num_tdls_stations++; } static int ath10k_mac_tdls_vif_stations_count(struct ieee80211_hw *hw, struct ieee80211_vif *vif) { struct ath10k_mac_tdls_iter_data data = {}; data.curr_vif = vif; ieee80211_iterate_stations_atomic(hw, ath10k_mac_tdls_vif_stations_count_iter, &data); return data.num_tdls_stations; } static void ath10k_mac_tdls_vifs_count_iter(void *data, u8 *mac, struct ieee80211_vif *vif) { struct ath10k_vif *arvif = (void *)vif->drv_priv; int *num_tdls_vifs = data; if (vif->type != NL80211_IFTYPE_STATION) return; if (ath10k_mac_tdls_vif_stations_count(arvif->ar->hw, vif) > 0) (*num_tdls_vifs)++; } static int ath10k_mac_tdls_vifs_count(struct ieee80211_hw *hw) { int num_tdls_vifs = 0; ieee80211_iterate_active_interfaces_atomic(hw, IEEE80211_IFACE_ITER_NORMAL, ath10k_mac_tdls_vifs_count_iter, &num_tdls_vifs); return num_tdls_vifs; } static int ath10k_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_scan_request *hw_req) Loading @@ -5598,6 +5651,11 @@ static int ath10k_hw_scan(struct ieee80211_hw *hw, mutex_lock(&ar->conf_mutex); if (ath10k_mac_tdls_vif_stations_count(hw, vif) > 0) { ret = -EBUSY; goto exit; } spin_lock_bh(&ar->data_lock); switch (ar->scan.state) { case ATH10K_SCAN_IDLE: Loading Loading @@ -6013,59 +6071,6 @@ static void ath10k_mac_dec_num_stations(struct ath10k_vif *arvif, ar->num_stations--; } struct ath10k_mac_tdls_iter_data { u32 num_tdls_stations; struct ieee80211_vif *curr_vif; }; static void ath10k_mac_tdls_vif_stations_count_iter(void *data, struct ieee80211_sta *sta) { struct ath10k_mac_tdls_iter_data *iter_data = data; struct ath10k_sta *arsta = (struct ath10k_sta *)sta->drv_priv; struct ieee80211_vif *sta_vif = arsta->arvif->vif; if (sta->tdls && sta_vif == iter_data->curr_vif) iter_data->num_tdls_stations++; } static int ath10k_mac_tdls_vif_stations_count(struct ieee80211_hw *hw, struct ieee80211_vif *vif) { struct ath10k_mac_tdls_iter_data data = {}; data.curr_vif = vif; ieee80211_iterate_stations_atomic(hw, ath10k_mac_tdls_vif_stations_count_iter, &data); return data.num_tdls_stations; } static void ath10k_mac_tdls_vifs_count_iter(void *data, u8 *mac, struct ieee80211_vif *vif) { struct ath10k_vif *arvif = (void *)vif->drv_priv; int *num_tdls_vifs = data; if (vif->type != NL80211_IFTYPE_STATION) return; if (ath10k_mac_tdls_vif_stations_count(arvif->ar->hw, vif) > 0) (*num_tdls_vifs)++; } static int ath10k_mac_tdls_vifs_count(struct ieee80211_hw *hw) { int num_tdls_vifs = 0; ieee80211_iterate_active_interfaces_atomic(hw, IEEE80211_IFACE_ITER_NORMAL, ath10k_mac_tdls_vifs_count_iter, &num_tdls_vifs); return num_tdls_vifs; } static int ath10k_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, Loading Loading @@ -6490,6 +6495,11 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw, mutex_lock(&ar->conf_mutex); if (ath10k_mac_tdls_vif_stations_count(hw, vif) > 0) { ret = -EBUSY; goto exit; } spin_lock_bh(&ar->data_lock); switch (ar->scan.state) { case ATH10K_SCAN_IDLE: Loading
drivers/net/wireless/ath/ath10k/pci.c +8 −14 Original line number Diff line number Diff line Loading @@ -585,10 +585,10 @@ static void ath10k_pci_sleep(struct ath10k *ar) spin_unlock_irqrestore(&ar_pci->ps_lock, flags); } static void ath10k_pci_ps_timer(unsigned long ptr) static void ath10k_pci_ps_timer(struct timer_list *t) { struct ath10k *ar = (void *)ptr; struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); struct ath10k_pci *ar_pci = from_timer(ar_pci, t, ps_timer); struct ath10k *ar = ar_pci->ar; unsigned long flags; spin_lock_irqsave(&ar_pci->ps_lock, flags); Loading Loading @@ -838,9 +838,10 @@ void ath10k_pci_rx_post(struct ath10k *ar) ath10k_pci_rx_post_pipe(&ar_pci->pipe_info[i]); } void ath10k_pci_rx_replenish_retry(unsigned long ptr) void ath10k_pci_rx_replenish_retry(struct timer_list *t) { struct ath10k *ar = (void *)ptr; struct ath10k_pci *ar_pci = from_timer(ar_pci, t, rx_post_retry); struct ath10k *ar = ar_pci->ar; ath10k_pci_rx_post(ar); } Loading Loading @@ -2577,8 +2578,6 @@ void ath10k_pci_hif_power_down(struct ath10k *ar) */ } #ifdef CONFIG_PM static int ath10k_pci_hif_suspend(struct ath10k *ar) { /* Nothing to do; the important stuff is in the driver suspend. */ Loading Loading @@ -2627,7 +2626,6 @@ static int ath10k_pci_resume(struct ath10k *ar) return ret; } #endif static bool ath10k_pci_validate_cal(void *data, size_t size) { Loading Loading @@ -2782,10 +2780,8 @@ static const struct ath10k_hif_ops ath10k_pci_hif_ops = { .power_down = ath10k_pci_hif_power_down, .read32 = ath10k_pci_read32, .write32 = ath10k_pci_write32, #ifdef CONFIG_PM .suspend = ath10k_pci_hif_suspend, .resume = ath10k_pci_hif_resume, #endif .fetch_cal_eeprom = ath10k_pci_hif_fetch_cal_eeprom, }; Loading Loading @@ -3169,8 +3165,7 @@ int ath10k_pci_setup_resource(struct ath10k *ar) spin_lock_init(&ce->ce_lock); spin_lock_init(&ar_pci->ps_lock); setup_timer(&ar_pci->rx_post_retry, ath10k_pci_rx_replenish_retry, (unsigned long)ar); timer_setup(&ar_pci->rx_post_retry, ath10k_pci_rx_replenish_retry, 0); if (QCA_REV_6174(ar) || QCA_REV_9377(ar)) ath10k_pci_override_ce_config(ar); Loading Loading @@ -3296,8 +3291,7 @@ static int ath10k_pci_probe(struct pci_dev *pdev, ar->id.subsystem_vendor = pdev->subsystem_vendor; ar->id.subsystem_device = pdev->subsystem_device; setup_timer(&ar_pci->ps_timer, ath10k_pci_ps_timer, (unsigned long)ar); timer_setup(&ar_pci->ps_timer, ath10k_pci_ps_timer, 0); ret = ath10k_pci_setup_resource(ar); if (ret) { Loading