From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: kernel test robot <lkp@intel.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [plbossart-sound:sdw/parse-functions 10/12] drivers/soundwire/bus_type.c:108:undefined reference to `sdca_alloc'
Date: Mon, 29 Apr 2024 19:22:14 -0500 [thread overview]
Message-ID: <987255cc-e8be-4a58-bf1f-37fde8827ccb@linux.intel.com> (raw)
In-Reply-To: <202404182348.lRlTAIGv-lkp@intel.com>
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
>
prev parent reply other threads:[~2024-04-30 0:22 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
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 message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=987255cc-e8be-4a58-bf1f-37fde8827ccb@linux.intel.com \
--to=pierre-louis.bossart@linux.intel.com \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.