Lines Matching refs:ab_pci
248 static int ath12k_mhi_get_msi(struct ath12k_pci *ab_pci) in ath12k_mhi_get_msi() argument
250 struct ath12k_base *ab = ab_pci->ab; in ath12k_mhi_get_msi()
272 ab_pci->mhi_ctrl->irq = irq; in ath12k_mhi_get_msi()
273 ab_pci->mhi_ctrl->nr_irqs = num_vectors; in ath12k_mhi_get_msi()
350 int ath12k_mhi_register(struct ath12k_pci *ab_pci) in ath12k_mhi_register() argument
352 struct ath12k_base *ab = ab_pci->ab; in ath12k_mhi_register()
361 ab_pci->amss_path, in ath12k_mhi_register()
362 sizeof(ab_pci->amss_path)); in ath12k_mhi_register()
364 ab_pci->mhi_ctrl = mhi_ctrl; in ath12k_mhi_register()
366 mhi_ctrl->fw_image = ab_pci->amss_path; in ath12k_mhi_register()
370 ret = ath12k_mhi_get_msi(ab_pci); in ath12k_mhi_register()
398 void ath12k_mhi_unregister(struct ath12k_pci *ab_pci) in ath12k_mhi_unregister() argument
400 struct mhi_controller *mhi_ctrl = ab_pci->mhi_ctrl; in ath12k_mhi_unregister()
405 ab_pci->mhi_ctrl = NULL; in ath12k_mhi_unregister()
434 static void ath12k_mhi_set_state_bit(struct ath12k_pci *ab_pci, in ath12k_mhi_set_state_bit() argument
437 struct ath12k_base *ab = ab_pci->ab; in ath12k_mhi_set_state_bit()
441 set_bit(ATH12K_MHI_INIT, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
444 clear_bit(ATH12K_MHI_INIT, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
447 set_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
451 clear_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
452 clear_bit(ATH12K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
453 clear_bit(ATH12K_MHI_RDDM_DONE, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
456 set_bit(ATH12K_MHI_SUSPEND, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
459 clear_bit(ATH12K_MHI_SUSPEND, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
462 set_bit(ATH12K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
465 set_bit(ATH12K_MHI_RDDM_DONE, &ab_pci->mhi_state); in ath12k_mhi_set_state_bit()
472 static int ath12k_mhi_check_state_bit(struct ath12k_pci *ab_pci, in ath12k_mhi_check_state_bit() argument
475 struct ath12k_base *ab = ab_pci->ab; in ath12k_mhi_check_state_bit()
479 if (!test_bit(ATH12K_MHI_INIT, &ab_pci->mhi_state)) in ath12k_mhi_check_state_bit()
484 if (test_bit(ATH12K_MHI_INIT, &ab_pci->mhi_state) && in ath12k_mhi_check_state_bit()
485 !test_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state)) in ath12k_mhi_check_state_bit()
489 if (test_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state)) in ath12k_mhi_check_state_bit()
494 if (test_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state) && in ath12k_mhi_check_state_bit()
495 !test_bit(ATH12K_MHI_SUSPEND, &ab_pci->mhi_state)) in ath12k_mhi_check_state_bit()
499 if (test_bit(ATH12K_MHI_SUSPEND, &ab_pci->mhi_state)) in ath12k_mhi_check_state_bit()
503 if (test_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state) && in ath12k_mhi_check_state_bit()
504 !test_bit(ATH12K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state)) in ath12k_mhi_check_state_bit()
516 ab_pci->mhi_state); in ath12k_mhi_check_state_bit()
521 static int ath12k_mhi_set_state(struct ath12k_pci *ab_pci, in ath12k_mhi_set_state() argument
524 struct ath12k_base *ab = ab_pci->ab; in ath12k_mhi_set_state()
527 ret = ath12k_mhi_check_state_bit(ab_pci, mhi_state); in ath12k_mhi_set_state()
536 ret = mhi_prepare_for_power_up(ab_pci->mhi_ctrl); in ath12k_mhi_set_state()
539 mhi_unprepare_after_power_down(ab_pci->mhi_ctrl); in ath12k_mhi_set_state()
543 ret = mhi_async_power_up(ab_pci->mhi_ctrl); in ath12k_mhi_set_state()
546 mhi_power_down(ab_pci->mhi_ctrl, true); in ath12k_mhi_set_state()
550 mhi_power_down(ab_pci->mhi_ctrl, false); in ath12k_mhi_set_state()
554 ret = mhi_pm_suspend(ab_pci->mhi_ctrl); in ath12k_mhi_set_state()
557 ret = mhi_pm_resume(ab_pci->mhi_ctrl); in ath12k_mhi_set_state()
560 ret = mhi_force_rddm_mode(ab_pci->mhi_ctrl); in ath12k_mhi_set_state()
572 ath12k_mhi_set_state_bit(ab_pci, mhi_state); in ath12k_mhi_set_state()
582 int ath12k_mhi_start(struct ath12k_pci *ab_pci) in ath12k_mhi_start() argument
586 ab_pci->mhi_ctrl->timeout_ms = MHI_TIMEOUT_DEFAULT_MS; in ath12k_mhi_start()
588 ret = ath12k_mhi_set_state(ab_pci, ATH12K_MHI_INIT); in ath12k_mhi_start()
592 ret = ath12k_mhi_set_state(ab_pci, ATH12K_MHI_POWER_ON); in ath12k_mhi_start()
602 void ath12k_mhi_stop(struct ath12k_pci *ab_pci) in ath12k_mhi_stop() argument
604 ath12k_mhi_set_state(ab_pci, ATH12K_MHI_POWER_OFF); in ath12k_mhi_stop()
605 ath12k_mhi_set_state(ab_pci, ATH12K_MHI_DEINIT); in ath12k_mhi_stop()
608 void ath12k_mhi_suspend(struct ath12k_pci *ab_pci) in ath12k_mhi_suspend() argument
610 ath12k_mhi_set_state(ab_pci, ATH12K_MHI_SUSPEND); in ath12k_mhi_suspend()
613 void ath12k_mhi_resume(struct ath12k_pci *ab_pci) in ath12k_mhi_resume() argument
615 ath12k_mhi_set_state(ab_pci, ATH12K_MHI_RESUME); in ath12k_mhi_resume()