ASoC: SOF: move arch_ops under ops
The current structures are not well designed. We include Xtensa information from the ACPI and PCI levels, but at the Kconfig/module level everything Xtensa related is included at the sof/intel level. Move the arch_ops under ops so that Xtensa is hidden in the DSP ops, with a structure that follows the Kconfig/module partition. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20191217202231.18259-8-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
5bd216c6a6
commit
0f501c7cde
|
@ -93,7 +93,6 @@ struct sof_dev_desc {
|
|||
const char *default_fw_filename;
|
||||
|
||||
const struct snd_sof_dsp_ops *ops;
|
||||
const struct sof_arch_ops *arch_ops;
|
||||
};
|
||||
|
||||
int sof_nocodec_setup(struct device *dev,
|
||||
|
|
|
@ -111,6 +111,8 @@ const struct snd_sof_dsp_ops sof_apl_ops = {
|
|||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_PAUSE |
|
||||
SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
|
||||
|
||||
.arch_ops = &sof_xtensa_arch_ops,
|
||||
};
|
||||
EXPORT_SYMBOL_NS(sof_apl_ops, SND_SOC_SOF_INTEL_HDA_COMMON);
|
||||
|
||||
|
|
|
@ -632,6 +632,8 @@ const struct snd_sof_dsp_ops sof_bdw_ops = {
|
|||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_PAUSE |
|
||||
SNDRV_PCM_INFO_BATCH,
|
||||
|
||||
.arch_ops = &sof_xtensa_arch_ops,
|
||||
};
|
||||
EXPORT_SYMBOL_NS(sof_bdw_ops, SND_SOC_SOF_BROADWELL);
|
||||
|
||||
|
|
|
@ -618,6 +618,8 @@ const struct snd_sof_dsp_ops sof_tng_ops = {
|
|||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_PAUSE |
|
||||
SNDRV_PCM_INFO_BATCH,
|
||||
|
||||
.arch_ops = &sof_xtensa_arch_ops,
|
||||
};
|
||||
EXPORT_SYMBOL_NS(sof_tng_ops, SND_SOC_SOF_MERRIFIELD);
|
||||
|
||||
|
@ -792,6 +794,8 @@ const struct snd_sof_dsp_ops sof_byt_ops = {
|
|||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_PAUSE |
|
||||
SNDRV_PCM_INFO_BATCH,
|
||||
|
||||
.arch_ops = &sof_xtensa_arch_ops,
|
||||
};
|
||||
EXPORT_SYMBOL_NS(sof_byt_ops, SND_SOC_SOF_BAYTRAIL);
|
||||
|
||||
|
@ -865,6 +869,8 @@ const struct snd_sof_dsp_ops sof_cht_ops = {
|
|||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_PAUSE |
|
||||
SNDRV_PCM_INFO_BATCH,
|
||||
|
||||
.arch_ops = &sof_xtensa_arch_ops,
|
||||
};
|
||||
EXPORT_SYMBOL_NS(sof_cht_ops, SND_SOC_SOF_BAYTRAIL);
|
||||
|
||||
|
|
|
@ -297,6 +297,8 @@ const struct snd_sof_dsp_ops sof_cnl_ops = {
|
|||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_PAUSE |
|
||||
SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
|
||||
|
||||
.arch_ops = &sof_xtensa_arch_ops,
|
||||
};
|
||||
EXPORT_SYMBOL_NS(sof_cnl_ops, SND_SOC_SOF_INTEL_HDA_COMMON);
|
||||
|
||||
|
|
|
@ -48,7 +48,6 @@ static const struct sof_dev_desc sof_acpi_broadwell_desc = {
|
|||
.default_fw_filename = "sof-bdw.ri",
|
||||
.nocodec_tplg_filename = "sof-bdw-nocodec.tplg",
|
||||
.ops = &sof_bdw_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -67,7 +66,6 @@ static const struct sof_dev_desc sof_acpi_baytrailcr_desc = {
|
|||
.default_fw_filename = "sof-byt.ri",
|
||||
.nocodec_tplg_filename = "sof-byt-nocodec.tplg",
|
||||
.ops = &sof_byt_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
|
||||
static const struct sof_dev_desc sof_acpi_baytrail_desc = {
|
||||
|
@ -82,7 +80,6 @@ static const struct sof_dev_desc sof_acpi_baytrail_desc = {
|
|||
.default_fw_filename = "sof-byt.ri",
|
||||
.nocodec_tplg_filename = "sof-byt-nocodec.tplg",
|
||||
.ops = &sof_byt_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
|
||||
static const struct sof_dev_desc sof_acpi_cherrytrail_desc = {
|
||||
|
@ -97,7 +94,6 @@ static const struct sof_dev_desc sof_acpi_cherrytrail_desc = {
|
|||
.default_fw_filename = "sof-cht.ri",
|
||||
.nocodec_tplg_filename = "sof-cht-nocodec.tplg",
|
||||
.ops = &sof_cht_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -50,7 +50,6 @@ static const struct sof_dev_desc bxt_desc = {
|
|||
.default_fw_filename = "sof-apl.ri",
|
||||
.nocodec_tplg_filename = "sof-apl-nocodec.tplg",
|
||||
.ops = &sof_apl_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -68,7 +67,6 @@ static const struct sof_dev_desc glk_desc = {
|
|||
.default_fw_filename = "sof-glk.ri",
|
||||
.nocodec_tplg_filename = "sof-glk-nocodec.tplg",
|
||||
.ops = &sof_apl_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -96,7 +94,6 @@ static const struct sof_dev_desc tng_desc = {
|
|||
.default_fw_filename = "sof-byt.ri",
|
||||
.nocodec_tplg_filename = "sof-byt.tplg",
|
||||
.ops = &sof_tng_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -114,7 +111,6 @@ static const struct sof_dev_desc cnl_desc = {
|
|||
.default_fw_filename = "sof-cnl.ri",
|
||||
.nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
|
||||
.ops = &sof_cnl_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -132,7 +128,6 @@ static const struct sof_dev_desc cfl_desc = {
|
|||
.default_fw_filename = "sof-cfl.ri",
|
||||
.nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
|
||||
.ops = &sof_cnl_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -152,7 +147,6 @@ static const struct sof_dev_desc cml_desc = {
|
|||
.default_fw_filename = "sof-cml.ri",
|
||||
.nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
|
||||
.ops = &sof_cnl_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -170,7 +164,6 @@ static const struct sof_dev_desc icl_desc = {
|
|||
.default_fw_filename = "sof-icl.ri",
|
||||
.nocodec_tplg_filename = "sof-icl-nocodec.tplg",
|
||||
.ops = &sof_cnl_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -188,7 +181,6 @@ static const struct sof_dev_desc tgl_desc = {
|
|||
.default_fw_filename = "sof-tgl.ri",
|
||||
.nocodec_tplg_filename = "sof-tgl-nocodec.tplg",
|
||||
.ops = &sof_cnl_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -206,7 +198,6 @@ static const struct sof_dev_desc ehl_desc = {
|
|||
.default_fw_filename = "sof-ehl.ri",
|
||||
.nocodec_tplg_filename = "sof-ehl-nocodec.tplg",
|
||||
.ops = &sof_cnl_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -223,7 +214,6 @@ static const struct sof_dev_desc jsl_desc = {
|
|||
.default_tplg_path = "intel/sof-tplg",
|
||||
.nocodec_tplg_filename = "sof-jsl-nocodec.tplg",
|
||||
.ops = &sof_cnl_ops,
|
||||
.arch_ops = &sof_xtensa_arch_ops
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -217,6 +217,8 @@ struct snd_sof_dsp_ops {
|
|||
|
||||
/* ALSA HW info flags, will be stored in snd_pcm_runtime.hw.info */
|
||||
u32 hw_info;
|
||||
|
||||
const struct sof_arch_ops *arch_ops;
|
||||
};
|
||||
|
||||
/* DSP architecture specific callbacks for oops and stack dumps */
|
||||
|
@ -226,7 +228,7 @@ struct sof_arch_ops {
|
|||
u32 *stack, u32 stack_words);
|
||||
};
|
||||
|
||||
#define sof_arch_ops(sdev) ((sdev)->pdata->desc->arch_ops)
|
||||
#define sof_arch_ops(sdev) ((sdev)->pdata->desc->ops->arch_ops)
|
||||
|
||||
/* DSP device HW descriptor mapping between bus ID and ops */
|
||||
struct sof_ops_table {
|
||||
|
|
Loading…
Reference in New Issue
Block a user