#include <linux/clk.h>
#include <linux/device.h>
#include <linux/interconnect.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
#include "linux/soc/qcom/qcom_aoss.h"
#include "ipa.h"
#include "ipa_data.h"
#include "ipa_endpoint.h"
#include "ipa_interrupt.h"
#include "ipa_modem.h"
#include "ipa_power.h"
#define IPA_AUTOSUSPEND_DELAY …
struct ipa_power { … };
static int ipa_interconnect_init(struct ipa_power *power,
const struct ipa_interconnect_data *data)
{ … }
static void ipa_interconnect_exit(struct ipa_power *power)
{ … }
static int ipa_power_enable(struct ipa *ipa)
{ … }
static void ipa_power_disable(struct ipa *ipa)
{ … }
static int ipa_runtime_suspend(struct device *dev)
{ … }
static int ipa_runtime_resume(struct device *dev)
{ … }
static int ipa_suspend(struct device *dev)
{ … }
static int ipa_resume(struct device *dev)
{ … }
u32 ipa_core_clock_rate(struct ipa *ipa)
{ … }
static int ipa_power_retention_init(struct ipa_power *power)
{ … }
static void ipa_power_retention_exit(struct ipa_power *power)
{ … }
void ipa_power_retention(struct ipa *ipa, bool enable)
{ … }
struct ipa_power *
ipa_power_init(struct device *dev, const struct ipa_power_data *data)
{ … }
void ipa_power_exit(struct ipa_power *power)
{ … }
const struct dev_pm_ops ipa_pm_ops = …;