Lines Matching refs:ab_pci

118 static inline void ath11k_pci_select_window(struct ath11k_pci *ab_pci, u32 offset)  in ath11k_pci_select_window()  argument
120 struct ath11k_base *ab = ab_pci->ab; in ath11k_pci_select_window()
124 lockdep_assert_held(&ab_pci->window_lock); in ath11k_pci_select_window()
126 if (window != ab_pci->register_window) { in ath11k_pci_select_window()
129 ab_pci->register_window = window; in ath11k_pci_select_window()
135 struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); in ath11k_pci_write32() local
140 if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) && in ath11k_pci_write32()
142 mhi_device_get_sync(ab_pci->mhi_ctrl->mhi_dev); in ath11k_pci_write32()
147 spin_lock_bh(&ab_pci->window_lock); in ath11k_pci_write32()
148 ath11k_pci_select_window(ab_pci, offset); in ath11k_pci_write32()
150 spin_unlock_bh(&ab_pci->window_lock); in ath11k_pci_write32()
153 if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) && in ath11k_pci_write32()
155 mhi_device_put(ab_pci->mhi_ctrl->mhi_dev); in ath11k_pci_write32()
160 struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); in ath11k_pci_read32() local
166 if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) && in ath11k_pci_read32()
168 mhi_device_get_sync(ab_pci->mhi_ctrl->mhi_dev); in ath11k_pci_read32()
173 spin_lock_bh(&ab_pci->window_lock); in ath11k_pci_read32()
174 ath11k_pci_select_window(ab_pci, offset); in ath11k_pci_read32()
176 spin_unlock_bh(&ab_pci->window_lock); in ath11k_pci_read32()
179 if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) && in ath11k_pci_read32()
181 mhi_device_put(ab_pci->mhi_ctrl->mhi_dev); in ath11k_pci_read32()
276 int ath11k_pci_get_user_msi_assignment(struct ath11k_pci *ab_pci, char *user_name, in ath11k_pci_get_user_msi_assignment() argument
280 struct ath11k_base *ab = ab_pci->ab; in ath11k_pci_get_user_msi_assignment()
287 + ab_pci->msi_ep_base_data; in ath11k_pci_get_user_msi_assignment()
307 struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); in ath11k_get_user_msi_assignment() local
309 return ath11k_pci_get_user_msi_assignment(ab_pci, user_name, in ath11k_get_user_msi_assignment()
633 static int ath11k_pci_enable_msi(struct ath11k_pci *ab_pci) in ath11k_pci_enable_msi() argument
635 struct ath11k_base *ab = ab_pci->ab; in ath11k_pci_enable_msi()
640 num_vectors = pci_alloc_irq_vectors(ab_pci->pdev, in ath11k_pci_enable_msi()
654 msi_desc = irq_get_msi_desc(ab_pci->pdev->irq); in ath11k_pci_enable_msi()
661 ab_pci->msi_ep_base_data = msi_desc->msg.data; in ath11k_pci_enable_msi()
663 ath11k_dbg(ab, ATH11K_DBG_PCI, "msi base data is %d\n", ab_pci->msi_ep_base_data); in ath11k_pci_enable_msi()
668 pci_free_irq_vectors(ab_pci->pdev); in ath11k_pci_enable_msi()
673 static void ath11k_pci_disable_msi(struct ath11k_pci *ab_pci) in ath11k_pci_disable_msi() argument
675 pci_free_irq_vectors(ab_pci->pdev); in ath11k_pci_disable_msi()
678 static int ath11k_pci_claim(struct ath11k_pci *ab_pci, struct pci_dev *pdev) in ath11k_pci_claim() argument
680 struct ath11k_base *ab = ab_pci->ab; in ath11k_pci_claim()
685 if (device_id != ab_pci->dev_id) { in ath11k_pci_claim()
687 device_id, ab_pci->dev_id); in ath11k_pci_claim()
747 static void ath11k_pci_free_region(struct ath11k_pci *ab_pci) in ath11k_pci_free_region() argument
749 struct ath11k_base *ab = ab_pci->ab; in ath11k_pci_free_region()
750 struct pci_dev *pci_dev = ab_pci->pdev; in ath11k_pci_free_region()
762 struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); in ath11k_pci_power_up() local
765 ab_pci->register_window = 0; in ath11k_pci_power_up()
766 clear_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags); in ath11k_pci_power_up()
767 ath11k_pci_sw_reset(ab_pci->ab); in ath11k_pci_power_up()
769 ret = ath11k_mhi_start(ab_pci); in ath11k_pci_power_up()
780 struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); in ath11k_pci_power_down() local
782 ath11k_mhi_stop(ab_pci); in ath11k_pci_power_down()
783 clear_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags); in ath11k_pci_power_down()
784 ath11k_pci_force_wake(ab_pci->ab); in ath11k_pci_power_down()
785 ath11k_pci_sw_reset(ab_pci->ab); in ath11k_pci_power_down()
812 struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); in ath11k_pci_start() local
814 set_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags); in ath11k_pci_start()
883 struct ath11k_pci *ab_pci; in ath11k_pci_probe() local
889 ab = ath11k_core_alloc(&pdev->dev, sizeof(*ab_pci), ATH11K_BUS_PCI, in ath11k_pci_probe()
898 ab_pci = ath11k_pci_priv(ab); in ath11k_pci_probe()
899 ab_pci->dev_id = pci_dev->device; in ath11k_pci_probe()
900 ab_pci->ab = ab; in ath11k_pci_probe()
901 ab_pci->pdev = pdev; in ath11k_pci_probe()
904 spin_lock_init(&ab_pci->window_lock); in ath11k_pci_probe()
906 ret = ath11k_pci_claim(ab_pci, pdev); in ath11k_pci_probe()
941 ret = ath11k_pci_enable_msi(ab_pci); in ath11k_pci_probe()
951 ret = ath11k_mhi_register(ab_pci); in ath11k_pci_probe()
992 ath11k_mhi_unregister(ab_pci); in ath11k_pci_probe()
995 ath11k_pci_disable_msi(ab_pci); in ath11k_pci_probe()
998 ath11k_pci_free_region(ab_pci); in ath11k_pci_probe()
1009 struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); in ath11k_pci_remove() local
1015 ath11k_mhi_unregister(ab_pci); in ath11k_pci_remove()
1018 ath11k_pci_disable_msi(ab_pci); in ath11k_pci_remove()
1019 ath11k_pci_free_region(ab_pci); in ath11k_pci_remove()