2024-05-10 03:43:25

by Shenghao Ding

[permalink] [raw]
Subject: [PATCH v4 1/3] ALSA: ASoc/tas2781: Fix wrong loading calibrated data sequence

Calibrated data will be set to default after loading DSP config params,
which will cause speaker protection work abnormally. Reload calibrated
data after loading DSP config params.

Fixes: ef3bcde75d06 ("ASoc: tas2781: Add tas2781 driver")
Signed-off-by: Shenghao Ding <[email protected]>

---
v4:
- Use the the culprit of the bug itself as the fixes tag
v3:
- No changes.
v2:
- In the Subject, fixed --> Fix
- Add Fixes tag
- Changed the copyright year to 2024 in the related files
- In tas2781-dsp.h, __TASDEVICE_DSP_H__ --> __TAS2781_DSP_H__
v1:
- Download calibrated data after loading the new DSP config params
- Remove tasdevice_prmg_calibdata_load, because it is unnecessary to load
calibrated data after loading DSP program.
---
include/sound/tas2781-dsp.h | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/include/sound/tas2781-dsp.h b/include/sound/tas2781-dsp.h
index ea9af2726a53..7fba7ea26a4b 100644
--- a/include/sound/tas2781-dsp.h
+++ b/include/sound/tas2781-dsp.h
@@ -2,7 +2,7 @@
//
// ALSA SoC Texas Instruments TAS2781 Audio Smart Amplifier
//
-// Copyright (C) 2022 - 2023 Texas Instruments Incorporated
+// Copyright (C) 2022 - 2024 Texas Instruments Incorporated
// https://www.ti.com
//
// The TAS2781 driver implements a flexible and configurable
@@ -13,8 +13,8 @@
// Author: Kevin Lu <[email protected]>
//

-#ifndef __TASDEVICE_DSP_H__
-#define __TASDEVICE_DSP_H__
+#ifndef __TAS2781_DSP_H__
+#define __TAS2781_DSP_H__

#define MAIN_ALL_DEVICES 0x0d
#define MAIN_DEVICE_A 0x01
@@ -180,7 +180,6 @@ void tasdevice_calbin_remove(void *context);
int tasdevice_select_tuningprm_cfg(void *context, int prm,
int cfg_no, int rca_conf_no);
int tasdevice_prmg_load(void *context, int prm_no);
-int tasdevice_prmg_calibdata_load(void *context, int prm_no);
void tasdevice_tuning_switch(void *context, int state);
int tas2781_load_calibration(void *context, char *file_name,
unsigned short i);
--
2.34.1



2024-05-10 06:11:38

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH v4 1/3] ALSA: ASoc/tas2781: Fix wrong loading calibrated data sequence

On Fri, May 10, 2024 at 11:41:19AM +0800, Shenghao Ding wrote:

> Calibrated data will be set to default after loading DSP config params,
> which will cause speaker protection work abnormally. Reload calibrated
> data after loading DSP config params.

This changelog...

> -#ifndef __TASDEVICE_DSP_H__
> -#define __TASDEVICE_DSP_H__
> +#ifndef __TAS2781_DSP_H__
> +#define __TAS2781_DSP_H__
>
> #define MAIN_ALL_DEVICES 0x0d
> #define MAIN_DEVICE_A 0x01
> @@ -180,7 +180,6 @@ void tasdevice_calbin_remove(void *context);
> int tasdevice_select_tuningprm_cfg(void *context, int prm,
> int cfg_no, int rca_conf_no);
> int tasdevice_prmg_load(void *context, int prm_no);
> -int tasdevice_prmg_calibdata_load(void *context, int prm_no);
> void tasdevice_tuning_switch(void *context, int state);
> int tas2781_load_calibration(void *context, char *file_name,
> unsigned short i);

...doesn't seem to have much relationship with the change?


Attachments:
(No filename) (977.00 B)
signature.asc (499.00 B)
Download all attachments

2024-05-10 15:13:02

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v4 1/3] ALSA: ASoc/tas2781: Fix wrong loading calibrated data sequence

On Fri, May 10, 2024 at 11:41:19AM +0800, Shenghao Ding wrote:
> Calibrated data will be set to default after loading DSP config params,
> which will cause speaker protection work abnormally. Reload calibrated
> data after loading DSP config params.
>
> Fixes: ef3bcde75d06 ("ASoc: tas2781: Add tas2781 driver")

How on earth this can be a fix?..

> -// Copyright (C) 2022 - 2023 Texas Instruments Incorporated
> +// Copyright (C) 2022 - 2024 Texas Instruments Incorporated

> -#ifndef __TASDEVICE_DSP_H__
> -#define __TASDEVICE_DSP_H__
> +#ifndef __TAS2781_DSP_H__
> +#define __TAS2781_DSP_H__

> -int tasdevice_prmg_calibdata_load(void *context, int prm_no);

--
With Best Regards,
Andy Shevchenko



2024-05-11 03:36:48

by Shenghao Ding

[permalink] [raw]
Subject: RE: [EXTERNAL] Re: [PATCH v4 1/3] ALSA: ASoc/tas2781: Fix wrong loading calibrated data sequence



> -----Original Message-----
> From: Andy Shevchenko <[email protected]>
> Sent: Friday, May 10, 2024 11:13 PM
> To: Ding, Shenghao <[email protected]>
> Cc: [email protected]; [email protected]; [email protected]; pierre-
> [email protected]; [email protected]; alsa-devel@alsa-
> project.org; [email protected]; [email protected];
> [email protected]; [email protected]; Lu, Kevin <kevin-
> [email protected]>; [email protected]; [email protected]; Xu, Baojun
> <[email protected]>; [email protected]; [email protected]
> Subject: [EXTERNAL] Re: [PATCH v4 1/3] ALSA: ASoc/tas2781: Fix wrong loading
> calibrated data sequence
>
> On Fri, May 10, 2024 at 11: 41: 19AM +0800, Shenghao Ding wrote: > Calibrated
> data will be set to default after loading DSP config params, > which will cause
> speaker protection work abnormally. Reload calibrated > data after loading
> 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. If you wish to report this message to IT
> Security, please forward the message as an attachment to [email protected]
>
> ZjQcmQRYFpfptBannerEnd
> On Fri, May 10, 2024 at 11:41:19AM +0800, Shenghao Ding wrote:
> > Calibrated data will be set to default after loading DSP config
> > params, which will cause speaker protection work abnormally. Reload
> > calibrated data after loading DSP config params.
> >
> > Fixes: ef3bcde75d06 ("ASoc: tas2781: Add tas2781 driver")
>
> How on earth this can be a fix?..
Removing the declaration of tasdevice_prmg_calibdata_load is a part of fix.
Loading calibrated data after loading dsp program become a redundance.
>
> > -// Copyright (C) 2022 - 2023 Texas Instruments Incorporated
> > +// Copyright (C) 2022 - 2024 Texas Instruments Incorporated
>
...
> > -int tasdevice_prmg_calibdata_load(void *context, int prm_no);
>
> --
> With Best Regards,
> Andy Shevchenko
>