mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-06 05:06:29 +00:00
firmware: cs_dsp: Introduce no_core_startstop for self-booting DSPs
There are devices containing Halo Core DSPs that self-boot, cs_dsp is used to manage the running firmware but the host does not have direct control over starting and stopping the DSP and so cs_dsp should consider the DSP to be always running. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230320112245.115720-2-rf@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
446967a46d
commit
7062e1c727
@ -301,6 +301,7 @@ struct cs_dsp_ops {
|
||||
static const struct cs_dsp_ops cs_dsp_adsp1_ops;
|
||||
static const struct cs_dsp_ops cs_dsp_adsp2_ops[];
|
||||
static const struct cs_dsp_ops cs_dsp_halo_ops;
|
||||
static const struct cs_dsp_ops cs_dsp_halo_ao_ops;
|
||||
|
||||
struct cs_dsp_buf {
|
||||
struct list_head list;
|
||||
@ -2821,7 +2822,10 @@ EXPORT_SYMBOL_NS_GPL(cs_dsp_adsp2_init, FW_CS_DSP);
|
||||
*/
|
||||
int cs_dsp_halo_init(struct cs_dsp *dsp)
|
||||
{
|
||||
dsp->ops = &cs_dsp_halo_ops;
|
||||
if (dsp->no_core_startstop)
|
||||
dsp->ops = &cs_dsp_halo_ao_ops;
|
||||
else
|
||||
dsp->ops = &cs_dsp_halo_ops;
|
||||
|
||||
return cs_dsp_common_init(dsp);
|
||||
}
|
||||
@ -3187,6 +3191,14 @@ static const struct cs_dsp_ops cs_dsp_halo_ops = {
|
||||
.stop_core = cs_dsp_halo_stop_core,
|
||||
};
|
||||
|
||||
static const struct cs_dsp_ops cs_dsp_halo_ao_ops = {
|
||||
.parse_sizes = cs_dsp_adsp2_parse_sizes,
|
||||
.validate_version = cs_dsp_halo_validate_version,
|
||||
.setup_algs = cs_dsp_halo_setup_algs,
|
||||
.region_to_reg = cs_dsp_halo_region_to_reg,
|
||||
.show_fw_status = cs_dsp_halo_show_fw_status,
|
||||
};
|
||||
|
||||
/**
|
||||
* cs_dsp_chunk_write() - Format data to a DSP memory chunk
|
||||
* @ch: Pointer to the chunk structure
|
||||
|
@ -156,6 +156,7 @@ struct cs_dsp {
|
||||
unsigned int sysclk_reg;
|
||||
unsigned int sysclk_mask;
|
||||
unsigned int sysclk_shift;
|
||||
bool no_core_startstop;
|
||||
|
||||
struct list_head alg_regions;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user