Lines Matching refs:hba

117 #define ufshcd_is_link_off(hba) ((hba)->uic_link_state == UIC_LINK_OFF_STATE)  argument
118 #define ufshcd_is_link_active(hba) ((hba)->uic_link_state == \ argument
120 #define ufshcd_is_link_hibern8(hba) ((hba)->uic_link_state == \ argument
122 #define ufshcd_set_link_off(hba) ((hba)->uic_link_state = UIC_LINK_OFF_STATE) argument
123 #define ufshcd_set_link_active(hba) ((hba)->uic_link_state = \ argument
125 #define ufshcd_set_link_hibern8(hba) ((hba)->uic_link_state = \ argument
285 void (*dbg_register_dump)(struct ufs_hba *hba);
538 static inline bool ufshcd_is_clkgating_allowed(struct ufs_hba *hba) in ufshcd_is_clkgating_allowed() argument
540 return hba->caps & UFSHCD_CAP_CLK_GATING; in ufshcd_is_clkgating_allowed()
542 static inline bool ufshcd_can_hibern8_during_gating(struct ufs_hba *hba) in ufshcd_can_hibern8_during_gating() argument
544 return hba->caps & UFSHCD_CAP_HIBERN8_WITH_CLK_GATING; in ufshcd_can_hibern8_during_gating()
546 static inline int ufshcd_is_clkscaling_enabled(struct ufs_hba *hba) in ufshcd_is_clkscaling_enabled() argument
548 return hba->caps & UFSHCD_CAP_CLK_SCALING; in ufshcd_is_clkscaling_enabled()
550 static inline bool ufshcd_can_autobkops_during_suspend(struct ufs_hba *hba) in ufshcd_can_autobkops_during_suspend() argument
552 return hba->caps & UFSHCD_CAP_AUTO_BKOPS_SUSPEND; in ufshcd_can_autobkops_during_suspend()
555 static inline bool ufshcd_is_intr_aggr_allowed(struct ufs_hba *hba) in ufshcd_is_intr_aggr_allowed() argument
557 if ((hba->caps & UFSHCD_CAP_INTR_AGGR) && in ufshcd_is_intr_aggr_allowed()
558 !(hba->quirks & UFSHCD_QUIRK_BROKEN_INTR_AGGR)) in ufshcd_is_intr_aggr_allowed()
564 #define ufshcd_writel(hba, val, reg) \ argument
565 writel((val), (hba)->mmio_base + (reg))
566 #define ufshcd_readl(hba, reg) \ argument
567 readl((hba)->mmio_base + (reg))
576 static inline void ufshcd_rmwl(struct ufs_hba *hba, u32 mask, u32 val, u32 reg) in ufshcd_rmwl() argument
580 tmp = ufshcd_readl(hba, reg); in ufshcd_rmwl()
583 ufshcd_writel(hba, tmp, reg); in ufshcd_rmwl()
595 static inline void ufshcd_hba_stop(struct ufs_hba *hba) in ufshcd_hba_stop() argument
597 ufshcd_writel(hba, CONTROLLER_DISABLE, REG_CONTROLLER_ENABLE); in ufshcd_hba_stop()
611 static inline void ufshcd_set_variant(struct ufs_hba *hba, void *variant) in ufshcd_set_variant() argument
613 BUG_ON(!hba); in ufshcd_set_variant()
614 hba->priv = variant; in ufshcd_set_variant()
621 static inline void *ufshcd_get_variant(struct ufs_hba *hba) in ufshcd_get_variant() argument
623 BUG_ON(!hba); in ufshcd_get_variant()
624 return hba->priv; in ufshcd_get_variant()
627 extern int ufshcd_runtime_suspend(struct ufs_hba *hba);
628 extern int ufshcd_runtime_resume(struct ufs_hba *hba);
629 extern int ufshcd_runtime_idle(struct ufs_hba *hba);
630 extern int ufshcd_system_suspend(struct ufs_hba *hba);
631 extern int ufshcd_system_resume(struct ufs_hba *hba);
632 extern int ufshcd_shutdown(struct ufs_hba *hba);
633 extern int ufshcd_dme_set_attr(struct ufs_hba *hba, u32 attr_sel,
635 extern int ufshcd_dme_get_attr(struct ufs_hba *hba, u32 attr_sel,
644 static inline int ufshcd_dme_set(struct ufs_hba *hba, u32 attr_sel, in ufshcd_dme_set() argument
647 return ufshcd_dme_set_attr(hba, attr_sel, ATTR_SET_NOR, in ufshcd_dme_set()
651 static inline int ufshcd_dme_st_set(struct ufs_hba *hba, u32 attr_sel, in ufshcd_dme_st_set() argument
654 return ufshcd_dme_set_attr(hba, attr_sel, ATTR_SET_ST, in ufshcd_dme_st_set()
658 static inline int ufshcd_dme_peer_set(struct ufs_hba *hba, u32 attr_sel, in ufshcd_dme_peer_set() argument
661 return ufshcd_dme_set_attr(hba, attr_sel, ATTR_SET_NOR, in ufshcd_dme_peer_set()
665 static inline int ufshcd_dme_peer_st_set(struct ufs_hba *hba, u32 attr_sel, in ufshcd_dme_peer_st_set() argument
668 return ufshcd_dme_set_attr(hba, attr_sel, ATTR_SET_ST, in ufshcd_dme_peer_st_set()
672 static inline int ufshcd_dme_get(struct ufs_hba *hba, in ufshcd_dme_get() argument
675 return ufshcd_dme_get_attr(hba, attr_sel, mib_val, DME_LOCAL); in ufshcd_dme_get()
678 static inline int ufshcd_dme_peer_get(struct ufs_hba *hba, in ufshcd_dme_peer_get() argument
681 return ufshcd_dme_get_attr(hba, attr_sel, mib_val, DME_PEER); in ufshcd_dme_peer_get()
684 int ufshcd_hold(struct ufs_hba *hba, bool async);
685 void ufshcd_release(struct ufs_hba *hba);
688 static inline const char *ufshcd_get_var_name(struct ufs_hba *hba) in ufshcd_get_var_name() argument
690 if (hba->vops) in ufshcd_get_var_name()
691 return hba->vops->name; in ufshcd_get_var_name()
695 static inline int ufshcd_vops_init(struct ufs_hba *hba) in ufshcd_vops_init() argument
697 if (hba->vops && hba->vops->init) in ufshcd_vops_init()
698 return hba->vops->init(hba); in ufshcd_vops_init()
703 static inline void ufshcd_vops_exit(struct ufs_hba *hba) in ufshcd_vops_exit() argument
705 if (hba->vops && hba->vops->exit) in ufshcd_vops_exit()
706 return hba->vops->exit(hba); in ufshcd_vops_exit()
709 static inline u32 ufshcd_vops_get_ufs_hci_version(struct ufs_hba *hba) in ufshcd_vops_get_ufs_hci_version() argument
711 if (hba->vops && hba->vops->get_ufs_hci_version) in ufshcd_vops_get_ufs_hci_version()
712 return hba->vops->get_ufs_hci_version(hba); in ufshcd_vops_get_ufs_hci_version()
714 return ufshcd_readl(hba, REG_UFS_VERSION); in ufshcd_vops_get_ufs_hci_version()
717 static inline int ufshcd_vops_clk_scale_notify(struct ufs_hba *hba, in ufshcd_vops_clk_scale_notify() argument
720 if (hba->vops && hba->vops->clk_scale_notify) in ufshcd_vops_clk_scale_notify()
721 return hba->vops->clk_scale_notify(hba, up, status); in ufshcd_vops_clk_scale_notify()
725 static inline int ufshcd_vops_setup_clocks(struct ufs_hba *hba, bool on) in ufshcd_vops_setup_clocks() argument
727 if (hba->vops && hba->vops->setup_clocks) in ufshcd_vops_setup_clocks()
728 return hba->vops->setup_clocks(hba, on); in ufshcd_vops_setup_clocks()
732 static inline int ufshcd_vops_setup_regulators(struct ufs_hba *hba, bool status) in ufshcd_vops_setup_regulators() argument
734 if (hba->vops && hba->vops->setup_regulators) in ufshcd_vops_setup_regulators()
735 return hba->vops->setup_regulators(hba, status); in ufshcd_vops_setup_regulators()
740 static inline int ufshcd_vops_hce_enable_notify(struct ufs_hba *hba, in ufshcd_vops_hce_enable_notify() argument
743 if (hba->vops && hba->vops->hce_enable_notify) in ufshcd_vops_hce_enable_notify()
744 return hba->vops->hce_enable_notify(hba, status); in ufshcd_vops_hce_enable_notify()
748 static inline int ufshcd_vops_link_startup_notify(struct ufs_hba *hba, in ufshcd_vops_link_startup_notify() argument
751 if (hba->vops && hba->vops->link_startup_notify) in ufshcd_vops_link_startup_notify()
752 return hba->vops->link_startup_notify(hba, status); in ufshcd_vops_link_startup_notify()
757 static inline int ufshcd_vops_pwr_change_notify(struct ufs_hba *hba, in ufshcd_vops_pwr_change_notify() argument
762 if (hba->vops && hba->vops->pwr_change_notify) in ufshcd_vops_pwr_change_notify()
763 return hba->vops->pwr_change_notify(hba, status, in ufshcd_vops_pwr_change_notify()
769 static inline int ufshcd_vops_suspend(struct ufs_hba *hba, enum ufs_pm_op op) in ufshcd_vops_suspend() argument
771 if (hba->vops && hba->vops->suspend) in ufshcd_vops_suspend()
772 return hba->vops->suspend(hba, op); in ufshcd_vops_suspend()
777 static inline int ufshcd_vops_resume(struct ufs_hba *hba, enum ufs_pm_op op) in ufshcd_vops_resume() argument
779 if (hba->vops && hba->vops->resume) in ufshcd_vops_resume()
780 return hba->vops->resume(hba, op); in ufshcd_vops_resume()
785 static inline void ufshcd_vops_dbg_register_dump(struct ufs_hba *hba) in ufshcd_vops_dbg_register_dump() argument
787 if (hba->vops && hba->vops->dbg_register_dump) in ufshcd_vops_dbg_register_dump()
788 hba->vops->dbg_register_dump(hba); in ufshcd_vops_dbg_register_dump()