* [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0
@ 2025-08-26 9:41 Shenghao Ding
2025-08-26 15:30 ` Takashi Iwai
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Shenghao Ding @ 2025-08-26 9:41 UTC (permalink / raw)
To: tiwai
Cc: broonie, andriy.shevchenko, 13564923607, 13916275206, alsa-devel,
linux-kernel, baojun.xu, Baojun.Xu, jesse-ji, Shenghao Ding
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++)
--
2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0 2025-08-26 9:41 [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0 Shenghao Ding @ 2025-08-26 15:30 ` Takashi Iwai 2025-08-26 23:48 ` Gergo Koteles 2025-08-27 1:34 ` Gergo Koteles 2 siblings, 0 replies; 6+ messages in thread From: Takashi Iwai @ 2025-08-26 15:30 UTC (permalink / raw) To: Shenghao Ding Cc: broonie, andriy.shevchenko, 13564923607, 13916275206, alsa-devel, linux-kernel, baojun.xu, Baojun.Xu, jesse-ji On Tue, 26 Aug 2025 11:41:05 +0200, 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++) Please drop unrelated change and concentrate on the real issue. thanks, Takashi ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0 2025-08-26 9:41 [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0 Shenghao Ding 2025-08-26 15:30 ` Takashi Iwai @ 2025-08-26 23:48 ` Gergo Koteles 2025-08-27 1:34 ` Gergo Koteles 2 siblings, 0 replies; 6+ messages in thread From: Gergo Koteles @ 2025-08-26 23:48 UTC (permalink / raw) To: Shenghao Ding, tiwai Cc: broonie, andriy.shevchenko, 13564923607, 13916275206, alsa-devel, linux-kernel, baojun.xu, Baojun.Xu, jesse-ji 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++) The previous tas2781_apply_calib() and tas2563_apply_calib() functions performed a big endian conversion on the data readed from the EFI variables. I couldn't find this in either fmwlib or this file. Could you please recheck if this happens somewhere? Thanks, Gergo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0 2025-08-26 9:41 [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0 Shenghao Ding 2025-08-26 15:30 ` Takashi Iwai 2025-08-26 23:48 ` Gergo Koteles @ 2025-08-27 1:34 ` Gergo Koteles 2025-08-27 14:15 ` [EXTERNAL] " Ding, Shenghao 2 siblings, 1 reply; 6+ messages in thread From: Gergo Koteles @ 2025-08-27 1:34 UTC (permalink / raw) To: Shenghao Ding, tiwai Cc: broonie, andriy.shevchenko, 13564923607, 13916275206, alsa-devel, linux-kernel, baojun.xu, Baojun.Xu, jesse-ji 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [EXTERNAL] Re: [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0 2025-08-27 1:34 ` Gergo Koteles @ 2025-08-27 14:15 ` Ding, Shenghao 2025-08-27 19:18 ` Gergo Koteles 0 siblings, 1 reply; 6+ messages in thread From: Ding, Shenghao @ 2025-08-27 14:15 UTC (permalink / raw) To: Gergo Koteles, tiwai Cc: broonie, andriy.shevchenko, 13564923607, 13916275206, alsa-devel, linux-kernel, Xu, Baojun, Baojun.Xu, Ji, Jesse 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [EXTERNAL] Re: [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0 2025-08-27 14:15 ` [EXTERNAL] " Ding, Shenghao @ 2025-08-27 19:18 ` Gergo Koteles 0 siblings, 0 replies; 6+ messages in thread From: Gergo Koteles @ 2025-08-27 19:18 UTC (permalink / raw) To: Ding, Shenghao, tiwai Cc: broonie, andriy.shevchenko, 13564923607, 13916275206, alsa-devel, linux-kernel, Xu, Baojun, Baojun.Xu, Ji, Jesse Hi Shenghao, On Wed, 2025-08-27 at 14:15 +0000, Ding, Shenghao wrote: > Long time no see. Thanks for pointing that out. > I'm preparing a new patch to correct it. > > Yeah, the amps worked well, so no need to write :) Rolling distros are moving to kernel 6.16 soon, so I'm worried about the speakers. Can the amplifier protect the speaker even with completely wrong calibration values? Thanks, Gergo ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-08-27 19:18 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-08-26 9:41 [PATCH v2] ALSA: hda/tas2781: Fix EFI name for calibration beginning with 1 instead of 0 Shenghao Ding 2025-08-26 15:30 ` Takashi Iwai 2025-08-26 23:48 ` Gergo Koteles 2025-08-27 1:34 ` Gergo Koteles 2025-08-27 14:15 ` [EXTERNAL] " Ding, Shenghao 2025-08-27 19:18 ` Gergo Koteles
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®