All of lore.kernel.org
 help / color / mirror / Atom feed
* [broonie-ci:v3_20251106_ckeepax_add_sdca_class_driver 321/322] sound/soc/sdca/sdca_device.c:36:6: error: redefinition of 'sdca_lookup_swft'
@ 2025-11-20 12:21 kernel test robot
  2025-11-20 12:45 ` Charles Keepax
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2025-11-20 12:21 UTC (permalink / raw)
  To: Charles Keepax; +Cc: oe-kbuild-all, Mark Brown

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/ci.git v3_20251106_ckeepax_add_sdca_class_driver
head:   782a3359140a882c5593256c7a8b1496ef50ec56
commit: a9afd4638fa2ae315e93079521388fb7421a5781 [321/322] ASoC: SDCA: Add basic SDCA class driver
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20251120/202511202007.Fn4sbBus-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251120/202511202007.Fn4sbBus-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/202511202007.Fn4sbBus-lkp@intel.com/

All errors (new ones prefixed by >>):

   sound/soc/sdca/sdca_functions.c: In function 'find_sdca_function':
>> sound/soc/sdca/sdca_functions.c:94:35: error: invalid use of undefined type 'struct acpi_device'
      94 |         struct device *dev = &adev->dev;
         |                                   ^~
>> sound/soc/sdca/sdca_functions.c:107:15: error: implicit declaration of function 'acpi_get_local_u64_address'; did you mean 'acpi_get_local_address'? [-Wimplicit-function-declaration]
     107 |         ret = acpi_get_local_u64_address(adev->handle, &addr);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
         |               acpi_get_local_address
   sound/soc/sdca/sdca_functions.c:107:46: error: invalid use of undefined type 'struct acpi_device'
     107 |         ret = acpi_get_local_u64_address(adev->handle, &addr);
         |                                              ^~
   sound/soc/sdca/sdca_functions.c: At top level:
>> sound/soc/sdca/sdca_functions.c:180:6: error: redefinition of 'sdca_lookup_functions'
     180 | void sdca_lookup_functions(struct sdw_slave *slave)
         |      ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/soundwire/sdw.h:18,
                    from sound/soc/sdca/sdca_functions.c:16:
   include/sound/sdca.h:70:20: note: previous definition of 'sdca_lookup_functions' with type 'void(struct sdw_slave *)'
      70 | static inline void sdca_lookup_functions(struct sdw_slave *slave) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~
   sound/soc/sdca/sdca_functions.c: In function 'sdca_lookup_functions':
>> sound/soc/sdca/sdca_functions.c:190:9: error: implicit declaration of function 'acpi_dev_for_each_child'; did you mean 'device_for_each_child'? [-Wimplicit-function-declaration]
     190 |         acpi_dev_for_each_child(adev, find_sdca_function, &slave->sdca_data);
         |         ^~~~~~~~~~~~~~~~~~~~~~~
         |         device_for_each_child
--
>> sound/soc/sdca/sdca_device.c:18:6: error: redefinition of 'sdca_lookup_interface_revision'
      18 | void sdca_lookup_interface_revision(struct sdw_slave *slave)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/soundwire/sdw.h:18,
                    from sound/soc/sdca/sdca_device.c:14:
   include/sound/sdca.h:72:20: note: previous definition of 'sdca_lookup_interface_revision' with type 'void(struct sdw_slave *)'
      72 | static inline void sdca_lookup_interface_revision(struct sdw_slave *slave) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> sound/soc/sdca/sdca_device.c:36:6: error: redefinition of 'sdca_lookup_swft'
      36 | void sdca_lookup_swft(struct sdw_slave *slave)
         |      ^~~~~~~~~~~~~~~~
   include/sound/sdca.h:71:20: note: previous definition of 'sdca_lookup_swft' with type 'void(struct sdw_slave *)'
      71 | static inline void sdca_lookup_swft(struct sdw_slave *slave) {}
         |                    ^~~~~~~~~~~~~~~~
>> sound/soc/sdca/sdca_device.c:96:6: error: redefinition of 'sdca_device_quirk_match'
      96 | bool sdca_device_quirk_match(struct sdw_slave *slave, enum sdca_quirk quirk)
         |      ^~~~~~~~~~~~~~~~~~~~~~~
   include/sound/sdca.h:73:20: note: previous definition of 'sdca_device_quirk_match' with type 'bool(struct sdw_slave *, enum sdca_quirk)' {aka '_Bool(struct sdw_slave *, enum sdca_quirk)'}
      73 | static inline bool sdca_device_quirk_match(struct sdw_slave *slave, enum sdca_quirk quirk)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~
--
>> sound/soc/sdca/sdca_function_device.c:89:5: error: redefinition of 'sdca_dev_register_functions'
      89 | int sdca_dev_register_functions(struct sdw_slave *slave)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/soundwire/sdw.h:18,
                    from sound/soc/sdca/sdca_function_device.c:11:
   include/sound/sdca.h:78:19: note: previous definition of 'sdca_dev_register_functions' with type 'int(struct sdw_slave *)'
      78 | static inline int sdca_dev_register_functions(struct sdw_slave *slave)
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> sound/soc/sdca/sdca_function_device.c:109:6: error: redefinition of 'sdca_dev_unregister_functions'
     109 | void sdca_dev_unregister_functions(struct sdw_slave *slave)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/sound/sdca.h:83:20: note: previous definition of 'sdca_dev_unregister_functions' with type 'void(struct sdw_slave *)'
      83 | static inline void sdca_dev_unregister_functions(struct sdw_slave *slave) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for SND_SOC_SDCA
   Depends on [n]: SOUND [=y] && SND [=y] && SND_SOC [=y] && ACPI
   Selected by [y]:
   - SND_SOC_SDCA_CLASS [=y] && SOUND [=y] && SND [=y] && SND_SOC [=y]


vim +/sdca_lookup_swft +36 sound/soc/sdca/sdca_device.c

3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  17  
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16 @18  void sdca_lookup_interface_revision(struct sdw_slave *slave)
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  19  {
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  20  	struct fwnode_handle *fwnode = slave->dev.fwnode;
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  21  
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  22  	/*
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  23  	 * if this property is not present, then the sdca_interface_revision will
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  24  	 * remain zero, which will be considered as 'not defined' or 'invalid'.
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  25  	 */
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  26  	fwnode_property_read_u32(fwnode, "mipi-sdw-sdca-interface-revision",
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  27  				 &slave->sdca_data.interface_revision);
3a513da1ae3397 Pierre-Louis Bossart 2024-10-16  28  }
cdd30ebb1b9f36 Peter Zijlstra       2024-12-02  29  EXPORT_SYMBOL_NS(sdca_lookup_interface_revision, "SND_SOC_SDCA");
fdb22039917717 Pierre-Louis Bossart 2024-10-16  30  
c4d096c3ca4255 Maciej Strozek       2025-10-20  31  static void devm_acpi_table_put(void *ptr)
c4d096c3ca4255 Maciej Strozek       2025-10-20  32  {
c4d096c3ca4255 Maciej Strozek       2025-10-20  33  	acpi_put_table((struct acpi_table_header *)ptr);
c4d096c3ca4255 Maciej Strozek       2025-10-20  34  }
c4d096c3ca4255 Maciej Strozek       2025-10-20  35  
c4d096c3ca4255 Maciej Strozek       2025-10-20 @36  void sdca_lookup_swft(struct sdw_slave *slave)
c4d096c3ca4255 Maciej Strozek       2025-10-20  37  {
c4d096c3ca4255 Maciej Strozek       2025-10-20  38  	acpi_status status;
c4d096c3ca4255 Maciej Strozek       2025-10-20  39  
c4d096c3ca4255 Maciej Strozek       2025-10-20  40  	status = acpi_get_table(ACPI_SIG_SWFT, 0,
c4d096c3ca4255 Maciej Strozek       2025-10-20  41  				(struct acpi_table_header **)&slave->sdca_data.swft);
c4d096c3ca4255 Maciej Strozek       2025-10-20  42  	if (ACPI_FAILURE(status))
c4d096c3ca4255 Maciej Strozek       2025-10-20  43  		dev_info(&slave->dev, "SWFT not available\n");
c4d096c3ca4255 Maciej Strozek       2025-10-20  44  	else
c4d096c3ca4255 Maciej Strozek       2025-10-20  45  		devm_add_action_or_reset(&slave->dev, devm_acpi_table_put,
c4d096c3ca4255 Maciej Strozek       2025-10-20  46  					 &slave->sdca_data.swft);
c4d096c3ca4255 Maciej Strozek       2025-10-20  47  }
c4d096c3ca4255 Maciej Strozek       2025-10-20  48  EXPORT_SYMBOL_NS(sdca_lookup_swft, "SND_SOC_SDCA");
c4d096c3ca4255 Maciej Strozek       2025-10-20  49  
fdb22039917717 Pierre-Louis Bossart 2024-10-16  50  static bool sdca_device_quirk_rt712_vb(struct sdw_slave *slave)
fdb22039917717 Pierre-Louis Bossart 2024-10-16  51  {
fdb22039917717 Pierre-Louis Bossart 2024-10-16  52  	struct sdw_slave_id *id = &slave->id;
fdb22039917717 Pierre-Louis Bossart 2024-10-16  53  	int i;
fdb22039917717 Pierre-Louis Bossart 2024-10-16  54  
fdb22039917717 Pierre-Louis Bossart 2024-10-16  55  	/*
fdb22039917717 Pierre-Louis Bossart 2024-10-16  56  	 * The RT712_VA relies on the v06r04 draft, and the
fdb22039917717 Pierre-Louis Bossart 2024-10-16  57  	 * RT712_VB on a more recent v08r01 draft.
fdb22039917717 Pierre-Louis Bossart 2024-10-16  58  	 */
fdb22039917717 Pierre-Louis Bossart 2024-10-16  59  	if (slave->sdca_data.interface_revision < 0x0801)
fdb22039917717 Pierre-Louis Bossart 2024-10-16  60  		return false;
fdb22039917717 Pierre-Louis Bossart 2024-10-16  61  
fdb22039917717 Pierre-Louis Bossart 2024-10-16  62  	if (id->mfg_id != 0x025d)
fdb22039917717 Pierre-Louis Bossart 2024-10-16  63  		return false;
fdb22039917717 Pierre-Louis Bossart 2024-10-16  64  
fdb22039917717 Pierre-Louis Bossart 2024-10-16  65  	if (id->part_id != 0x712 &&
fdb22039917717 Pierre-Louis Bossart 2024-10-16  66  	    id->part_id != 0x713 &&
fdb22039917717 Pierre-Louis Bossart 2024-10-16  67  	    id->part_id != 0x716 &&
fdb22039917717 Pierre-Louis Bossart 2024-10-16  68  	    id->part_id != 0x717)
fdb22039917717 Pierre-Louis Bossart 2024-10-16  69  		return false;
fdb22039917717 Pierre-Louis Bossart 2024-10-16  70  
fdb22039917717 Pierre-Louis Bossart 2024-10-16  71  	for (i = 0; i < slave->sdca_data.num_functions; i++) {
629dd55cf77bd3 Charles Keepax       2025-02-05  72  		if (slave->sdca_data.function[i].type == SDCA_FUNCTION_TYPE_SMART_MIC)
fdb22039917717 Pierre-Louis Bossart 2024-10-16  73  			return true;
fdb22039917717 Pierre-Louis Bossart 2024-10-16  74  	}
fdb22039917717 Pierre-Louis Bossart 2024-10-16  75  
fdb22039917717 Pierre-Louis Bossart 2024-10-16  76  	return false;
fdb22039917717 Pierre-Louis Bossart 2024-10-16  77  }
fdb22039917717 Pierre-Louis Bossart 2024-10-16  78  
28edfaa10ca1b3 Maciej Strozek       2025-09-01  79  static bool sdca_device_quirk_skip_func_type_patching(struct sdw_slave *slave)
28edfaa10ca1b3 Maciej Strozek       2025-09-01  80  {
28edfaa10ca1b3 Maciej Strozek       2025-09-01  81  	const char *vendor, *sku;
28edfaa10ca1b3 Maciej Strozek       2025-09-01  82  
28edfaa10ca1b3 Maciej Strozek       2025-09-01  83  	vendor = dmi_get_system_info(DMI_SYS_VENDOR);
28edfaa10ca1b3 Maciej Strozek       2025-09-01  84  	sku = dmi_get_system_info(DMI_PRODUCT_SKU);
28edfaa10ca1b3 Maciej Strozek       2025-09-01  85  
28edfaa10ca1b3 Maciej Strozek       2025-09-01  86  	if (vendor && sku &&
28edfaa10ca1b3 Maciej Strozek       2025-09-01  87  	    !strcmp(vendor, "Dell Inc.") &&
28edfaa10ca1b3 Maciej Strozek       2025-09-01  88  	    (!strcmp(sku, "0C62") || !strcmp(sku, "0C63") || !strcmp(sku, "0C6B")) &&
28edfaa10ca1b3 Maciej Strozek       2025-09-01  89  	    slave->sdca_data.interface_revision == 0x061c &&
28edfaa10ca1b3 Maciej Strozek       2025-09-01  90  	    slave->id.mfg_id == 0x01fa && slave->id.part_id == 0x4243)
28edfaa10ca1b3 Maciej Strozek       2025-09-01  91  		return true;
28edfaa10ca1b3 Maciej Strozek       2025-09-01  92  
28edfaa10ca1b3 Maciej Strozek       2025-09-01  93  	return false;
28edfaa10ca1b3 Maciej Strozek       2025-09-01  94  }
28edfaa10ca1b3 Maciej Strozek       2025-09-01  95  
fdb22039917717 Pierre-Louis Bossart 2024-10-16 @96  bool sdca_device_quirk_match(struct sdw_slave *slave, enum sdca_quirk quirk)

:::::: The code at line 36 was first introduced by commit
:::::: c4d096c3ca425562192a3626c30e82651d0f2c1c ASoC: SDCA: Add SDCA FDL data parsing

:::::: TO: Maciej Strozek <mstrozek@opensource.cirrus.com>
:::::: CC: Mark Brown <broonie@kernel.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-11-20 12:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-20 12:21 [broonie-ci:v3_20251106_ckeepax_add_sdca_class_driver 321/322] sound/soc/sdca/sdca_device.c:36:6: error: redefinition of 'sdca_lookup_swft' kernel test robot
2025-11-20 12:45 ` Charles Keepax

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.