Re: [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization

From: Takashi Iwai
Date: Thu Aug 21 2025 - 03:20:43 EST


On Wed, 20 Aug 2025 10:21:23 +0200,
Shenghao Ding wrote:
>
> Optimize the time consumption of profile switching, init_profile saves
> the common settings of different profiles, such as the dsp coefficients,
> etc, which can greatly reduce the profile switching time comsumption and
> remove the repetitive settings.
>
> Signed-off-by: Shenghao Ding <shenghao-ding@xxxxxx>
> ---
> sound/hda/codecs/side-codecs/tas2781_hda_i2c.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c b/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c
> index 318f8c58ae61..97c33fee9660 100644
> --- a/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c
> +++ b/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c
> @@ -477,6 +477,12 @@ static void tasdevice_dspfw_init(void *context)
> if (tas_priv->fmw->nr_configurations > 0)
> tas_priv->cur_conf = 0;
>
> + /* Init common setting for different audio profiles */
> + if (tas_priv->rcabin.init_profile_id >= 0)
> + tasdevice_select_cfg_blk(tas_priv,
> + tas_priv->rcabin.init_profile_id,
> + TASDEVICE_BIN_BLK_PRE_POWER_UP);
> +
> /* If calibrated data occurs error, dsp will still works with default
> * calibrated data inside algo.
> */
> @@ -779,6 +785,12 @@ static int tas2781_system_resume(struct device *dev)
> tasdevice_reset(tas_hda->priv);
> tasdevice_prmg_load(tas_hda->priv, tas_hda->priv->cur_prog);
>
> + /* Init common setting for different audio profiles */
> + if (tas_hda->priv->rcabin.init_profile_id >= 0)
> + tasdevice_select_cfg_blk(tas_hda->priv,
> + tas_hda->priv->rcabin.init_profile_id,
> + TASDEVICE_BIN_BLK_PRE_POWER_UP);
> +
> if (tas_hda->priv->playback_started)
> tasdevice_tuning_switch(tas_hda->priv, 0);

The patch causes build errors:

sound/hda/codecs/side-codecs/tas2781_hda_i2c.c: In function ʽtasdevice_dspfw_initʼ:
sound/hda/codecs/side-codecs/tas2781_hda_i2c.c:468:29: error: ʽstruct tasdevice_rcaʼ has no member named ʽinit_profile_idʼ
468 | if (tas_priv->rcabin.init_profile_id >= 0)
| ^
....

Something still not landed in my tree yet.


thanks,

Takashi