#include <linux/kobject.h>
#include <linux/pci.h>
#include <linux/fs.h>
#include <linux/firmware.h>
#include <linux/pm_runtime.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <sound/asound.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/soc.h>
#include <sound/compress_driver.h>
#include <asm/platform_sst_audio.h>
#include "../sst-mfld-platform.h"
#include "sst.h"
int sst_shim_write(void __iomem *addr, int offset, int value)
{ … }
u32 sst_shim_read(void __iomem *addr, int offset)
{ … }
u64 sst_reg_read64(void __iomem *addr, int offset)
{ … }
int sst_shim_write64(void __iomem *addr, int offset, u64 value)
{ … }
u64 sst_shim_read64(void __iomem *addr, int offset)
{ … }
void sst_set_fw_state_locked(
struct intel_sst_drv *sst_drv_ctx, int sst_state)
{ … }
int sst_wait_interruptible(struct intel_sst_drv *sst_drv_ctx,
struct sst_block *block)
{ … }
int sst_wait_timeout(struct intel_sst_drv *sst_drv_ctx, struct sst_block *block)
{ … }
int sst_create_ipc_msg(struct ipc_post **arg, bool large)
{ … }
int sst_create_block_and_ipc_msg(struct ipc_post **arg, bool large,
struct intel_sst_drv *sst_drv_ctx, struct sst_block **block,
u32 msg_id, u32 drv_id)
{ … }
void sst_clean_stream(struct stream_info *stream)
{ … }
int sst_prepare_and_post_msg(struct intel_sst_drv *sst,
int task_id, int ipc_msg, int cmd_id, int pipe_id,
size_t mbox_data_len, const void *mbox_data, void **data,
bool large, bool fill_dsp, bool sync, bool response)
{ … }
int sst_pm_runtime_put(struct intel_sst_drv *sst_drv)
{ … }
void sst_fill_header_mrfld(union ipc_header_mrfld *header,
int msg, int task_id, int large, int drv_id)
{ … }
void sst_fill_header_dsp(struct ipc_dsp_hdr *dsp, int msg,
int pipe_id, int len)
{ … }
#define SST_MAX_BLOCKS …
int sst_assign_pvt_id(struct intel_sst_drv *drv)
{ … }
int sst_validate_strid(
struct intel_sst_drv *sst_drv_ctx, int str_id)
{ … }
struct stream_info *get_stream_info(
struct intel_sst_drv *sst_drv_ctx, int str_id)
{ … }
int get_stream_id_mrfld(struct intel_sst_drv *sst_drv_ctx,
u32 pipe_id)
{ … }
u32 relocate_imr_addr_mrfld(u32 base_addr)
{ … }
EXPORT_SYMBOL_GPL(…);
void sst_add_to_dispatch_list_and_post(struct intel_sst_drv *sst,
struct ipc_post *msg)
{ … }