* [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries
@ 2024-08-21 10:02 Richard Fitzgerald
2024-08-21 17:10 ` Mark Brown
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Richard Fitzgerald @ 2024-08-21 10:02 UTC (permalink / raw)
To: broonie; +Cc: linux-sound, linux-kernel, patches
If the timestamp of a calibration entry is 0 it is an unused entry and
must be ignored.
Some end-products reserve EFI space for calibration entries by shipping
with a zero-filled EFI file. When searching the file for calibration
data the driver must skip the empty entries. The timestamp of a valid
entry is always non-zero.
The type of struct cirrus_amp_efi_data.calTime has been changed from an
array of two u32 to a single u64. The timestamp is a 64-bit value and
treating it as such simplifies the code.
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 1cad8725f2b9 ("ASoC: cs-amp-lib: Add helpers for factory calibration data")
---
include/sound/cs-amp-lib.h | 2 +-
sound/soc/codecs/cs-amp-lib.c | 7 ++++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/include/sound/cs-amp-lib.h b/include/sound/cs-amp-lib.h
index f481148735e1..77c4c1c9cf1a 100644
--- a/include/sound/cs-amp-lib.h
+++ b/include/sound/cs-amp-lib.h
@@ -14,7 +14,7 @@ struct cs_dsp;
struct cirrus_amp_cal_data {
u32 calTarget[2];
- u32 calTime[2];
+ u64 calTime;
s8 calAmbient;
u8 calStatus;
u16 calR;
diff --git a/sound/soc/codecs/cs-amp-lib.c b/sound/soc/codecs/cs-amp-lib.c
index 605964af8afa..8aaca88ef1b6 100644
--- a/sound/soc/codecs/cs-amp-lib.c
+++ b/sound/soc/codecs/cs-amp-lib.c
@@ -182,6 +182,10 @@ static int _cs_amp_get_efi_calibration_data(struct device *dev, u64 target_uid,
for (i = 0; i < efi_data->count; ++i) {
u64 cal_target = cs_amp_cal_target_u64(&efi_data->data[i]);
+ /* Skip empty entries */
+ if (efi_data->data[i].calTime == 0)
+ continue;
+
/* Skip entries with unpopulated silicon ID */
if (cal_target == 0)
continue;
@@ -193,7 +197,8 @@ static int _cs_amp_get_efi_calibration_data(struct device *dev, u64 target_uid,
}
}
- if (!cal && (amp_index >= 0) && (amp_index < efi_data->count)) {
+ if (!cal && (amp_index >= 0) && (amp_index < efi_data->count) &&
+ (efi_data->data[amp_index].calTime != 0)) {
u64 cal_target = cs_amp_cal_target_u64(&efi_data->data[amp_index]);
/*
--
2.39.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries
2024-08-21 10:02 [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries Richard Fitzgerald
@ 2024-08-21 17:10 ` Mark Brown
2024-08-22 2:52 ` kernel test robot
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2024-08-21 17:10 UTC (permalink / raw)
To: Richard Fitzgerald; +Cc: linux-sound, linux-kernel, patches
[-- Attachment #1: Type: text/plain, Size: 1250 bytes --]
On Wed, Aug 21, 2024 at 11:02:21AM +0100, Richard Fitzgerald wrote:
> If the timestamp of a calibration entry is 0 it is an unused entry and
> must be ignored.
>
> Some end-products reserve EFI space for calibration entries by shipping
> with a zero-filled EFI file. When searching the file for calibration
> data the driver must skip the empty entries. The timestamp of a valid
> entry is always non-zero.
This breaks the build if I apply it on either for-6.11 or for-6.12:
In file included from /build/stage/linux/sound/soc/codecs/cs-amp-lib-test.c:8:
/build/stage/linux/sound/soc/codecs/cs-amp-lib-test.c: In function ‘cs_amp_lib_test_get_efi_cal_by_uid_test’:
/build/stage/linux/sound/soc/codecs/cs-amp-lib-test.c:224:50: error: subscripted value is neither array nor pointer nor vector
224 | KUNIT_EXPECT_EQ(test, result_data.calTime[0],
| ^
/build/stage/linux/include/kunit/test.h:724:22: note: in definition of macro ‘KUNIT_BASE_BINARY_ASSERTION’
724 | const typeof(left) __left = (left); \
| ^~~~
(with lots more errors) - I'm guessins some missing dependency
somewhere?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries
2024-08-21 10:02 [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries Richard Fitzgerald
2024-08-21 17:10 ` Mark Brown
@ 2024-08-22 2:52 ` kernel test robot
2024-08-22 4:26 ` kernel test robot
2024-08-28 16:30 ` Mark Brown
3 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2024-08-22 2:52 UTC (permalink / raw)
To: Richard Fitzgerald; +Cc: llvm, oe-kbuild-all
Hi Richard,
kernel test robot noticed the following build errors:
[auto build test ERROR on broonie-sound/for-next]
[also build test ERROR on tiwai-sound/for-next tiwai-sound/for-linus linus/master v6.11-rc4 next-20240821]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Richard-Fitzgerald/ASoC-cs-amp-lib-Ignore-empty-UEFI-calibration-entries/20240821-192545
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
patch link: https://lore.kernel.org/r/20240821100221.99699-1-rf%40opensource.cirrus.com
patch subject: [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries
config: x86_64-randconfig-004-20240822 (https://download.01.org/0day-ci/archive/20240822/202408221049.NJZYDeE8-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240822/202408221049.NJZYDeE8-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408221049.NJZYDeE8-lkp@intel.com/
All errors (new ones prefixed by >>):
>> sound/soc/codecs/cs-amp-lib-test.c:224:43: error: subscripted value is not an array, pointer, or vector
224 | KUNIT_EXPECT_EQ(test, result_data.calTime[0],
| ~~~~~~~~~~~~~~~~~~~^~
include/kunit/test.h:917:28: note: expanded from macro 'KUNIT_EXPECT_EQ'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~
include/kunit/test.h:922:8: note: expanded from macro 'KUNIT_EXPECT_EQ_MSG'
922 | left, ==, right, \
| ^~~~
include/kunit/test.h:758:9: note: expanded from macro 'KUNIT_BINARY_INT_ASSERTION'
758 | left, op, right, \
| ^~~~
include/kunit/test.h:724:15: note: expanded from macro 'KUNIT_BASE_BINARY_ASSERTION'
724 | const typeof(left) __left = (left); \
| ^~~~
>> sound/soc/codecs/cs-amp-lib-test.c:224:43: error: subscripted value is not an array, pointer, or vector
224 | KUNIT_EXPECT_EQ(test, result_data.calTime[0],
| ~~~~~~~~~~~~~~~~~~~^~
include/kunit/test.h:917:28: note: expanded from macro 'KUNIT_EXPECT_EQ'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~
include/kunit/test.h:922:8: note: expanded from macro 'KUNIT_EXPECT_EQ_MSG'
922 | left, ==, right, \
| ^~~~
include/kunit/test.h:758:9: note: expanded from macro 'KUNIT_BINARY_INT_ASSERTION'
758 | left, op, right, \
| ^~~~
include/kunit/test.h:724:31: note: expanded from macro 'KUNIT_BASE_BINARY_ASSERTION'
724 | const typeof(left) __left = (left); \
| ^~~~
sound/soc/codecs/cs-amp-lib-test.c:225:56: error: subscripted value is not an array, pointer, or vector
225 | priv->cal_blob->data[param->amp_index].calTime[0]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
include/kunit/test.h:917:34: note: expanded from macro 'KUNIT_EXPECT_EQ'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~
include/kunit/test.h:922:18: note: expanded from macro 'KUNIT_EXPECT_EQ_MSG'
922 | left, ==, right, \
| ^~~~~
include/kunit/test.h:758:19: note: expanded from macro 'KUNIT_BINARY_INT_ASSERTION'
758 | left, op, right, \
| ^~~~~
include/kunit/test.h:725:15: note: expanded from macro 'KUNIT_BASE_BINARY_ASSERTION'
725 | const typeof(right) __right = (right); \
| ^~~~~
sound/soc/codecs/cs-amp-lib-test.c:225:56: error: subscripted value is not an array, pointer, or vector
225 | priv->cal_blob->data[param->amp_index].calTime[0]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
include/kunit/test.h:917:34: note: expanded from macro 'KUNIT_EXPECT_EQ'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~
include/kunit/test.h:922:18: note: expanded from macro 'KUNIT_EXPECT_EQ_MSG'
922 | left, ==, right, \
| ^~~~~
include/kunit/test.h:758:19: note: expanded from macro 'KUNIT_BINARY_INT_ASSERTION'
758 | left, op, right, \
| ^~~~~
include/kunit/test.h:725:33: note: expanded from macro 'KUNIT_BASE_BINARY_ASSERTION'
725 | const typeof(right) __right = (right); \
| ^~~~~
sound/soc/codecs/cs-amp-lib-test.c:226:43: error: subscripted value is not an array, pointer, or vector
226 | KUNIT_EXPECT_EQ(test, result_data.calTime[1],
| ~~~~~~~~~~~~~~~~~~~^~
include/kunit/test.h:917:28: note: expanded from macro 'KUNIT_EXPECT_EQ'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~
include/kunit/test.h:922:8: note: expanded from macro 'KUNIT_EXPECT_EQ_MSG'
922 | left, ==, right, \
| ^~~~
include/kunit/test.h:758:9: note: expanded from macro 'KUNIT_BINARY_INT_ASSERTION'
758 | left, op, right, \
| ^~~~
include/kunit/test.h:724:15: note: expanded from macro 'KUNIT_BASE_BINARY_ASSERTION'
724 | const typeof(left) __left = (left); \
| ^~~~
sound/soc/codecs/cs-amp-lib-test.c:226:43: error: subscripted value is not an array, pointer, or vector
226 | KUNIT_EXPECT_EQ(test, result_data.calTime[1],
| ~~~~~~~~~~~~~~~~~~~^~
include/kunit/test.h:917:28: note: expanded from macro 'KUNIT_EXPECT_EQ'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~
include/kunit/test.h:922:8: note: expanded from macro 'KUNIT_EXPECT_EQ_MSG'
922 | left, ==, right, \
| ^~~~
include/kunit/test.h:758:9: note: expanded from macro 'KUNIT_BINARY_INT_ASSERTION'
758 | left, op, right, \
| ^~~~
include/kunit/test.h:724:31: note: expanded from macro 'KUNIT_BASE_BINARY_ASSERTION'
724 | const typeof(left) __left = (left); \
| ^~~~
sound/soc/codecs/cs-amp-lib-test.c:227:56: error: subscripted value is not an array, pointer, or vector
227 | priv->cal_blob->data[param->amp_index].calTime[1]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
include/kunit/test.h:917:34: note: expanded from macro 'KUNIT_EXPECT_EQ'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~
include/kunit/test.h:922:18: note: expanded from macro 'KUNIT_EXPECT_EQ_MSG'
922 | left, ==, right, \
| ^~~~~
include/kunit/test.h:758:19: note: expanded from macro 'KUNIT_BINARY_INT_ASSERTION'
758 | left, op, right, \
| ^~~~~
include/kunit/test.h:725:15: note: expanded from macro 'KUNIT_BASE_BINARY_ASSERTION'
725 | const typeof(right) __right = (right); \
| ^~~~~
sound/soc/codecs/cs-amp-lib-test.c:227:56: error: subscripted value is not an array, pointer, or vector
227 | priv->cal_blob->data[param->amp_index].calTime[1]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
include/kunit/test.h:917:34: note: expanded from macro 'KUNIT_EXPECT_EQ'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~
include/kunit/test.h:922:18: note: expanded from macro 'KUNIT_EXPECT_EQ_MSG'
922 | left, ==, right, \
| ^~~~~
include/kunit/test.h:758:19: note: expanded from macro 'KUNIT_BINARY_INT_ASSERTION'
758 | left, op, right, \
vim +224 sound/soc/codecs/cs-amp-lib-test.c
177862317a98add Richard Fitzgerald 2024-03-04 199
177862317a98add Richard Fitzgerald 2024-03-04 200 /* Get cal data block for a given amp, matched by target UID. */
177862317a98add Richard Fitzgerald 2024-03-04 201 static void cs_amp_lib_test_get_efi_cal_by_uid_test(struct kunit *test)
177862317a98add Richard Fitzgerald 2024-03-04 202 {
177862317a98add Richard Fitzgerald 2024-03-04 203 struct cs_amp_lib_test_priv *priv = test->priv;
177862317a98add Richard Fitzgerald 2024-03-04 204 const struct cs_amp_lib_test_param *param = test->param_value;
177862317a98add Richard Fitzgerald 2024-03-04 205 struct cirrus_amp_cal_data result_data;
177862317a98add Richard Fitzgerald 2024-03-04 206 u64 target_uid;
177862317a98add Richard Fitzgerald 2024-03-04 207 int ret;
177862317a98add Richard Fitzgerald 2024-03-04 208
177862317a98add Richard Fitzgerald 2024-03-04 209 cs_amp_lib_test_init_dummy_cal_blob(test, param->num_amps);
177862317a98add Richard Fitzgerald 2024-03-04 210
177862317a98add Richard Fitzgerald 2024-03-04 211 /* Redirect calls to get EFI data */
177862317a98add Richard Fitzgerald 2024-03-04 212 kunit_activate_static_stub(test,
177862317a98add Richard Fitzgerald 2024-03-04 213 cs_amp_test_hooks->get_efi_variable,
177862317a98add Richard Fitzgerald 2024-03-04 214 cs_amp_lib_test_get_efi_variable);
177862317a98add Richard Fitzgerald 2024-03-04 215
177862317a98add Richard Fitzgerald 2024-03-04 216 target_uid = cs_amp_lib_test_get_target_uid(test);
177862317a98add Richard Fitzgerald 2024-03-04 217 ret = cs_amp_get_efi_calibration_data(&priv->amp_pdev.dev, target_uid, -1, &result_data);
177862317a98add Richard Fitzgerald 2024-03-04 218 KUNIT_EXPECT_EQ(test, ret, 0);
177862317a98add Richard Fitzgerald 2024-03-04 219
177862317a98add Richard Fitzgerald 2024-03-04 220 kunit_deactivate_static_stub(test, cs_amp_test_hooks->get_efi_variable);
177862317a98add Richard Fitzgerald 2024-03-04 221
177862317a98add Richard Fitzgerald 2024-03-04 222 KUNIT_EXPECT_EQ(test, result_data.calTarget[0], target_uid & 0xFFFFFFFFULL);
177862317a98add Richard Fitzgerald 2024-03-04 223 KUNIT_EXPECT_EQ(test, result_data.calTarget[1], target_uid >> 32);
177862317a98add Richard Fitzgerald 2024-03-04 @224 KUNIT_EXPECT_EQ(test, result_data.calTime[0],
177862317a98add Richard Fitzgerald 2024-03-04 225 priv->cal_blob->data[param->amp_index].calTime[0]);
177862317a98add Richard Fitzgerald 2024-03-04 226 KUNIT_EXPECT_EQ(test, result_data.calTime[1],
177862317a98add Richard Fitzgerald 2024-03-04 227 priv->cal_blob->data[param->amp_index].calTime[1]);
177862317a98add Richard Fitzgerald 2024-03-04 228 KUNIT_EXPECT_EQ(test, result_data.calAmbient,
177862317a98add Richard Fitzgerald 2024-03-04 229 priv->cal_blob->data[param->amp_index].calAmbient);
177862317a98add Richard Fitzgerald 2024-03-04 230 KUNIT_EXPECT_EQ(test, result_data.calStatus,
177862317a98add Richard Fitzgerald 2024-03-04 231 priv->cal_blob->data[param->amp_index].calStatus);
177862317a98add Richard Fitzgerald 2024-03-04 232 KUNIT_EXPECT_EQ(test, result_data.calR,
177862317a98add Richard Fitzgerald 2024-03-04 233 priv->cal_blob->data[param->amp_index].calR);
177862317a98add Richard Fitzgerald 2024-03-04 234 }
177862317a98add Richard Fitzgerald 2024-03-04 235
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries
2024-08-21 10:02 [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries Richard Fitzgerald
2024-08-21 17:10 ` Mark Brown
2024-08-22 2:52 ` kernel test robot
@ 2024-08-22 4:26 ` kernel test robot
2024-08-28 16:30 ` Mark Brown
3 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2024-08-22 4:26 UTC (permalink / raw)
To: Richard Fitzgerald; +Cc: oe-kbuild-all
Hi Richard,
kernel test robot noticed the following build errors:
[auto build test ERROR on broonie-sound/for-next]
[also build test ERROR on tiwai-sound/for-next tiwai-sound/for-linus linus/master v6.11-rc4 next-20240821]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Richard-Fitzgerald/ASoC-cs-amp-lib-Ignore-empty-UEFI-calibration-entries/20240821-192545
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
patch link: https://lore.kernel.org/r/20240821100221.99699-1-rf%40opensource.cirrus.com
patch subject: [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries
config: x86_64-buildonly-randconfig-003-20240822 (https://download.01.org/0day-ci/archive/20240822/202408221128.PXFexliw-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240822/202408221128.PXFexliw-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408221128.PXFexliw-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from sound/soc/codecs/cs-amp-lib-test.c:8:
sound/soc/codecs/cs-amp-lib-test.c: In function 'cs_amp_lib_test_get_efi_cal_by_uid_test':
>> sound/soc/codecs/cs-amp-lib-test.c:224:50: error: subscripted value is neither array nor pointer nor vector
224 | KUNIT_EXPECT_EQ(test, result_data.calTime[0],
| ^
include/kunit/test.h:724:22: note: in definition of macro 'KUNIT_BASE_BINARY_ASSERTION'
724 | const typeof(left) __left = (left); \
| ^~~~
include/kunit/test.h:920:9: note: in expansion of macro 'KUNIT_BINARY_INT_ASSERTION'
920 | KUNIT_BINARY_INT_ASSERTION(test, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/kunit/test.h:917:9: note: in expansion of macro 'KUNIT_EXPECT_EQ_MSG'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:224:9: note: in expansion of macro 'KUNIT_EXPECT_EQ'
224 | KUNIT_EXPECT_EQ(test, result_data.calTime[0],
| ^~~~~~~~~~~~~~~
>> sound/soc/codecs/cs-amp-lib-test.c:224:50: error: subscripted value is neither array nor pointer nor vector
224 | KUNIT_EXPECT_EQ(test, result_data.calTime[0],
| ^
include/kunit/test.h:724:38: note: in definition of macro 'KUNIT_BASE_BINARY_ASSERTION'
724 | const typeof(left) __left = (left); \
| ^~~~
include/kunit/test.h:920:9: note: in expansion of macro 'KUNIT_BINARY_INT_ASSERTION'
920 | KUNIT_BINARY_INT_ASSERTION(test, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/kunit/test.h:917:9: note: in expansion of macro 'KUNIT_EXPECT_EQ_MSG'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:224:9: note: in expansion of macro 'KUNIT_EXPECT_EQ'
224 | KUNIT_EXPECT_EQ(test, result_data.calTime[0],
| ^~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:225:77: error: subscripted value is neither array nor pointer nor vector
225 | priv->cal_blob->data[param->amp_index].calTime[0]);
| ^
include/kunit/test.h:725:22: note: in definition of macro 'KUNIT_BASE_BINARY_ASSERTION'
725 | const typeof(right) __right = (right); \
| ^~~~~
include/kunit/test.h:920:9: note: in expansion of macro 'KUNIT_BINARY_INT_ASSERTION'
920 | KUNIT_BINARY_INT_ASSERTION(test, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/kunit/test.h:917:9: note: in expansion of macro 'KUNIT_EXPECT_EQ_MSG'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:224:9: note: in expansion of macro 'KUNIT_EXPECT_EQ'
224 | KUNIT_EXPECT_EQ(test, result_data.calTime[0],
| ^~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:225:77: error: subscripted value is neither array nor pointer nor vector
225 | priv->cal_blob->data[param->amp_index].calTime[0]);
| ^
include/kunit/test.h:725:40: note: in definition of macro 'KUNIT_BASE_BINARY_ASSERTION'
725 | const typeof(right) __right = (right); \
| ^~~~~
include/kunit/test.h:920:9: note: in expansion of macro 'KUNIT_BINARY_INT_ASSERTION'
920 | KUNIT_BINARY_INT_ASSERTION(test, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/kunit/test.h:917:9: note: in expansion of macro 'KUNIT_EXPECT_EQ_MSG'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:224:9: note: in expansion of macro 'KUNIT_EXPECT_EQ'
224 | KUNIT_EXPECT_EQ(test, result_data.calTime[0],
| ^~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:226:50: error: subscripted value is neither array nor pointer nor vector
226 | KUNIT_EXPECT_EQ(test, result_data.calTime[1],
| ^
include/kunit/test.h:724:22: note: in definition of macro 'KUNIT_BASE_BINARY_ASSERTION'
724 | const typeof(left) __left = (left); \
| ^~~~
include/kunit/test.h:920:9: note: in expansion of macro 'KUNIT_BINARY_INT_ASSERTION'
920 | KUNIT_BINARY_INT_ASSERTION(test, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/kunit/test.h:917:9: note: in expansion of macro 'KUNIT_EXPECT_EQ_MSG'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:226:9: note: in expansion of macro 'KUNIT_EXPECT_EQ'
226 | KUNIT_EXPECT_EQ(test, result_data.calTime[1],
| ^~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:226:50: error: subscripted value is neither array nor pointer nor vector
226 | KUNIT_EXPECT_EQ(test, result_data.calTime[1],
| ^
include/kunit/test.h:724:38: note: in definition of macro 'KUNIT_BASE_BINARY_ASSERTION'
724 | const typeof(left) __left = (left); \
| ^~~~
include/kunit/test.h:920:9: note: in expansion of macro 'KUNIT_BINARY_INT_ASSERTION'
920 | KUNIT_BINARY_INT_ASSERTION(test, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/kunit/test.h:917:9: note: in expansion of macro 'KUNIT_EXPECT_EQ_MSG'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:226:9: note: in expansion of macro 'KUNIT_EXPECT_EQ'
226 | KUNIT_EXPECT_EQ(test, result_data.calTime[1],
| ^~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:227:77: error: subscripted value is neither array nor pointer nor vector
227 | priv->cal_blob->data[param->amp_index].calTime[1]);
| ^
include/kunit/test.h:725:22: note: in definition of macro 'KUNIT_BASE_BINARY_ASSERTION'
725 | const typeof(right) __right = (right); \
| ^~~~~
include/kunit/test.h:920:9: note: in expansion of macro 'KUNIT_BINARY_INT_ASSERTION'
920 | KUNIT_BINARY_INT_ASSERTION(test, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/kunit/test.h:917:9: note: in expansion of macro 'KUNIT_EXPECT_EQ_MSG'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
| ^~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:226:9: note: in expansion of macro 'KUNIT_EXPECT_EQ'
226 | KUNIT_EXPECT_EQ(test, result_data.calTime[1],
| ^~~~~~~~~~~~~~~
sound/soc/codecs/cs-amp-lib-test.c:227:77: error: subscripted value is neither array nor pointer nor vector
227 | priv->cal_blob->data[param->amp_index].calTime[1]);
| ^
include/kunit/test.h:725:40: note: in definition of macro 'KUNIT_BASE_BINARY_ASSERTION'
725 | const typeof(right) __right = (right); \
| ^~~~~
include/kunit/test.h:920:9: note: in expansion of macro 'KUNIT_BINARY_INT_ASSERTION'
920 | KUNIT_BINARY_INT_ASSERTION(test, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/kunit/test.h:917:9: note: in expansion of macro 'KUNIT_EXPECT_EQ_MSG'
917 | KUNIT_EXPECT_EQ_MSG(test, left, right, NULL)
vim +224 sound/soc/codecs/cs-amp-lib-test.c
177862317a98ad Richard Fitzgerald 2024-03-04 199
177862317a98ad Richard Fitzgerald 2024-03-04 200 /* Get cal data block for a given amp, matched by target UID. */
177862317a98ad Richard Fitzgerald 2024-03-04 201 static void cs_amp_lib_test_get_efi_cal_by_uid_test(struct kunit *test)
177862317a98ad Richard Fitzgerald 2024-03-04 202 {
177862317a98ad Richard Fitzgerald 2024-03-04 203 struct cs_amp_lib_test_priv *priv = test->priv;
177862317a98ad Richard Fitzgerald 2024-03-04 204 const struct cs_amp_lib_test_param *param = test->param_value;
177862317a98ad Richard Fitzgerald 2024-03-04 205 struct cirrus_amp_cal_data result_data;
177862317a98ad Richard Fitzgerald 2024-03-04 206 u64 target_uid;
177862317a98ad Richard Fitzgerald 2024-03-04 207 int ret;
177862317a98ad Richard Fitzgerald 2024-03-04 208
177862317a98ad Richard Fitzgerald 2024-03-04 209 cs_amp_lib_test_init_dummy_cal_blob(test, param->num_amps);
177862317a98ad Richard Fitzgerald 2024-03-04 210
177862317a98ad Richard Fitzgerald 2024-03-04 211 /* Redirect calls to get EFI data */
177862317a98ad Richard Fitzgerald 2024-03-04 212 kunit_activate_static_stub(test,
177862317a98ad Richard Fitzgerald 2024-03-04 213 cs_amp_test_hooks->get_efi_variable,
177862317a98ad Richard Fitzgerald 2024-03-04 214 cs_amp_lib_test_get_efi_variable);
177862317a98ad Richard Fitzgerald 2024-03-04 215
177862317a98ad Richard Fitzgerald 2024-03-04 216 target_uid = cs_amp_lib_test_get_target_uid(test);
177862317a98ad Richard Fitzgerald 2024-03-04 217 ret = cs_amp_get_efi_calibration_data(&priv->amp_pdev.dev, target_uid, -1, &result_data);
177862317a98ad Richard Fitzgerald 2024-03-04 218 KUNIT_EXPECT_EQ(test, ret, 0);
177862317a98ad Richard Fitzgerald 2024-03-04 219
177862317a98ad Richard Fitzgerald 2024-03-04 220 kunit_deactivate_static_stub(test, cs_amp_test_hooks->get_efi_variable);
177862317a98ad Richard Fitzgerald 2024-03-04 221
177862317a98ad Richard Fitzgerald 2024-03-04 222 KUNIT_EXPECT_EQ(test, result_data.calTarget[0], target_uid & 0xFFFFFFFFULL);
177862317a98ad Richard Fitzgerald 2024-03-04 223 KUNIT_EXPECT_EQ(test, result_data.calTarget[1], target_uid >> 32);
177862317a98ad Richard Fitzgerald 2024-03-04 @224 KUNIT_EXPECT_EQ(test, result_data.calTime[0],
177862317a98ad Richard Fitzgerald 2024-03-04 225 priv->cal_blob->data[param->amp_index].calTime[0]);
177862317a98ad Richard Fitzgerald 2024-03-04 226 KUNIT_EXPECT_EQ(test, result_data.calTime[1],
177862317a98ad Richard Fitzgerald 2024-03-04 227 priv->cal_blob->data[param->amp_index].calTime[1]);
177862317a98ad Richard Fitzgerald 2024-03-04 228 KUNIT_EXPECT_EQ(test, result_data.calAmbient,
177862317a98ad Richard Fitzgerald 2024-03-04 229 priv->cal_blob->data[param->amp_index].calAmbient);
177862317a98ad Richard Fitzgerald 2024-03-04 230 KUNIT_EXPECT_EQ(test, result_data.calStatus,
177862317a98ad Richard Fitzgerald 2024-03-04 231 priv->cal_blob->data[param->amp_index].calStatus);
177862317a98ad Richard Fitzgerald 2024-03-04 232 KUNIT_EXPECT_EQ(test, result_data.calR,
177862317a98ad Richard Fitzgerald 2024-03-04 233 priv->cal_blob->data[param->amp_index].calR);
177862317a98ad Richard Fitzgerald 2024-03-04 234 }
177862317a98ad Richard Fitzgerald 2024-03-04 235
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries
2024-08-21 10:02 [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries Richard Fitzgerald
` (2 preceding siblings ...)
2024-08-22 4:26 ` kernel test robot
@ 2024-08-28 16:30 ` Mark Brown
3 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2024-08-28 16:30 UTC (permalink / raw)
To: Richard Fitzgerald; +Cc: linux-sound, linux-kernel, patches
On Wed, 21 Aug 2024 11:02:21 +0100, Richard Fitzgerald wrote:
> If the timestamp of a calibration entry is 0 it is an unused entry and
> must be ignored.
>
> Some end-products reserve EFI space for calibration entries by shipping
> with a zero-filled EFI file. When searching the file for calibration
> data the driver must skip the empty entries. The timestamp of a valid
> entry is always non-zero.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries
commit: bb4485562f5907708f1c218b5d70dce04165d1e1
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-08-28 16:30 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-21 10:02 [PATCH] ASoC: cs-amp-lib: Ignore empty UEFI calibration entries Richard Fitzgerald
2024-08-21 17:10 ` Mark Brown
2024-08-22 2:52 ` kernel test robot
2024-08-22 4:26 ` kernel test robot
2024-08-28 16:30 ` Mark Brown
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.