#include <linux/firmware.h>
#include <linux/limits.h>
#include <linux/mhi.h>
#include <linux/minmax.h>
#include <linux/mod_devicetable.h>
#include <linux/overflow.h>
#include <linux/types.h>
#include <linux/workqueue.h>
#include "sahara.h"
#define SAHARA_HELLO_CMD …
#define SAHARA_HELLO_RESP_CMD …
#define SAHARA_READ_DATA_CMD …
#define SAHARA_END_OF_IMAGE_CMD …
#define SAHARA_DONE_CMD …
#define SAHARA_DONE_RESP_CMD …
#define SAHARA_RESET_CMD …
#define SAHARA_RESET_RESP_CMD …
#define SAHARA_MEM_DEBUG_CMD …
#define SAHARA_MEM_READ_CMD …
#define SAHARA_CMD_READY_CMD …
#define SAHARA_SWITCH_MODE_CMD …
#define SAHARA_EXECUTE_CMD …
#define SAHARA_EXECUTE_RESP_CMD …
#define SAHARA_EXECUTE_DATA_CMD …
#define SAHARA_MEM_DEBUG64_CMD …
#define SAHARA_MEM_READ64_CMD …
#define SAHARA_READ_DATA64_CMD …
#define SAHARA_RESET_STATE_CMD …
#define SAHARA_WRITE_DATA_CMD …
#define SAHARA_PACKET_MAX_SIZE …
#define SAHARA_TRANSFER_MAX_SIZE …
#define SAHARA_NUM_TX_BUF …
#define SAHARA_IMAGE_ID_NONE …
#define SAHARA_VERSION …
#define SAHARA_SUCCESS …
#define SAHARA_MODE_IMAGE_TX_PENDING …
#define SAHARA_MODE_IMAGE_TX_COMPLETE …
#define SAHARA_MODE_MEMORY_DEBUG …
#define SAHARA_MODE_COMMAND …
#define SAHARA_HELLO_LENGTH …
#define SAHARA_READ_DATA_LENGTH …
#define SAHARA_END_OF_IMAGE_LENGTH …
#define SAHARA_DONE_LENGTH …
#define SAHARA_RESET_LENGTH …
struct sahara_packet { … };
struct sahara_context { … };
static const char *aic100_image_table[] = …;
static int sahara_find_image(struct sahara_context *context, u32 image_id)
{ … }
static void sahara_release_image(struct sahara_context *context)
{ … }
static void sahara_send_reset(struct sahara_context *context)
{ … }
static void sahara_hello(struct sahara_context *context)
{ … }
static void sahara_read_data(struct sahara_context *context)
{ … }
static void sahara_end_of_image(struct sahara_context *context)
{ … }
static void sahara_processing(struct work_struct *work)
{ … }
static int sahara_mhi_probe(struct mhi_device *mhi_dev, const struct mhi_device_id *id)
{ … }
static void sahara_mhi_remove(struct mhi_device *mhi_dev)
{ … }
static void sahara_mhi_ul_xfer_cb(struct mhi_device *mhi_dev, struct mhi_result *mhi_result)
{ … }
static void sahara_mhi_dl_xfer_cb(struct mhi_device *mhi_dev, struct mhi_result *mhi_result)
{ … }
static const struct mhi_device_id sahara_mhi_match_table[] = …;
static struct mhi_driver sahara_mhi_driver = …;
int sahara_register(void)
{ … }
void sahara_unregister(void)
{ … }