ASoC: topology: Give more data to clients via callbacks
Give topology clients more access to the topology data by passing index, pcm, link_config and dai_driver to clients. This allows clients to fully instantiate and track topology objects. The SOF driver is the first user of these new APIs and needs them to build component topology driver and FW objects. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Этот коммит содержится в:

коммит произвёл
Mark Brown

родитель
f11a5c27f9
Коммит
81e9b0a078
@@ -1017,10 +1017,11 @@ static struct snd_soc_dai_driver skl_platform_dai[] = {
|
||||
},
|
||||
};
|
||||
|
||||
int skl_dai_load(struct snd_soc_component *cmp,
|
||||
struct snd_soc_dai_driver *pcm_dai)
|
||||
int skl_dai_load(struct snd_soc_component *cmp, int index,
|
||||
struct snd_soc_dai_driver *dai_drv,
|
||||
struct snd_soc_tplg_pcm *pcm, struct snd_soc_dai *dai)
|
||||
{
|
||||
pcm_dai->ops = &skl_pcm_dai_ops;
|
||||
dai_drv->ops = &skl_pcm_dai_ops;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -2851,7 +2851,7 @@ void skl_cleanup_resources(struct skl *skl)
|
||||
* information to the driver about module and pipeline parameters which DSP
|
||||
* FW expects like ids, resource values, formats etc
|
||||
*/
|
||||
static int skl_tplg_widget_load(struct snd_soc_component *cmpnt,
|
||||
static int skl_tplg_widget_load(struct snd_soc_component *cmpnt, int index,
|
||||
struct snd_soc_dapm_widget *w,
|
||||
struct snd_soc_tplg_dapm_widget *tplg_w)
|
||||
{
|
||||
@@ -2958,6 +2958,7 @@ static int skl_init_enum_data(struct device *dev, struct soc_enum *se,
|
||||
}
|
||||
|
||||
static int skl_tplg_control_load(struct snd_soc_component *cmpnt,
|
||||
int index,
|
||||
struct snd_kcontrol_new *kctl,
|
||||
struct snd_soc_tplg_ctl_hdr *hdr)
|
||||
{
|
||||
@@ -3446,7 +3447,7 @@ static int skl_tplg_get_manifest_data(struct snd_soc_tplg_manifest *manifest,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int skl_manifest_load(struct snd_soc_component *cmpnt,
|
||||
static int skl_manifest_load(struct snd_soc_component *cmpnt, int index,
|
||||
struct snd_soc_tplg_manifest *manifest)
|
||||
{
|
||||
struct hdac_ext_bus *ebus = snd_soc_component_get_drvdata(cmpnt);
|
||||
|
@@ -221,18 +221,9 @@ struct skl_mod_inst_map {
|
||||
u16 inst_id;
|
||||
};
|
||||
|
||||
struct skl_uuid_inst_map {
|
||||
u16 inst_id;
|
||||
u16 reserved;
|
||||
uuid_le mod_uuid;
|
||||
} __packed;
|
||||
|
||||
struct skl_kpb_params {
|
||||
u32 num_modules;
|
||||
union {
|
||||
struct skl_mod_inst_map map[0];
|
||||
struct skl_uuid_inst_map map_uuid[0];
|
||||
} u;
|
||||
struct skl_mod_inst_map map[0];
|
||||
};
|
||||
|
||||
struct skl_module_inst_id {
|
||||
@@ -469,7 +460,7 @@ int skl_dsp_set_dma_control(struct skl_sst *ctx, u32 *caps,
|
||||
u32 caps_size, u32 node_id);
|
||||
void skl_tplg_set_be_dmic_config(struct snd_soc_dai *dai,
|
||||
struct skl_pipe_params *params, int stream);
|
||||
int skl_tplg_init(struct snd_soc_component *component,
|
||||
int skl_tplg_init(struct snd_soc_platform *platform,
|
||||
struct hdac_ext_bus *ebus);
|
||||
struct skl_module_cfg *skl_tplg_fe_get_cpr_module(
|
||||
struct snd_soc_dai *dai, int stream);
|
||||
@@ -512,8 +503,7 @@ int skl_pcm_host_dma_prepare(struct device *dev,
|
||||
int skl_pcm_link_dma_prepare(struct device *dev,
|
||||
struct skl_pipe_params *params);
|
||||
|
||||
int skl_dai_load(struct snd_soc_component *cmp,
|
||||
struct snd_soc_dai_driver *pcm_dai);
|
||||
void skl_tplg_add_moduleid_in_bind_params(struct skl *skl,
|
||||
struct snd_soc_dapm_widget *w);
|
||||
int skl_dai_load(struct snd_soc_component *, int index,
|
||||
struct snd_soc_dai_driver *dai_drv,
|
||||
struct snd_soc_tplg_pcm *pcm, struct snd_soc_dai *dai);
|
||||
#endif
|
||||
|
Ссылка в новой задаче
Block a user