Lines Matching full:ipa
15 #include "ipa.h"
23 * DOC: IPA Power Management
25 * The IPA hardware is enabled when the IPA core clock and all the
38 * struct ipa_power - IPA power management information
39 * @dev: IPA device pointer
40 * @core: IPA core clock
53 /* Initialize interconnects required for IPA operation */
94 /* Enable IPA power, enabling interconnects and the core clock */
95 static int ipa_power_enable(struct ipa *ipa) in ipa_power_enable() argument
97 struct ipa_power *power = ipa->power; in ipa_power_enable()
115 static void ipa_power_disable(struct ipa *ipa) in ipa_power_disable() argument
117 struct ipa_power *power = ipa->power; in ipa_power_disable()
126 struct ipa *ipa = dev_get_drvdata(dev); in ipa_runtime_suspend() local
129 if (ipa->setup_complete) { in ipa_runtime_suspend()
130 ipa_endpoint_suspend(ipa); in ipa_runtime_suspend()
131 gsi_suspend(&ipa->gsi); in ipa_runtime_suspend()
134 ipa_power_disable(ipa); in ipa_runtime_suspend()
141 struct ipa *ipa = dev_get_drvdata(dev); in ipa_runtime_resume() local
144 ret = ipa_power_enable(ipa); in ipa_runtime_resume()
149 if (ipa->setup_complete) { in ipa_runtime_resume()
150 gsi_resume(&ipa->gsi); in ipa_runtime_resume()
151 ipa_endpoint_resume(ipa); in ipa_runtime_resume()
159 struct ipa *ipa = dev_get_drvdata(dev); in ipa_suspend() local
167 * irq wake. If wakeup is enabled for the IPA then the IRQ in ipa_suspend()
170 ipa_interrupt_irq_disable(ipa); in ipa_suspend()
177 struct ipa *ipa = dev_get_drvdata(dev); in ipa_resume() local
186 ipa_interrupt_irq_enable(ipa); in ipa_resume()
191 /* Return the current IPA core clock rate */
192 u32 ipa_core_clock_rate(struct ipa *ipa) in ipa_core_clock_rate() argument
194 return ipa->power ? (u32)clk_get_rate(ipa->power->core) : 0; in ipa_core_clock_rate()
220 void ipa_power_retention(struct ipa *ipa, bool enable) in ipa_power_retention() argument
223 struct ipa_power *power = ipa->power; in ipa_power_retention()
235 /* Initialize IPA power management */