Lines Matching refs:hba

25 static int ufs_intel_disable_lcc(struct ufs_hba *hba)  in ufs_intel_disable_lcc()  argument
30 ufshcd_dme_get(hba, attr, &lcc_enable); in ufs_intel_disable_lcc()
32 ufshcd_disable_host_tx_lcc(hba); in ufs_intel_disable_lcc()
37 static int ufs_intel_link_startup_notify(struct ufs_hba *hba, in ufs_intel_link_startup_notify() argument
44 err = ufs_intel_disable_lcc(hba); in ufs_intel_link_startup_notify()
64 static void intel_cache_ltr(struct ufs_hba *hba) in intel_cache_ltr() argument
66 struct intel_host *host = ufshcd_get_variant(hba); in intel_cache_ltr()
68 host->active_ltr = readl(hba->mmio_base + INTEL_ACTIVELTR); in intel_cache_ltr()
69 host->idle_ltr = readl(hba->mmio_base + INTEL_IDLELTR); in intel_cache_ltr()
74 struct ufs_hba *hba = dev_get_drvdata(dev); in intel_ltr_set() local
75 struct intel_host *host = ufshcd_get_variant(hba); in intel_ltr_set()
85 ltr = readl(hba->mmio_base + INTEL_ACTIVELTR); in intel_ltr_set()
107 writel(ltr, hba->mmio_base + INTEL_ACTIVELTR); in intel_ltr_set()
108 writel(ltr, hba->mmio_base + INTEL_IDLELTR); in intel_ltr_set()
111 intel_cache_ltr(hba); in intel_ltr_set()
128 static void intel_add_debugfs(struct ufs_hba *hba) in intel_add_debugfs() argument
130 struct dentry *dir = debugfs_create_dir(dev_name(hba->dev), NULL); in intel_add_debugfs()
131 struct intel_host *host = ufshcd_get_variant(hba); in intel_add_debugfs()
133 intel_cache_ltr(hba); in intel_add_debugfs()
140 static void intel_remove_debugfs(struct ufs_hba *hba) in intel_remove_debugfs() argument
142 struct intel_host *host = ufshcd_get_variant(hba); in intel_remove_debugfs()
147 static int ufs_intel_common_init(struct ufs_hba *hba) in ufs_intel_common_init() argument
151 hba->caps |= UFSHCD_CAP_RPM_AUTOSUSPEND; in ufs_intel_common_init()
153 host = devm_kzalloc(hba->dev, sizeof(*host), GFP_KERNEL); in ufs_intel_common_init()
156 ufshcd_set_variant(hba, host); in ufs_intel_common_init()
157 intel_ltr_expose(hba->dev); in ufs_intel_common_init()
158 intel_add_debugfs(hba); in ufs_intel_common_init()
162 static void ufs_intel_common_exit(struct ufs_hba *hba) in ufs_intel_common_exit() argument
164 intel_remove_debugfs(hba); in ufs_intel_common_exit()
165 intel_ltr_hide(hba->dev); in ufs_intel_common_exit()
168 static int ufs_intel_resume(struct ufs_hba *hba, enum ufs_pm_op op) in ufs_intel_resume() argument
175 ufshcd_writel(hba, lower_32_bits(hba->utrdl_dma_addr), in ufs_intel_resume()
177 ufshcd_writel(hba, upper_32_bits(hba->utrdl_dma_addr), in ufs_intel_resume()
179 ufshcd_writel(hba, lower_32_bits(hba->utmrdl_dma_addr), in ufs_intel_resume()
181 ufshcd_writel(hba, upper_32_bits(hba->utmrdl_dma_addr), in ufs_intel_resume()
184 if (ufshcd_is_link_hibern8(hba)) { in ufs_intel_resume()
185 int ret = ufshcd_uic_hibern8_exit(hba); in ufs_intel_resume()
188 ufshcd_set_link_active(hba); in ufs_intel_resume()
190 dev_err(hba->dev, "%s: hibern8 exit failed %d\n", in ufs_intel_resume()
196 ufshcd_set_link_off(hba); in ufs_intel_resume()
203 static int ufs_intel_ehl_init(struct ufs_hba *hba) in ufs_intel_ehl_init() argument
205 hba->quirks |= UFSHCD_QUIRK_BROKEN_AUTO_HIBERN8; in ufs_intel_ehl_init()
206 return ufs_intel_common_init(hba); in ufs_intel_ehl_init()
259 struct ufs_hba *hba = dev_get_drvdata(dev); in ufshcd_pci_poweroff() local
260 int spm_lvl = hba->spm_lvl; in ufshcd_pci_poweroff()
267 hba->spm_lvl = 5; in ufshcd_pci_poweroff()
268 ret = ufshcd_system_suspend(hba); in ufshcd_pci_poweroff()
269 hba->spm_lvl = spm_lvl; in ufshcd_pci_poweroff()
306 struct ufs_hba *hba = pci_get_drvdata(pdev); in ufshcd_pci_remove() local
310 ufshcd_remove(hba); in ufshcd_pci_remove()
311 ufshcd_dealloc_host(hba); in ufshcd_pci_remove()
324 struct ufs_hba *hba; in ufshcd_pci_probe() local
344 err = ufshcd_alloc_host(&pdev->dev, &hba); in ufshcd_pci_probe()
350 hba->vops = (struct ufs_hba_variant_ops *)id->driver_data; in ufshcd_pci_probe()
352 err = ufshcd_init(hba, mmio_base, pdev->irq); in ufshcd_pci_probe()
355 ufshcd_dealloc_host(hba); in ufshcd_pci_probe()