All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.