Lines Matching refs:clk_gating
615 dev_err(hba->dev, "Clk gate=%d\n", hba->clk_gating.state); in ufshcd_print_host_state()
1689 clk_gating.ungate_work); in ufshcd_ungate_work()
1691 cancel_delayed_work_sync(&hba->clk_gating.gate_work); in ufshcd_ungate_work()
1694 if (hba->clk_gating.state == CLKS_ON) { in ufshcd_ungate_work()
1708 hba->clk_gating.is_suspended = true; in ufshcd_ungate_work()
1717 hba->clk_gating.is_suspended = false; in ufshcd_ungate_work()
1732 !hba->clk_gating.is_initialized) in ufshcd_hold()
1735 hba->clk_gating.active_reqs++; in ufshcd_hold()
1738 switch (hba->clk_gating.state) { in ufshcd_hold()
1751 flush_result = flush_work(&hba->clk_gating.ungate_work); in ufshcd_hold()
1752 if (hba->clk_gating.is_suspended && !flush_result) in ufshcd_hold()
1759 if (cancel_delayed_work(&hba->clk_gating.gate_work)) { in ufshcd_hold()
1760 hba->clk_gating.state = CLKS_ON; in ufshcd_hold()
1762 hba->clk_gating.state); in ufshcd_hold()
1772 hba->clk_gating.state = REQ_CLKS_ON; in ufshcd_hold()
1774 hba->clk_gating.state); in ufshcd_hold()
1775 queue_work(hba->clk_gating.clk_gating_workq, in ufshcd_hold()
1776 &hba->clk_gating.ungate_work); in ufshcd_hold()
1784 flush_work(&hba->clk_gating.ungate_work); in ufshcd_hold()
1790 __func__, hba->clk_gating.state); in ufshcd_hold()
1800 clk_gating.gate_work.work); in ufshcd_gate_work()
1811 if (hba->clk_gating.is_suspended || in ufshcd_gate_work()
1812 (hba->clk_gating.state != REQ_CLKS_OFF)) { in ufshcd_gate_work()
1813 hba->clk_gating.state = CLKS_ON; in ufshcd_gate_work()
1815 hba->clk_gating.state); in ufshcd_gate_work()
1819 if (hba->clk_gating.active_reqs in ufshcd_gate_work()
1831 hba->clk_gating.state = CLKS_ON; in ufshcd_gate_work()
1835 hba->clk_gating.state); in ufshcd_gate_work()
1857 if (hba->clk_gating.state == REQ_CLKS_OFF) { in ufshcd_gate_work()
1858 hba->clk_gating.state = CLKS_OFF; in ufshcd_gate_work()
1860 hba->clk_gating.state); in ufshcd_gate_work()
1874 hba->clk_gating.active_reqs--; in __ufshcd_release()
1876 if (hba->clk_gating.active_reqs || hba->clk_gating.is_suspended || in __ufshcd_release()
1878 hba->outstanding_tasks || !hba->clk_gating.is_initialized || in __ufshcd_release()
1880 hba->clk_gating.state == CLKS_OFF) in __ufshcd_release()
1883 hba->clk_gating.state = REQ_CLKS_OFF; in __ufshcd_release()
1884 trace_ufshcd_clk_gating(dev_name(hba->dev), hba->clk_gating.state); in __ufshcd_release()
1885 queue_delayed_work(hba->clk_gating.clk_gating_workq, in __ufshcd_release()
1886 &hba->clk_gating.gate_work, in __ufshcd_release()
1887 msecs_to_jiffies(hba->clk_gating.delay_ms)); in __ufshcd_release()
1905 return sysfs_emit(buf, "%lu\n", hba->clk_gating.delay_ms); in ufshcd_clkgate_delay_show()
1914 hba->clk_gating.delay_ms = value; in ufshcd_clkgate_delay_set()
1936 return sysfs_emit(buf, "%d\n", hba->clk_gating.is_enabled); in ufshcd_clkgate_enable_show()
1952 if (value == hba->clk_gating.is_enabled) in ufshcd_clkgate_enable_store()
1958 hba->clk_gating.active_reqs++; in ufshcd_clkgate_enable_store()
1960 hba->clk_gating.is_enabled = value; in ufshcd_clkgate_enable_store()
1968 hba->clk_gating.delay_attr.show = ufshcd_clkgate_delay_show; in ufshcd_init_clk_gating_sysfs()
1969 hba->clk_gating.delay_attr.store = ufshcd_clkgate_delay_store; in ufshcd_init_clk_gating_sysfs()
1970 sysfs_attr_init(&hba->clk_gating.delay_attr.attr); in ufshcd_init_clk_gating_sysfs()
1971 hba->clk_gating.delay_attr.attr.name = "clkgate_delay_ms"; in ufshcd_init_clk_gating_sysfs()
1972 hba->clk_gating.delay_attr.attr.mode = 0644; in ufshcd_init_clk_gating_sysfs()
1973 if (device_create_file(hba->dev, &hba->clk_gating.delay_attr)) in ufshcd_init_clk_gating_sysfs()
1976 hba->clk_gating.enable_attr.show = ufshcd_clkgate_enable_show; in ufshcd_init_clk_gating_sysfs()
1977 hba->clk_gating.enable_attr.store = ufshcd_clkgate_enable_store; in ufshcd_init_clk_gating_sysfs()
1978 sysfs_attr_init(&hba->clk_gating.enable_attr.attr); in ufshcd_init_clk_gating_sysfs()
1979 hba->clk_gating.enable_attr.attr.name = "clkgate_enable"; in ufshcd_init_clk_gating_sysfs()
1980 hba->clk_gating.enable_attr.attr.mode = 0644; in ufshcd_init_clk_gating_sysfs()
1981 if (device_create_file(hba->dev, &hba->clk_gating.enable_attr)) in ufshcd_init_clk_gating_sysfs()
1987 if (hba->clk_gating.delay_attr.attr.name) in ufshcd_remove_clk_gating_sysfs()
1988 device_remove_file(hba->dev, &hba->clk_gating.delay_attr); in ufshcd_remove_clk_gating_sysfs()
1989 if (hba->clk_gating.enable_attr.attr.name) in ufshcd_remove_clk_gating_sysfs()
1990 device_remove_file(hba->dev, &hba->clk_gating.enable_attr); in ufshcd_remove_clk_gating_sysfs()
2000 hba->clk_gating.state = CLKS_ON; in ufshcd_init_clk_gating()
2002 hba->clk_gating.delay_ms = 150; in ufshcd_init_clk_gating()
2003 INIT_DELAYED_WORK(&hba->clk_gating.gate_work, ufshcd_gate_work); in ufshcd_init_clk_gating()
2004 INIT_WORK(&hba->clk_gating.ungate_work, ufshcd_ungate_work); in ufshcd_init_clk_gating()
2008 hba->clk_gating.clk_gating_workq = alloc_ordered_workqueue(wq_name, in ufshcd_init_clk_gating()
2013 hba->clk_gating.is_enabled = true; in ufshcd_init_clk_gating()
2014 hba->clk_gating.is_initialized = true; in ufshcd_init_clk_gating()
2019 if (!hba->clk_gating.is_initialized) in ufshcd_exit_clk_gating()
2026 hba->clk_gating.is_initialized = false; in ufshcd_exit_clk_gating()
2029 destroy_workqueue(hba->clk_gating.clk_gating_workq); in ufshcd_exit_clk_gating()
9093 hba->clk_gating.state = CLKS_ON; in ufshcd_setup_clocks()
9095 hba->clk_gating.state); in ufshcd_setup_clocks()
9522 hba->clk_gating.is_suspended = true; in __ufshcd_wl_suspend()
9668 hba->clk_gating.is_suspended = false; in __ufshcd_wl_suspend()
9760 hba->clk_gating.is_suspended = false; in __ufshcd_wl_resume()
9891 hba->clk_gating.state = CLKS_OFF; in ufshcd_suspend()
9893 hba->clk_gating.state); in ufshcd_suspend()