#include <linux/delay.h>
#include <linux/device.h>
#include <linux/dma-direction.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/list.h>
#include <linux/mhi.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/wait.h>
#include "internal.h"
#include "trace.h"
static const struct mhi_pm_transitions dev_state_transitions[] = …;
enum mhi_pm_state __must_check mhi_tryset_pm_state(struct mhi_controller *mhi_cntrl,
enum mhi_pm_state state)
{ … }
void mhi_set_mhi_state(struct mhi_controller *mhi_cntrl, enum mhi_state state)
{ … }
static void mhi_toggle_dev_wake_nop(struct mhi_controller *mhi_cntrl)
{ … }
static void mhi_toggle_dev_wake(struct mhi_controller *mhi_cntrl)
{ … }
int mhi_ready_state_transition(struct mhi_controller *mhi_cntrl)
{ … }
int mhi_pm_m0_transition(struct mhi_controller *mhi_cntrl)
{ … }
void mhi_pm_m1_transition(struct mhi_controller *mhi_cntrl)
{ … }
int mhi_pm_m3_transition(struct mhi_controller *mhi_cntrl)
{ … }
static int mhi_pm_mission_mode_transition(struct mhi_controller *mhi_cntrl)
{ … }
static void mhi_pm_disable_transition(struct mhi_controller *mhi_cntrl,
bool destroy_device)
{ … }
static void mhi_pm_sys_error_transition(struct mhi_controller *mhi_cntrl)
{ … }
int mhi_queue_state_transition(struct mhi_controller *mhi_cntrl,
enum dev_st_transition state)
{ … }
void mhi_pm_sys_err_handler(struct mhi_controller *mhi_cntrl)
{ … }
void mhi_pm_st_worker(struct work_struct *work)
{ … }
int mhi_pm_suspend(struct mhi_controller *mhi_cntrl)
{ … }
EXPORT_SYMBOL_GPL(…);
static int __mhi_pm_resume(struct mhi_controller *mhi_cntrl, bool force)
{ … }
int mhi_pm_resume(struct mhi_controller *mhi_cntrl)
{ … }
EXPORT_SYMBOL_GPL(…);
int mhi_pm_resume_force(struct mhi_controller *mhi_cntrl)
{ … }
EXPORT_SYMBOL_GPL(…);
int __mhi_device_get_sync(struct mhi_controller *mhi_cntrl)
{ … }
static void mhi_assert_dev_wake(struct mhi_controller *mhi_cntrl, bool force)
{ … }
static void mhi_deassert_dev_wake(struct mhi_controller *mhi_cntrl,
bool override)
{ … }
int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
{ … }
EXPORT_SYMBOL_GPL(…);
static void __mhi_power_down(struct mhi_controller *mhi_cntrl, bool graceful,
bool destroy_device)
{ … }
void mhi_power_down(struct mhi_controller *mhi_cntrl, bool graceful)
{ … }
EXPORT_SYMBOL_GPL(…);
void mhi_power_down_keep_dev(struct mhi_controller *mhi_cntrl,
bool graceful)
{ … }
EXPORT_SYMBOL_GPL(…);
int mhi_sync_power_up(struct mhi_controller *mhi_cntrl)
{ … }
EXPORT_SYMBOL(…);
int mhi_force_rddm_mode(struct mhi_controller *mhi_cntrl)
{ … }
EXPORT_SYMBOL_GPL(…);
void mhi_device_get(struct mhi_device *mhi_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
int mhi_device_get_sync(struct mhi_device *mhi_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
void mhi_device_put(struct mhi_device *mhi_dev)
{ … }
EXPORT_SYMBOL_GPL(…);