[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7d64e317bc748fbc1853bb4bc714cd088450fe02.camel@irl.hu>
Date: Wed, 27 Aug 2025 01:48:14 +0200
From: Gergo Koteles <soyer@....hu>
To: Shenghao Ding <shenghao-ding@...com>, tiwai@...e.de
Cc: broonie@...nel.org, andriy.shevchenko@...ux.intel.com,
13564923607@....com, 13916275206@....com,
alsa-devel@...a-project.org, linux-kernel@...r.kernel.org,
baojun.xu@...com, Baojun.Xu@....com, jesse-ji@...com
Subject: 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 getting function for SPI and I2C into the tas2781_hda lib")
> Signed-off-by: Shenghao Ding <shenghao-ding@...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
Powered by blists - more mailing lists