#include <linux/module.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/uuid.h>
#include "../common/sst-dsp.h"
#include "../common/sst-dsp-priv.h"
#include "../common/sst-ipc.h"
#include "skl.h"
#define SKL_BASEFW_TIMEOUT …
#define SKL_INIT_TIMEOUT …
#define SKL_ADSP_SRAM0_BASE …
#define SKL_ADSP_FW_STATUS …
#define SKL_ADSP_ERROR_CODE …
#define SKL_NUM_MODULES …
static bool skl_check_fw_status(struct sst_dsp *ctx, u32 status)
{ … }
static int skl_transfer_firmware(struct sst_dsp *ctx,
const void *basefw, u32 base_fw_size)
{ … }
#define SKL_ADSP_FW_BIN_HDR_OFFSET …
static int skl_load_base_firmware(struct sst_dsp *ctx)
{ … }
static int skl_set_dsp_D0(struct sst_dsp *ctx, unsigned int core_id)
{ … }
static int skl_set_dsp_D3(struct sst_dsp *ctx, unsigned int core_id)
{ … }
static unsigned int skl_get_errorcode(struct sst_dsp *ctx)
{ … }
static int skl_get_module(struct sst_dsp *ctx, u16 mod_id)
{ … }
static int skl_put_module(struct sst_dsp *ctx, u16 mod_id)
{ … }
static struct skl_module_table *skl_fill_module_table(struct sst_dsp *ctx,
char *mod_name, int mod_id)
{ … }
static struct skl_module_table *skl_module_get_from_id(
struct sst_dsp *ctx, u16 mod_id)
{ … }
static int skl_transfer_module(struct sst_dsp *ctx, const void *data,
u32 size, u16 mod_id, u8 table_id, bool is_module)
{ … }
static int
skl_load_library(struct sst_dsp *ctx, struct skl_lib_info *linfo, int lib_count)
{ … }
static int skl_load_module(struct sst_dsp *ctx, u16 mod_id, u8 *guid)
{ … }
static int skl_unload_module(struct sst_dsp *ctx, u16 mod_id)
{ … }
void skl_clear_module_cnt(struct sst_dsp *ctx)
{ … }
EXPORT_SYMBOL_GPL(…);
static void skl_clear_module_table(struct sst_dsp *ctx)
{ … }
static const struct skl_dsp_fw_ops skl_fw_ops = …;
static struct sst_ops skl_ops = …;
static struct sst_dsp_device skl_dev = …;
int skl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
const char *fw_name, struct skl_dsp_loader_ops dsp_ops,
struct skl_dev **dsp)
{ … }
EXPORT_SYMBOL_GPL(…);
int skl_sst_init_fw(struct device *dev, struct skl_dev *skl)
{ … }
EXPORT_SYMBOL_GPL(…);
void skl_sst_dsp_cleanup(struct device *dev, struct skl_dev *skl)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;