hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/net/wireless/ath/ath10k/pci.c
....@@ -1963,8 +1963,9 @@
19631963 ath10k_pci_irq_enable(ar);
19641964 ath10k_pci_rx_post(ar);
19651965
1966
- pcie_capability_write_word(ar_pci->pdev, PCI_EXP_LNKCTL,
1967
- ar_pci->link_ctl);
1966
+ pcie_capability_clear_and_set_word(ar_pci->pdev, PCI_EXP_LNKCTL,
1967
+ PCI_EXP_LNKCTL_ASPMC,
1968
+ ar_pci->link_ctl & PCI_EXP_LNKCTL_ASPMC);
19681969
19691970 return 0;
19701971 }
....@@ -2820,8 +2821,8 @@
28202821
28212822 pcie_capability_read_word(ar_pci->pdev, PCI_EXP_LNKCTL,
28222823 &ar_pci->link_ctl);
2823
- pcie_capability_write_word(ar_pci->pdev, PCI_EXP_LNKCTL,
2824
- ar_pci->link_ctl & ~PCI_EXP_LNKCTL_ASPMC);
2824
+ pcie_capability_clear_word(ar_pci->pdev, PCI_EXP_LNKCTL,
2825
+ PCI_EXP_LNKCTL_ASPMC);
28252826
28262827 /*
28272828 * Bring the target up cleanly.
....@@ -3799,18 +3800,22 @@
37993800
38003801 static int __init ath10k_pci_init(void)
38013802 {
3802
- int ret;
3803
+ int ret1, ret2;
38033804
3804
- ret = pci_register_driver(&ath10k_pci_driver);
3805
- if (ret)
3805
+ ret1 = pci_register_driver(&ath10k_pci_driver);
3806
+ if (ret1)
38063807 printk(KERN_ERR "failed to register ath10k pci driver: %d\n",
3807
- ret);
3808
+ ret1);
38083809
3809
- ret = ath10k_ahb_init();
3810
- if (ret)
3811
- printk(KERN_ERR "ahb init failed: %d\n", ret);
3810
+ ret2 = ath10k_ahb_init();
3811
+ if (ret2)
3812
+ printk(KERN_ERR "ahb init failed: %d\n", ret2);
38123813
3813
- return ret;
3814
+ if (ret1 && ret2)
3815
+ return ret1;
3816
+
3817
+ /* registered to at least one bus */
3818
+ return 0;
38143819 }
38153820 module_init(ath10k_pci_init);
38163821