[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202410011021.Lr5B1w7F-lkp@intel.com>
Date: Tue, 1 Oct 2024 10:34:52 +0800
From: kernel test robot <lkp@...el.com>
To: Seshu Madhavi Puppala <quic_spuppala@...cinc.com>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konrad.dybcio@...aro.org>
Cc: oe-kbuild-all@...ts.linux.dev, linux-arm-msm@...r.kernel.org,
linux-kernel@...r.kernel.org, quic_rampraka@...cinc.com,
quic_nitirawa@...cinc.com, quic_bhaskarv@...cinc.com,
quic_neersoni@...cinc.com, quic_gaurkash@...cinc.com
Subject: Re: [PATCH] qcom: ice: Remove ice probe
Hi Seshu,
kernel test robot noticed the following build warnings:
[auto build test WARNING on v6.11]
[also build test WARNING on next-20240930]
[cannot apply to linus/master]
[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/Seshu-Madhavi-Puppala/qcom-ice-Remove-ice-probe/20240928-130818
base: v6.11
patch link: https://lore.kernel.org/r/20240928050456.27577-1-quic_spuppala%40quicinc.com
patch subject: [PATCH] qcom: ice: Remove ice probe
config: arc-randconfig-r122-20241001 (https://download.01.org/0day-ci/archive/20241001/202410011021.Lr5B1w7F-lkp@intel.com/config)
compiler: arc-elf-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20241001/202410011021.Lr5B1w7F-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410011021.Lr5B1w7F-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/soc/qcom/ice.c:309:31: sparse: sparse: incorrect type in return expression (different base types) @@ expected struct qcom_ice * @@ got long @@
drivers/soc/qcom/ice.c:309:31: sparse: expected struct qcom_ice *
drivers/soc/qcom/ice.c:309:31: sparse: got long
drivers/soc/qcom/ice.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
include/linux/page-flags.h:235:46: sparse: sparse: self-comparison always evaluates to false
include/linux/page-flags.h:235:46: sparse: sparse: self-comparison always evaluates to false
vim +309 drivers/soc/qcom/ice.c
250
251 /**
252 * of_qcom_ice_get() - get an ICE instance from a DT node
253 * @dev: device pointer for the consumer device
254 *
255 * This function will provide an ICE instance either by creating one for the
256 * consumer device if its DT node provides the 'ice' reg range and the 'ice'
257 * clock (for legacy DT style). On the other hand, if consumer provides a
258 * phandle via 'qcom,ice' property to an ICE DT, the ICE instance will already
259 * be created and so this function will return that instead.
260 *
261 * Return: ICE pointer on success, NULL if there is no ICE data provided by the
262 * consumer or ERR_PTR() on error.
263 */
264 struct qcom_ice *of_qcom_ice_get(struct device *dev)
265 {
266 struct platform_device *pdev = to_platform_device(dev);
267 struct qcom_ice *ice;
268 struct device_node *node;
269 struct resource *res;
270 void __iomem *base;
271
272 if (!dev || !dev->of_node)
273 return ERR_PTR(-ENODEV);
274
275 /*
276 * In order to support legacy style devicetree bindings, we need
277 * to create the ICE instance using the consumer device and the reg
278 * range called 'ice' it provides.
279 */
280 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ice");
281 if (res) {
282 base = devm_ioremap_resource(&pdev->dev, res);
283 if (IS_ERR(base))
284 return ERR_CAST(base);
285
286 /* create ICE instance using consumer dev */
287 return qcom_ice_create(&pdev->dev, base);
288 }
289
290 /*
291 * If the consumer node does not provider an 'ice' reg range
292 * (legacy DT binding), then it must at least provide a phandle
293 * to the ICE devicetree node, otherwise ICE is not supported.
294 */
295 node = of_parse_phandle(dev->of_node, "qcom,ice", 0);
296 if (!node)
297 return NULL;
298
299 pdev = of_find_device_by_node(node);
300 if (!pdev) {
301 dev_err(dev, "Cannot find device node %s\n", node->name);
302 ice = ERR_PTR(-EPROBE_DEFER);
303 goto out;
304 }
305
306 base = devm_platform_ioremap_resource(pdev, 0);
307 if (IS_ERR(base)) {
308 dev_warn(&pdev->dev, "ICE registers not found\n");
> 309 return PTR_ERR(base);
310 }
311
312 ice = qcom_ice_create(&pdev->dev, base);
313 if (!ice) {
314 dev_err(dev, "Cannot get ice instance from %s\n",
315 dev_name(&pdev->dev));
316 platform_device_put(pdev);
317 ice = ERR_PTR(-EPROBE_DEFER);
318 goto out;
319 }
320
321 ice->link = device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER);
322 if (!ice->link) {
323 dev_err(&pdev->dev,
324 "Failed to create device link to consumer %s\n",
325 dev_name(dev));
326 platform_device_put(pdev);
327 ice = ERR_PTR(-EINVAL);
328 }
329
330 out:
331 of_node_put(node);
332
333 return ice;
334 }
335 EXPORT_SYMBOL_GPL(of_qcom_ice_get);
336
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists