mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-02 20:29:20 +00:00
wireless-drivers fixes for 4.13
Only one iwlwifi patch this time. iwlwifi * fix multiple times reported lockdep warning found by new locking annotation introduced in v4.13-rc1 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJZoCT5AAoJEG4XJFUm622b1Y8H/iiQbFBDv9uyoGYZOjbJtpfY B+hJoytPOGsuCQSjDApM7/nfjJcHOwESpN0CFaHwusumMFiBIMVKBTrml8RI7jmE NBUnsBld1fJzsB1ErlI0vHN7YXym38VD280q15jEVa+XaGEo7l51nJGGLfmw64Ac EPvBoLsTsPbpsNpzfHLCYuUcucTEREi90P+qek4uzmikcf07bIa14h0WC0XG6QdQ YJpRNhWH4znvqwEltzNtpADzRiQma3pXu9JwtgTfaPy1vFbVaSzaDNqLdt8UE6IL ANVAXBQQFR887f0NKwAVFfYDD50XT2ThBvsCEVQ4fecf8r3x1WfoSIEvvwGcmuQ= =Sn3N -----END PGP SIGNATURE----- Merge tag 'wireless-drivers-for-davem-2017-08-25' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== wireless-drivers fixes for 4.13 Only one iwlwifi patch this time. iwlwifi * fix multiple times reported lockdep warning found by new locking annotation introduced in v4.13-rc1 ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
f63ae01d89
3 changed files with 12 additions and 9 deletions
|
@ -787,6 +787,8 @@ int iwl_pci_fw_enter_d0i3(struct iwl_trans *trans);
|
||||||
|
|
||||||
void iwl_pcie_enable_rx_wake(struct iwl_trans *trans, bool enable);
|
void iwl_pcie_enable_rx_wake(struct iwl_trans *trans, bool enable);
|
||||||
|
|
||||||
|
void iwl_pcie_rx_allocator_work(struct work_struct *data);
|
||||||
|
|
||||||
/* common functions that are used by gen2 transport */
|
/* common functions that are used by gen2 transport */
|
||||||
void iwl_pcie_apm_config(struct iwl_trans *trans);
|
void iwl_pcie_apm_config(struct iwl_trans *trans);
|
||||||
int iwl_pcie_prepare_card_hw(struct iwl_trans *trans);
|
int iwl_pcie_prepare_card_hw(struct iwl_trans *trans);
|
||||||
|
|
|
@ -597,7 +597,7 @@ static void iwl_pcie_rx_allocator_get(struct iwl_trans *trans,
|
||||||
rxq->free_count += RX_CLAIM_REQ_ALLOC;
|
rxq->free_count += RX_CLAIM_REQ_ALLOC;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void iwl_pcie_rx_allocator_work(struct work_struct *data)
|
void iwl_pcie_rx_allocator_work(struct work_struct *data)
|
||||||
{
|
{
|
||||||
struct iwl_rb_allocator *rba_p =
|
struct iwl_rb_allocator *rba_p =
|
||||||
container_of(data, struct iwl_rb_allocator, rx_alloc);
|
container_of(data, struct iwl_rb_allocator, rx_alloc);
|
||||||
|
@ -900,10 +900,6 @@ static int _iwl_pcie_rx_init(struct iwl_trans *trans)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
def_rxq = trans_pcie->rxq;
|
def_rxq = trans_pcie->rxq;
|
||||||
if (!rba->alloc_wq)
|
|
||||||
rba->alloc_wq = alloc_workqueue("rb_allocator",
|
|
||||||
WQ_HIGHPRI | WQ_UNBOUND, 1);
|
|
||||||
INIT_WORK(&rba->rx_alloc, iwl_pcie_rx_allocator_work);
|
|
||||||
|
|
||||||
spin_lock(&rba->lock);
|
spin_lock(&rba->lock);
|
||||||
atomic_set(&rba->req_pending, 0);
|
atomic_set(&rba->req_pending, 0);
|
||||||
|
@ -1017,10 +1013,6 @@ void iwl_pcie_rx_free(struct iwl_trans *trans)
|
||||||
}
|
}
|
||||||
|
|
||||||
cancel_work_sync(&rba->rx_alloc);
|
cancel_work_sync(&rba->rx_alloc);
|
||||||
if (rba->alloc_wq) {
|
|
||||||
destroy_workqueue(rba->alloc_wq);
|
|
||||||
rba->alloc_wq = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
iwl_pcie_free_rbs_pool(trans);
|
iwl_pcie_free_rbs_pool(trans);
|
||||||
|
|
||||||
|
|
|
@ -1786,6 +1786,11 @@ void iwl_trans_pcie_free(struct iwl_trans *trans)
|
||||||
iwl_pcie_tx_free(trans);
|
iwl_pcie_tx_free(trans);
|
||||||
iwl_pcie_rx_free(trans);
|
iwl_pcie_rx_free(trans);
|
||||||
|
|
||||||
|
if (trans_pcie->rba.alloc_wq) {
|
||||||
|
destroy_workqueue(trans_pcie->rba.alloc_wq);
|
||||||
|
trans_pcie->rba.alloc_wq = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (trans_pcie->msix_enabled) {
|
if (trans_pcie->msix_enabled) {
|
||||||
for (i = 0; i < trans_pcie->alloc_vecs; i++) {
|
for (i = 0; i < trans_pcie->alloc_vecs; i++) {
|
||||||
irq_set_affinity_hint(
|
irq_set_affinity_hint(
|
||||||
|
@ -3169,6 +3174,10 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
|
||||||
trans_pcie->inta_mask = CSR_INI_SET_MASK;
|
trans_pcie->inta_mask = CSR_INI_SET_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trans_pcie->rba.alloc_wq = alloc_workqueue("rb_allocator",
|
||||||
|
WQ_HIGHPRI | WQ_UNBOUND, 1);
|
||||||
|
INIT_WORK(&trans_pcie->rba.rx_alloc, iwl_pcie_rx_allocator_work);
|
||||||
|
|
||||||
#ifdef CONFIG_IWLWIFI_PCIE_RTPM
|
#ifdef CONFIG_IWLWIFI_PCIE_RTPM
|
||||||
trans->runtime_pm_mode = IWL_PLAT_PM_MODE_D0I3;
|
trans->runtime_pm_mode = IWL_PLAT_PM_MODE_D0I3;
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue