Lines Matching refs:ab_pci

155 static int ath11k_mhi_get_msi(struct ath11k_pci *ab_pci)  in ath11k_mhi_get_msi()  argument
157 struct ath11k_base *ab = ab_pci->ab; in ath11k_mhi_get_msi()
162 ret = ath11k_pci_get_user_msi_assignment(ab_pci, in ath11k_mhi_get_msi()
179 ab_pci->mhi_ctrl->irq = irq; in ath11k_mhi_get_msi()
180 ab_pci->mhi_ctrl->nr_irqs = num_vectors; in ath11k_mhi_get_msi()
215 int ath11k_mhi_register(struct ath11k_pci *ab_pci) in ath11k_mhi_register() argument
217 struct ath11k_base *ab = ab_pci->ab; in ath11k_mhi_register()
226 ab_pci->amss_path, in ath11k_mhi_register()
227 sizeof(ab_pci->amss_path)); in ath11k_mhi_register()
229 ab_pci->mhi_ctrl = mhi_ctrl; in ath11k_mhi_register()
231 mhi_ctrl->fw_image = ab_pci->amss_path; in ath11k_mhi_register()
234 ret = ath11k_mhi_get_msi(ab_pci); in ath11k_mhi_register()
262 void ath11k_mhi_unregister(struct ath11k_pci *ab_pci) in ath11k_mhi_unregister() argument
264 struct mhi_controller *mhi_ctrl = ab_pci->mhi_ctrl; in ath11k_mhi_unregister()
296 static void ath11k_mhi_set_state_bit(struct ath11k_pci *ab_pci, in ath11k_mhi_set_state_bit() argument
299 struct ath11k_base *ab = ab_pci->ab; in ath11k_mhi_set_state_bit()
303 set_bit(ATH11K_MHI_INIT, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
306 clear_bit(ATH11K_MHI_INIT, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
309 set_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
313 clear_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
314 clear_bit(ATH11K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
315 clear_bit(ATH11K_MHI_RDDM_DONE, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
318 set_bit(ATH11K_MHI_SUSPEND, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
321 clear_bit(ATH11K_MHI_SUSPEND, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
324 set_bit(ATH11K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
327 set_bit(ATH11K_MHI_RDDM_DONE, &ab_pci->mhi_state); in ath11k_mhi_set_state_bit()
334 static int ath11k_mhi_check_state_bit(struct ath11k_pci *ab_pci, in ath11k_mhi_check_state_bit() argument
337 struct ath11k_base *ab = ab_pci->ab; in ath11k_mhi_check_state_bit()
341 if (!test_bit(ATH11K_MHI_INIT, &ab_pci->mhi_state)) in ath11k_mhi_check_state_bit()
346 if (test_bit(ATH11K_MHI_INIT, &ab_pci->mhi_state) && in ath11k_mhi_check_state_bit()
347 !test_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state)) in ath11k_mhi_check_state_bit()
351 if (test_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state)) in ath11k_mhi_check_state_bit()
356 if (test_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state) && in ath11k_mhi_check_state_bit()
357 !test_bit(ATH11K_MHI_SUSPEND, &ab_pci->mhi_state)) in ath11k_mhi_check_state_bit()
361 if (test_bit(ATH11K_MHI_SUSPEND, &ab_pci->mhi_state)) in ath11k_mhi_check_state_bit()
365 if (test_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state) && in ath11k_mhi_check_state_bit()
366 !test_bit(ATH11K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state)) in ath11k_mhi_check_state_bit()
378 ab_pci->mhi_state); in ath11k_mhi_check_state_bit()
383 static int ath11k_mhi_set_state(struct ath11k_pci *ab_pci, in ath11k_mhi_set_state() argument
386 struct ath11k_base *ab = ab_pci->ab; in ath11k_mhi_set_state()
389 ret = ath11k_mhi_check_state_bit(ab_pci, mhi_state); in ath11k_mhi_set_state()
398 ret = mhi_prepare_for_power_up(ab_pci->mhi_ctrl); in ath11k_mhi_set_state()
401 mhi_unprepare_after_power_down(ab_pci->mhi_ctrl); in ath11k_mhi_set_state()
405 ret = mhi_async_power_up(ab_pci->mhi_ctrl); in ath11k_mhi_set_state()
408 mhi_power_down(ab_pci->mhi_ctrl, true); in ath11k_mhi_set_state()
412 mhi_power_down(ab_pci->mhi_ctrl, false); in ath11k_mhi_set_state()
420 ret = mhi_force_rddm_mode(ab_pci->mhi_ctrl); in ath11k_mhi_set_state()
432 ath11k_mhi_set_state_bit(ab_pci, mhi_state); in ath11k_mhi_set_state()
442 int ath11k_mhi_start(struct ath11k_pci *ab_pci) in ath11k_mhi_start() argument
446 ab_pci->mhi_ctrl->timeout_ms = MHI_TIMEOUT_DEFAULT_MS; in ath11k_mhi_start()
448 ret = ath11k_mhi_set_state(ab_pci, ATH11K_MHI_INIT); in ath11k_mhi_start()
452 ret = ath11k_mhi_set_state(ab_pci, ATH11K_MHI_POWER_ON); in ath11k_mhi_start()
462 void ath11k_mhi_stop(struct ath11k_pci *ab_pci) in ath11k_mhi_stop() argument
464 ath11k_mhi_set_state(ab_pci, ATH11K_MHI_POWER_OFF); in ath11k_mhi_stop()
465 ath11k_mhi_set_state(ab_pci, ATH11K_MHI_DEINIT); in ath11k_mhi_stop()