|
|
|
@ -369,7 +369,7 @@ const char *cs_dsp_mem_region_name(unsigned int type)
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_mem_region_name);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_mem_region_name, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_FS
|
|
|
|
|
static void cs_dsp_debugfs_save_wmfwname(struct cs_dsp *dsp, const char *s)
|
|
|
|
@ -480,7 +480,7 @@ void cs_dsp_init_debugfs(struct cs_dsp *dsp, struct dentry *debugfs_root)
|
|
|
|
|
|
|
|
|
|
dsp->debugfs_root = root;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_init_debugfs);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_init_debugfs, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_cleanup_debugfs() - Removes DSP representation from debugfs
|
|
|
|
@ -492,17 +492,17 @@ void cs_dsp_cleanup_debugfs(struct cs_dsp *dsp)
|
|
|
|
|
debugfs_remove_recursive(dsp->debugfs_root);
|
|
|
|
|
dsp->debugfs_root = NULL;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_cleanup_debugfs);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_cleanup_debugfs, FW_CS_DSP);
|
|
|
|
|
#else
|
|
|
|
|
void cs_dsp_init_debugfs(struct cs_dsp *dsp, struct dentry *debugfs_root)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_init_debugfs);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_init_debugfs, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
void cs_dsp_cleanup_debugfs(struct cs_dsp *dsp)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_cleanup_debugfs);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_cleanup_debugfs, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static inline void cs_dsp_debugfs_save_wmfwname(struct cs_dsp *dsp,
|
|
|
|
|
const char *s)
|
|
|
|
@ -710,7 +710,7 @@ int cs_dsp_coeff_write_acked_control(struct cs_dsp_coeff_ctl *ctl, unsigned int
|
|
|
|
|
|
|
|
|
|
return -ETIMEDOUT;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_coeff_write_acked_control);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_coeff_write_acked_control, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static int cs_dsp_coeff_write_ctrl_raw(struct cs_dsp_coeff_ctl *ctl,
|
|
|
|
|
unsigned int off, const void *buf, size_t len)
|
|
|
|
@ -785,7 +785,7 @@ int cs_dsp_coeff_write_ctrl(struct cs_dsp_coeff_ctl *ctl,
|
|
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_coeff_write_ctrl);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_coeff_write_ctrl, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static int cs_dsp_coeff_read_ctrl_raw(struct cs_dsp_coeff_ctl *ctl,
|
|
|
|
|
unsigned int off, void *buf, size_t len)
|
|
|
|
@ -857,7 +857,7 @@ int cs_dsp_coeff_read_ctrl(struct cs_dsp_coeff_ctl *ctl,
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_coeff_read_ctrl);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_coeff_read_ctrl, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static int cs_dsp_coeff_init_control_caches(struct cs_dsp *dsp)
|
|
|
|
|
{
|
|
|
|
@ -1500,7 +1500,7 @@ struct cs_dsp_coeff_ctl *cs_dsp_get_ctl(struct cs_dsp *dsp, const char *name, in
|
|
|
|
|
|
|
|
|
|
return rslt;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_get_ctl);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_get_ctl, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static void cs_dsp_ctl_fixup_base(struct cs_dsp *dsp,
|
|
|
|
|
const struct cs_dsp_alg_region *alg_region)
|
|
|
|
@ -1590,7 +1590,7 @@ struct cs_dsp_alg_region *cs_dsp_find_alg_region(struct cs_dsp *dsp,
|
|
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_find_alg_region);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_find_alg_region, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static struct cs_dsp_alg_region *cs_dsp_create_region(struct cs_dsp *dsp,
|
|
|
|
|
int type, __be32 id,
|
|
|
|
@ -2224,7 +2224,7 @@ int cs_dsp_adsp1_init(struct cs_dsp *dsp)
|
|
|
|
|
|
|
|
|
|
return cs_dsp_common_init(dsp);
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_adsp1_init);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_adsp1_init, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_adsp1_power_up() - Load and start the named firmware
|
|
|
|
@ -2316,7 +2316,7 @@ err_mutex:
|
|
|
|
|
mutex_unlock(&dsp->pwr_lock);
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_adsp1_power_up);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_adsp1_power_up, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_adsp1_power_down() - Halts the DSP
|
|
|
|
@ -2348,7 +2348,7 @@ void cs_dsp_adsp1_power_down(struct cs_dsp *dsp)
|
|
|
|
|
|
|
|
|
|
mutex_unlock(&dsp->pwr_lock);
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_adsp1_power_down);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_adsp1_power_down, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static int cs_dsp_adsp2v2_enable_core(struct cs_dsp *dsp)
|
|
|
|
|
{
|
|
|
|
@ -2500,7 +2500,7 @@ int cs_dsp_set_dspclk(struct cs_dsp *dsp, unsigned int freq)
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_set_dspclk);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_set_dspclk, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static void cs_dsp_stop_watchdog(struct cs_dsp *dsp)
|
|
|
|
|
{
|
|
|
|
@ -2590,7 +2590,7 @@ err_mutex:
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_power_up);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_power_up, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_power_down() - Powers-down the DSP
|
|
|
|
@ -2624,7 +2624,7 @@ void cs_dsp_power_down(struct cs_dsp *dsp)
|
|
|
|
|
|
|
|
|
|
cs_dsp_dbg(dsp, "Shutdown complete\n");
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_power_down);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_power_down, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static int cs_dsp_adsp2_start_core(struct cs_dsp *dsp)
|
|
|
|
|
{
|
|
|
|
@ -2710,7 +2710,7 @@ err:
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_run);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_run, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_stop() - Stops the firmware
|
|
|
|
@ -2749,7 +2749,7 @@ void cs_dsp_stop(struct cs_dsp *dsp)
|
|
|
|
|
|
|
|
|
|
cs_dsp_dbg(dsp, "Execution stopped\n");
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_stop);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_stop, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static int cs_dsp_halo_start_core(struct cs_dsp *dsp)
|
|
|
|
|
{
|
|
|
|
@ -2811,7 +2811,7 @@ int cs_dsp_adsp2_init(struct cs_dsp *dsp)
|
|
|
|
|
|
|
|
|
|
return cs_dsp_common_init(dsp);
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_adsp2_init);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_adsp2_init, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_halo_init() - Initialise a cs_dsp structure representing a HALO Core DSP
|
|
|
|
@ -2825,7 +2825,7 @@ int cs_dsp_halo_init(struct cs_dsp *dsp)
|
|
|
|
|
|
|
|
|
|
return cs_dsp_common_init(dsp);
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_halo_init);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_halo_init, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_remove() - Clean a cs_dsp before deletion
|
|
|
|
@ -2845,7 +2845,7 @@ void cs_dsp_remove(struct cs_dsp *dsp)
|
|
|
|
|
cs_dsp_free_ctl_blk(ctl);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_remove);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_remove, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_read_raw_data_block() - Reads a block of data from DSP memory
|
|
|
|
@ -2882,7 +2882,7 @@ int cs_dsp_read_raw_data_block(struct cs_dsp *dsp, int mem_type, unsigned int me
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_read_raw_data_block);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_read_raw_data_block, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_read_data_word() - Reads a word from DSP memory
|
|
|
|
@ -2906,7 +2906,7 @@ int cs_dsp_read_data_word(struct cs_dsp *dsp, int mem_type, unsigned int mem_add
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_read_data_word);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_read_data_word, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_write_data_word() - Writes a word to DSP memory
|
|
|
|
@ -2932,7 +2932,7 @@ int cs_dsp_write_data_word(struct cs_dsp *dsp, int mem_type, unsigned int mem_ad
|
|
|
|
|
|
|
|
|
|
return regmap_raw_write(dsp->regmap, reg, &val, sizeof(val));
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_write_data_word);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_write_data_word, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_remove_padding() - Convert unpacked words to packed bytes
|
|
|
|
@ -2956,7 +2956,7 @@ void cs_dsp_remove_padding(u32 *buf, int nwords)
|
|
|
|
|
*pack_out++ = (u8)(word >> 16);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_remove_padding);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_remove_padding, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_adsp2_bus_error() - Handle a DSP bus error interrupt
|
|
|
|
@ -3026,7 +3026,7 @@ void cs_dsp_adsp2_bus_error(struct cs_dsp *dsp)
|
|
|
|
|
error:
|
|
|
|
|
mutex_unlock(&dsp->pwr_lock);
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_adsp2_bus_error);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_adsp2_bus_error, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_halo_bus_error() - Handle a DSP bus error interrupt
|
|
|
|
@ -3086,7 +3086,7 @@ void cs_dsp_halo_bus_error(struct cs_dsp *dsp)
|
|
|
|
|
exit_unlock:
|
|
|
|
|
mutex_unlock(&dsp->pwr_lock);
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_halo_bus_error);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_halo_bus_error, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_halo_wdt_expire() - Handle DSP watchdog expiry
|
|
|
|
@ -3106,7 +3106,7 @@ void cs_dsp_halo_wdt_expire(struct cs_dsp *dsp)
|
|
|
|
|
|
|
|
|
|
mutex_unlock(&dsp->pwr_lock);
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_halo_wdt_expire);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_halo_wdt_expire, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
static const struct cs_dsp_ops cs_dsp_adsp1_ops = {
|
|
|
|
|
.validate_version = cs_dsp_validate_version,
|
|
|
|
@ -3228,7 +3228,7 @@ int cs_dsp_chunk_write(struct cs_dsp_chunk *ch, int nbits, u32 val)
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_chunk_write);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_chunk_write, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_chunk_flush() - Pad remaining data with zero and commit to chunk
|
|
|
|
@ -3247,7 +3247,7 @@ int cs_dsp_chunk_flush(struct cs_dsp_chunk *ch)
|
|
|
|
|
|
|
|
|
|
return cs_dsp_chunk_write(ch, CS_DSP_DATA_WORD_BITS - ch->cachebits, 0);
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_chunk_flush);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_chunk_flush, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* cs_dsp_chunk_read() - Parse data from a DSP memory chunk
|
|
|
|
@ -3289,7 +3289,7 @@ int cs_dsp_chunk_read(struct cs_dsp_chunk *ch, int nbits)
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
EXPORT_SYMBOL_GPL(cs_dsp_chunk_read);
|
|
|
|
|
EXPORT_SYMBOL_NS_GPL(cs_dsp_chunk_read, FW_CS_DSP);
|
|
|
|
|
|
|
|
|
|
MODULE_DESCRIPTION("Cirrus Logic DSP Support");
|
|
|
|
|
MODULE_AUTHOR("Simon Trimmer <simont@opensource.cirrus.com>");
|
|
|
|
|