All of lore.kernel.org
 help / color / mirror / Atom feed
* [plbossart-sound:sdw/parse-functions 10/12] drivers/soundwire/bus_type.c:108:undefined reference to `sdca_alloc'
@ 2024-04-18 15:33 kernel test robot
  2024-04-30  0:22 ` Pierre-Louis Bossart
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2024-04-18 15:33 UTC (permalink / raw)
  To: Pierre-Louis Bossart; +Cc: oe-kbuild-all

tree:   https://github.com/plbossart/sound sdw/parse-functions
head:   999b877354e492b6b1c8206962dcf1fd21c09f15
commit: cd24ac936a37b583771317da3d0865c6857cca92 [10/12] soundwire: add SDCA alloc/parsing
config: x86_64-randconfig-012-20240418 (https://download.01.org/0day-ci/archive/20240418/202404182348.lRlTAIGv-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240418/202404182348.lRlTAIGv-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/202404182348.lRlTAIGv-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: vmlinux.o: in function `sdw_drv_probe':
>> drivers/soundwire/bus_type.c:108:(.text+0xac21cb): undefined reference to `sdca_alloc'
>> ld: drivers/soundwire/bus_type.c:114:(.text+0xac21dd): undefined reference to `sdca_find_functions'


vim +108 drivers/soundwire/bus_type.c

    81	
    82	static int sdw_drv_probe(struct device *dev)
    83	{
    84		struct sdw_slave *slave = dev_to_sdw_dev(dev);
    85		struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
    86		const struct sdw_device_id *id;
    87		const char *name;
    88		int ret;
    89	
    90		/*
    91		 * fw description is mandatory to bind
    92		 */
    93		if (!dev->fwnode)
    94			return -ENODEV;
    95	
    96		if (!IS_ENABLED(CONFIG_ACPI) && !dev->of_node)
    97			return -ENODEV;
    98	
    99		id = sdw_get_device_id(slave, drv);
   100		if (!id)
   101			return -ENODEV;
   102	
   103		/*
   104		 * the SDCA alloc/parsing is done before the driver probe
   105		 * so that all the information extracted from firmware is
   106		 * available.
   107		 */
 > 108		ret = sdca_alloc(&slave->sdca_context,
   109				 &slave->dev,
   110				 slave);
   111		if (ret < 0)
   112			return ret;
   113	
 > 114		sdca_find_functions(slave->sdca_context);
   115	
   116		/*
   117		 * attach to power domain but don't turn on (last arg)
   118		 */
   119		ret = dev_pm_domain_attach(dev, false);
   120		if (ret)
   121			return ret;
   122	
   123		ret = drv->probe(slave, id);
   124		if (ret) {
   125			name = drv->name;
   126			if (!name)
   127				name = drv->driver.name;
   128	
   129			dev_err(dev, "Probe of %s failed: %d\n", name, ret);
   130			dev_pm_domain_detach(dev, false);
   131			return ret;
   132		}
   133		mutex_lock(&slave->sdw_dev_lock);
   134	
   135		/* device is probed so let's read the properties now */
   136		if (drv->ops && drv->ops->read_prop)
   137			drv->ops->read_prop(slave);
   138	
   139		if (slave->prop.use_domain_irq)
   140			sdw_irq_create_mapping(slave);
   141	
   142		/* init the dynamic sysfs attributes we need */
   143		ret = sdw_slave_sysfs_dpn_init(slave);
   144		if (ret < 0)
   145			dev_warn(dev, "Slave sysfs init failed:%d\n", ret);
   146	
   147		/*
   148		 * Check for valid clk_stop_timeout, use DisCo worst case value of
   149		 * 300ms
   150		 *
   151		 * TODO: check the timeouts and driver removal case
   152		 */
   153		if (slave->prop.clk_stop_timeout == 0)
   154			slave->prop.clk_stop_timeout = 300;
   155	
   156		slave->bus->clk_stop_timeout = max_t(u32, slave->bus->clk_stop_timeout,
   157						     slave->prop.clk_stop_timeout);
   158	
   159		slave->probed = true;
   160	
   161		/*
   162		 * if the probe happened after the bus was started, notify the codec driver
   163		 * of the current hardware status to e.g. start the initialization.
   164		 * Errors are only logged as warnings to avoid failing the probe.
   165		 */
   166		if (drv->ops && drv->ops->update_status) {
   167			ret = drv->ops->update_status(slave, slave->status);
   168			if (ret < 0)
   169				dev_warn(dev, "%s: update_status failed with status %d\n", __func__, ret);
   170		}
   171	
   172		mutex_unlock(&slave->sdw_dev_lock);
   173	
   174		dev_dbg(dev, "probe complete\n");
   175	
   176		return 0;
   177	}
   178	

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

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

* Re: [plbossart-sound:sdw/parse-functions 10/12] drivers/soundwire/bus_type.c:108:undefined reference to `sdca_alloc'
  2024-04-18 15:33 [plbossart-sound:sdw/parse-functions 10/12] drivers/soundwire/bus_type.c:108:undefined reference to `sdca_alloc' kernel test robot
@ 2024-04-30  0:22 ` Pierre-Louis Bossart
  0 siblings, 0 replies; 2+ messages in thread
From: Pierre-Louis Bossart @ 2024-04-30  0:22 UTC (permalink / raw)
  To: kernel test robot; +Cc: oe-kbuild-all



On 4/18/24 10:33, kernel test robot wrote:
> tree:   https://github.com/plbossart/sound sdw/parse-functions
> head:   999b877354e492b6b1c8206962dcf1fd21c09f15
> commit: cd24ac936a37b583771317da3d0865c6857cca92 [10/12] soundwire: add SDCA alloc/parsing
> config: x86_64-randconfig-012-20240418 (https://download.01.org/0day-ci/archive/20240418/202404182348.lRlTAIGv-lkp@intel.com/config)
> compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240418/202404182348.lRlTAIGv-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/202404182348.lRlTAIGv-lkp@intel.com/
> 
> All errors (new ones prefixed by >>):
> 
>    ld: vmlinux.o: in function `sdw_drv_probe':
>>> drivers/soundwire/bus_type.c:108:(.text+0xac21cb): undefined reference to `sdca_alloc'
>>> ld: drivers/soundwire/bus_type.c:114:(.text+0xac21dd): undefined reference to `sdca_find_functions'

Fixed, thanks!

> 
> 
> vim +108 drivers/soundwire/bus_type.c
> 
>     81	
>     82	static int sdw_drv_probe(struct device *dev)
>     83	{
>     84		struct sdw_slave *slave = dev_to_sdw_dev(dev);
>     85		struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
>     86		const struct sdw_device_id *id;
>     87		const char *name;
>     88		int ret;
>     89	
>     90		/*
>     91		 * fw description is mandatory to bind
>     92		 */
>     93		if (!dev->fwnode)
>     94			return -ENODEV;
>     95	
>     96		if (!IS_ENABLED(CONFIG_ACPI) && !dev->of_node)
>     97			return -ENODEV;
>     98	
>     99		id = sdw_get_device_id(slave, drv);
>    100		if (!id)
>    101			return -ENODEV;
>    102	
>    103		/*
>    104		 * the SDCA alloc/parsing is done before the driver probe
>    105		 * so that all the information extracted from firmware is
>    106		 * available.
>    107		 */
>  > 108		ret = sdca_alloc(&slave->sdca_context,
>    109				 &slave->dev,
>    110				 slave);
>    111		if (ret < 0)
>    112			return ret;
>    113	
>  > 114		sdca_find_functions(slave->sdca_context);
>    115	
>    116		/*
>    117		 * attach to power domain but don't turn on (last arg)
>    118		 */
>    119		ret = dev_pm_domain_attach(dev, false);
>    120		if (ret)
>    121			return ret;
>    122	
>    123		ret = drv->probe(slave, id);
>    124		if (ret) {
>    125			name = drv->name;
>    126			if (!name)
>    127				name = drv->driver.name;
>    128	
>    129			dev_err(dev, "Probe of %s failed: %d\n", name, ret);
>    130			dev_pm_domain_detach(dev, false);
>    131			return ret;
>    132		}
>    133		mutex_lock(&slave->sdw_dev_lock);
>    134	
>    135		/* device is probed so let's read the properties now */
>    136		if (drv->ops && drv->ops->read_prop)
>    137			drv->ops->read_prop(slave);
>    138	
>    139		if (slave->prop.use_domain_irq)
>    140			sdw_irq_create_mapping(slave);
>    141	
>    142		/* init the dynamic sysfs attributes we need */
>    143		ret = sdw_slave_sysfs_dpn_init(slave);
>    144		if (ret < 0)
>    145			dev_warn(dev, "Slave sysfs init failed:%d\n", ret);
>    146	
>    147		/*
>    148		 * Check for valid clk_stop_timeout, use DisCo worst case value of
>    149		 * 300ms
>    150		 *
>    151		 * TODO: check the timeouts and driver removal case
>    152		 */
>    153		if (slave->prop.clk_stop_timeout == 0)
>    154			slave->prop.clk_stop_timeout = 300;
>    155	
>    156		slave->bus->clk_stop_timeout = max_t(u32, slave->bus->clk_stop_timeout,
>    157						     slave->prop.clk_stop_timeout);
>    158	
>    159		slave->probed = true;
>    160	
>    161		/*
>    162		 * if the probe happened after the bus was started, notify the codec driver
>    163		 * of the current hardware status to e.g. start the initialization.
>    164		 * Errors are only logged as warnings to avoid failing the probe.
>    165		 */
>    166		if (drv->ops && drv->ops->update_status) {
>    167			ret = drv->ops->update_status(slave, slave->status);
>    168			if (ret < 0)
>    169				dev_warn(dev, "%s: update_status failed with status %d\n", __func__, ret);
>    170		}
>    171	
>    172		mutex_unlock(&slave->sdw_dev_lock);
>    173	
>    174		dev_dbg(dev, "probe complete\n");
>    175	
>    176		return 0;
>    177	}
>    178	
> 

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

end of thread, other threads:[~2024-04-30  0:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-18 15:33 [plbossart-sound:sdw/parse-functions 10/12] drivers/soundwire/bus_type.c:108:undefined reference to `sdca_alloc' kernel test robot
2024-04-30  0:22 ` Pierre-Louis Bossart

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.