Commit e5a00daf authored by Gergo Koteles's avatar Gergo Koteles Committed by Takashi Iwai
Browse files

ALSA: hda: tas2781: fix tas2563 EFI data endianness



Before conversion to unify the calibration data management, the
tas2563_apply_calib() function performed the big endian conversion and
wrote the calibration data to the device. The writing is now done by the
common tasdev_load_calibrated_data() function, but without conversion.

Put the values into the calibration data buffer with the expected
endianness.

Fixes: 4fe23851 ("ALSA: hda/tas2781: Move and unified the calibrated-data getting function for SPI and I2C into the tas2781_hda lib")
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarGergo Koteles <soyer@irl.hu>
Link: https://patch.msgid.link/20250829160450.66623-1-soyer@irl.hu


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent aea34932
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -310,6 +310,7 @@ static int tas2563_save_calibration(struct tas2781_hda *h)
	struct cali_reg *r = &cd->cali_reg_array;
	unsigned int offset = 0;
	unsigned char *data;
	__be32 bedata;
	efi_status_t status;
	unsigned int attr;
	int ret, i, j, k;
@@ -351,6 +352,8 @@ static int tas2563_save_calibration(struct tas2781_hda *h)
					i, j, status);
				return -EINVAL;
			}
			bedata = cpu_to_be32(*(uint32_t *)&data[offset]);
			memcpy(&data[offset], &bedata, sizeof(bedata));
			offset += TAS2563_CAL_DATA_SIZE;
		}
	}