summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
fd18110)
Module initialization parameter data can be set by
- INIT_INSTANCE IPC by using the default value
- SET_PARAMS immediately after INIT_INSTANCE
- SET_PARAMS data from kcontrol values set
this patch add param type to identify the parameters
has to be sent to DSP.
Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
struct skl_specific_cfg *sp_cfg;
if (mconfig->formats_config.caps_size > 0 &&
struct skl_specific_cfg *sp_cfg;
if (mconfig->formats_config.caps_size > 0 &&
- mconfig->formats_config.set_params) {
+ mconfig->formats_config.set_params == SKL_PARAM_SET) {
sp_cfg = &mconfig->formats_config;
ret = skl_set_module_params(ctx, sp_cfg->caps,
sp_cfg->caps_size,
sp_cfg = &mconfig->formats_config;
ret = skl_set_module_params(ctx, sp_cfg->caps,
sp_cfg->caps_size,
sb = (void *) k->private_value;
bc = (struct skl_algo_data *)sb->dobj.private;
sb = (void *) k->private_value;
bc = (struct skl_algo_data *)sb->dobj.private;
+ if (bc->set_params == SKL_PARAM_SET) {
ret = skl_set_module_params(ctx,
(u32 *)bc->params, bc->max,
bc->param_id, mconfig);
ret = skl_set_module_params(ctx,
(u32 *)bc->params, bc->max,
bc->param_id, mconfig);
sb = (struct soc_bytes_ext *)k->private_value;
bc = (struct skl_algo_data *)sb->dobj.private;
sb = (struct soc_bytes_ext *)k->private_value;
bc = (struct skl_algo_data *)sb->dobj.private;
+ if (bc->set_params != SKL_PARAM_INIT)
continue;
mconfig->formats_config.caps = (u32 *)&bc->params;
continue;
mconfig->formats_config.caps = (u32 *)&bc->params;
};
struct skl_specific_cfg {
};
struct skl_specific_cfg {
u32 param_id;
u32 caps_size;
u32 *caps;
u32 param_id;
u32 caps_size;
u32 *caps;
struct skl_algo_data {
u32 param_id;
struct skl_algo_data {
u32 param_id;
u32 max;
char *params;
};
u32 max;
char *params;
};
SKL_PIN_TYPE_HETEROGENEOUS,
};
SKL_PIN_TYPE_HETEROGENEOUS,
};
+enum skl_module_param_type {
+ SKL_PARAM_DEFAULT = 0,
+ SKL_PARAM_INIT,
+ SKL_PARAM_SET
+};
+
struct skl_dfw_module_pin {
u16 module_id;
u16 instance_id;
struct skl_dfw_module_pin {
u16 module_id;
u16 instance_id;
} __packed;
struct skl_dfw_module_caps {
} __packed;
struct skl_dfw_module_caps {
- u32 set_params:1;
- u32 rsvd:31;
+ u32 set_params:2;
+ u32 rsvd:30;
u32 param_id;
u32 caps_size;
u32 caps[HDA_SST_CFG_MAX];
u32 param_id;
u32 caps_size;
u32 caps[HDA_SST_CFG_MAX];
} __packed;
struct skl_dfw_algo_data {
} __packed;
struct skl_dfw_algo_data {
- u32 set_params:1;
- u32 rsvd:31;
- u32 max;
+ u32 set_params:2;
+ u32 rsvd:30;
char params[0];
} __packed;
char params[0];
} __packed;