#include <linux/msi.h>
#include <linux/pci.h>
#include <linux/firmware.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/ioport.h>
#include "core.h"
#include "debug.h"
#include "mhi.h"
#include "pci.h"
#include "pcic.h"
#define MHI_TIMEOUT_DEFAULT_MS …
#define RDDM_DUMP_SIZE …
#define MHI_CB_INVALID …
static const struct mhi_channel_config ath11k_mhi_channels_qca6390[] = …;
static struct mhi_event_config ath11k_mhi_events_qca6390[] = …;
static const struct mhi_controller_config ath11k_mhi_config_qca6390 = …;
static const struct mhi_channel_config ath11k_mhi_channels_qcn9074[] = …;
static struct mhi_event_config ath11k_mhi_events_qcn9074[] = …;
static const struct mhi_controller_config ath11k_mhi_config_qcn9074 = …;
void ath11k_mhi_set_mhictrl_reset(struct ath11k_base *ab)
{ … }
static void ath11k_mhi_reset_txvecdb(struct ath11k_base *ab)
{ … }
static void ath11k_mhi_reset_txvecstatus(struct ath11k_base *ab)
{ … }
static void ath11k_mhi_reset_rxvecdb(struct ath11k_base *ab)
{ … }
static void ath11k_mhi_reset_rxvecstatus(struct ath11k_base *ab)
{ … }
void ath11k_mhi_clear_vector(struct ath11k_base *ab)
{ … }
static int ath11k_mhi_get_msi(struct ath11k_pci *ab_pci)
{ … }
static int ath11k_mhi_op_runtime_get(struct mhi_controller *mhi_cntrl)
{ … }
static void ath11k_mhi_op_runtime_put(struct mhi_controller *mhi_cntrl)
{ … }
static char *ath11k_mhi_op_callback_to_str(enum mhi_callback reason)
{
switch (reason) {
case MHI_CB_IDLE:
return "MHI_CB_IDLE";
case MHI_CB_PENDING_DATA:
return "MHI_CB_PENDING_DATA";
case MHI_CB_LPM_ENTER:
return "MHI_CB_LPM_ENTER";
case MHI_CB_LPM_EXIT:
return "MHI_CB_LPM_EXIT";
case MHI_CB_EE_RDDM:
return "MHI_CB_EE_RDDM";
case MHI_CB_EE_MISSION_MODE:
return "MHI_CB_EE_MISSION_MODE";
case MHI_CB_SYS_ERROR:
return "MHI_CB_SYS_ERROR";
case MHI_CB_FATAL_ERROR:
return "MHI_CB_FATAL_ERROR";
case MHI_CB_BW_REQ:
return "MHI_CB_BW_REQ";
default:
return "UNKNOWN";
}
};
static void ath11k_mhi_op_status_cb(struct mhi_controller *mhi_cntrl,
enum mhi_callback cb)
{ … }
static int ath11k_mhi_op_read_reg(struct mhi_controller *mhi_cntrl,
void __iomem *addr,
u32 *out)
{ … }
static void ath11k_mhi_op_write_reg(struct mhi_controller *mhi_cntrl,
void __iomem *addr,
u32 val)
{ … }
static int ath11k_mhi_read_addr_from_dt(struct mhi_controller *mhi_ctrl)
{ … }
int ath11k_mhi_register(struct ath11k_pci *ab_pci)
{ … }
void ath11k_mhi_unregister(struct ath11k_pci *ab_pci)
{ … }
int ath11k_mhi_start(struct ath11k_pci *ab_pci)
{ … }
void ath11k_mhi_stop(struct ath11k_pci *ab_pci, bool is_suspend)
{ … }
int ath11k_mhi_suspend(struct ath11k_pci *ab_pci)
{ … }
int ath11k_mhi_resume(struct ath11k_pci *ab_pci)
{ … }