
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@ti.com
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