All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization
@ 2025-08-20  8:21 Shenghao Ding
  2025-08-21  7:17 ` Takashi Iwai
  0 siblings, 1 reply; 5+ messages in thread
From: Shenghao Ding @ 2025-08-20  8:21 UTC (permalink / raw)
  To: tiwai
  Cc: broonie, andriy.shevchenko, 13564923607, 13916275206, alsa-devel,
	linux-kernel, baojun.xu, Baojun.Xu, jesse-ji, Shenghao Ding

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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization
  2025-08-20  8:21 Shenghao Ding
@ 2025-08-21  7:17 ` Takashi Iwai
  0 siblings, 0 replies; 5+ messages in thread
From: Takashi Iwai @ 2025-08-21  7:17 UTC (permalink / raw)
  To: Shenghao Ding
  Cc: broonie, andriy.shevchenko, 13564923607, 13916275206, alsa-devel,
	linux-kernel, baojun.xu, Baojun.Xu, jesse-ji

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization
@ 2025-10-07 10:37 Shenghao Ding
  2025-10-07 12:14 ` Takashi Iwai
  2025-10-09  8:04 ` kernel test robot
  0 siblings, 2 replies; 5+ messages in thread
From: Shenghao Ding @ 2025-10-07 10:37 UTC (permalink / raw)
  To: tiwai
  Cc: broonie, andriy.shevchenko, stable, alsa-devel, linux-kernel,
	baojun.xu, Baojun.Xu, 13564923607, 13916275206, Shenghao Ding

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.

Fixes: e83dcd139e77 ("ASoC: tas2781: Add keyword "init" in profile section")
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 4dea442d8c30..a126f04c3ed7 100644
--- a/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c
+++ b/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c
@@ -474,6 +474,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.
 	 */
@@ -770,6 +776,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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization
  2025-10-07 10:37 [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization Shenghao Ding
@ 2025-10-07 12:14 ` Takashi Iwai
  2025-10-09  8:04 ` kernel test robot
  1 sibling, 0 replies; 5+ messages in thread
From: Takashi Iwai @ 2025-10-07 12:14 UTC (permalink / raw)
  To: Shenghao Ding
  Cc: broonie, andriy.shevchenko, stable, alsa-devel, linux-kernel,
	baojun.xu, Baojun.Xu, 13564923607, 13916275206

On Tue, 07 Oct 2025 12:37:08 +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.
> 
> Fixes: e83dcd139e77 ("ASoC: tas2781: Add keyword "init" in profile section")
> Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>

Applied now.  Thanks.


Takashi

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization
  2025-10-07 10:37 [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization Shenghao Ding
  2025-10-07 12:14 ` Takashi Iwai
@ 2025-10-09  8:04 ` kernel test robot
  1 sibling, 0 replies; 5+ messages in thread
From: kernel test robot @ 2025-10-09  8:04 UTC (permalink / raw)
  To: Shenghao Ding; +Cc: stable, oe-kbuild-all

Hi,

Thanks for your patch.

FYI: kernel test robot notices the stable kernel rule is not satisfied.

The check is based on https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#option-1

Rule: add the tag "Cc: stable@vger.kernel.org" in the sign-off area to have the patch automatically included in the stable tree.
Subject: [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization
Link: https://lore.kernel.org/stable/20251007103708.1663-1-shenghao-ding%40ti.com

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-10-09  8:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-07 10:37 [PATCH v1] ALSA: hda/tas2781: Enable init_profile_id for device initialization Shenghao Ding
2025-10-07 12:14 ` Takashi Iwai
2025-10-09  8:04 ` kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2025-08-20  8:21 Shenghao Ding
2025-08-21  7:17 ` Takashi Iwai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.