
Hi GK Long time no see. Thanks for pointing that out. I'm preparing a new patch to correct it.
-----Original Message----- From: Gergo Koteles soyer@irl.hu Sent: Wednesday, August 27, 2025 9:34 AM To: Ding, Shenghao shenghao-ding@ti.com; tiwai@suse.de 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 v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0
Hi Shenghao, On Tue, 2025-08-26 at 17: 41 +0800, Shenghao Ding wrote: > A bug reported by one of my customers that EFI name beginning with 0 > instead of 1. > > Fixes: 4fe238513407 ("ALSA: hda/tas2781: Move and unified the calibrated-data 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!uldrHTaPnO07KyzOfDOJHMHGipcjY2REMQ tg2sq6EsrNqo3BvxwK7HK1Pa6IoEqp0AsXy_amOqGIF7xIufCxaZfP5b4W5MYIwV xonydOKJA$ Report Suspicious
ZjQcmQRYFpfptBannerEnd Hi Shenghao,
On Tue, 2025-08-26 at 17:41 +0800, Shenghao Ding wrote:
A bug reported by one of my customers that EFI name beginning with 0 instead of 1.
Fixes: 4fe238513407 ("ALSA: hda/tas2781: Move and unified the calibrated-data getting function for SPI and I2C into the tas2781_hda lib") Signed-off-by: Shenghao Ding shenghao-ding@ti.com
v2:
- remove unrelated change
v1:
- Fix EFI name beginning with 1 instead of 0
- Add extra comments on EFI name for calibration
- Remove an extra space
sound/hda/codecs/side-codecs/tas2781_hda_i2c.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c b/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c index ed7771ab9475..635cbd8820ac 100644 --- a/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c +++ b/sound/hda/codecs/side-codecs/tas2781_hda_i2c.c @@ -340,7 +340,8 @@ static int tas2563_save_calibration(struct
tas2781_hda *h)
data[offset] = i; offset++; for (j = 0; j < TASDEV_CALIB_N; ++j) {
ret = snprintf(var8, sizeof(var8), vars[j], i);
/* EFI name for calibration started with 1, not 0 */
ret = snprintf(var8, sizeof(var8), vars[j], i + 1); if (ret < 0 || ret >= sizeof(var8) - 1) { dev_err(p->dev, "%s: Read %s failed\n", @@ -
349,7 +350,7 @@
static int tas2563_save_calibration(struct tas2781_hda *h) } /* * Our variable names are ASCII by construction, but
* EFI names are wide chars. Convert and zero-pad.
* EFI names are wide chars. Convert and zero-pad. */ memset(efi_name, 0, sizeof(efi_name)); for (k = 0; k < sizeof(var8) && var8[k]; k++)
In the tas2563_save_calibration() function the variables are read in the following order: R0, InvR0, R0_Low, Power, TLim. They are also included in cali_data in this order.
But the tasdev_load_calibrated_data() function reads them from cali_data as R0, R0_Low, InvR0, Power, TLim.
And this may be true for tas2781 as well.
Could you check this also?
Thanks, Gergo