sound/hda/codecs/side-codecs/tas2781_hda_i2c.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
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);
--
2.43.0
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
> -----Original Message----- > From: Takashi Iwai <tiwai@suse.de> > Sent: Thursday, August 21, 2025 3:17 PM > To: Ding, Shenghao <shenghao-ding@ti.com> > Cc: broonie@kernel.org; andriy.shevchenko@linux.intel.com; > 13564923607@139.com; 13916275206@139.com; alsa-devel@alsa- > project.org; linux-kernel@vger.kernel.org; Xu, Baojun <baojun.xu@ti.com>; > Baojun.Xu@fpt.com; Ji, Jesse <jesse-ji@ti.com> > Subject: [EXTERNAL] Re: [PATCH v1] ALSA: hda/tas2781: Enable > init_profile_id for device initialization > > 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 ZjQcmQRYFpfptBannerStart This message was sent from outside of > Texas Instruments. > Do not click links or open attachments unless you recognize the source of > this email and know the content is safe. > <https://us-phishalarm- > ewt.proofpoint.com/EWT/v1/G3vK!vxdrHf3mV2Ub4obsvxtoX4FTV-yYd_C- > 6ngQtFeUFpCRaEESj8_B-sZXmuX5JN2I2u4Qx-lD$> > Report Suspicious > > ZjQcmQRYFpfptBannerEnd > 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. > > .............................. > 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. I will resubmit it after your tree is ready. > > > thanks, > > Takashi
On Thu, 21 Aug 2025 11:01:45 +0200, Ding, Shenghao wrote: > > > -----Original Message----- > > From: Takashi Iwai <tiwai@suse.de> > > Sent: Thursday, August 21, 2025 3:17 PM > > To: Ding, Shenghao <shenghao-ding@ti.com> > > Cc: broonie@kernel.org; andriy.shevchenko@linux.intel.com; > > 13564923607@139.com; 13916275206@139.com; alsa-devel@alsa- > > project.org; linux-kernel@vger.kernel.org; Xu, Baojun <baojun.xu@ti.com>; > > Baojun.Xu@fpt.com; Ji, Jesse <jesse-ji@ti.com> > > Subject: [EXTERNAL] Re: [PATCH v1] ALSA: hda/tas2781: Enable > > init_profile_id for device initialization > > > > 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 ZjQcmQRYFpfptBannerStart This message was sent from outside of > > Texas Instruments. > > Do not click links or open attachments unless you recognize the source of > > this email and know the content is safe. > > <https://us-phishalarm- > > ewt.proofpoint.com/EWT/v1/G3vK!vxdrHf3mV2Ub4obsvxtoX4FTV-yYd_C- > > 6ngQtFeUFpCRaEESj8_B-sZXmuX5JN2I2u4Qx-lD$> > > Report Suspicious > > > > ZjQcmQRYFpfptBannerEnd > > 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. > > > > .............................. > > 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. > I will resubmit it after your tree is ready. So it's currently only in ASoC tree? Then maybe it's easier to put Mark's tree instead. In that case, feel free to take my ack: Acked-by: Takashi Iwai <tiwai@suse.de> But, the current situation of TAS driver support is messy, a part of changes are found in my tree while another part in Mark's tree individually... thanks, Takashi
© 2016 - 2025 Red Hat, Inc.