All of lore.kernel.org
 help / color / mirror / Atom feed
* [xlnx:xlnx_rebase_v5.10 1399/1756] drivers/soc/xilinx/xlnx_vcu.c:661 xvcu_probe() warn: 'xvcu->aclk' not released on lines: 631.
@ 2021-07-19  9:26 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-07-19  9:26 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 11641 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-arm-kernel(a)lists.infradead.org
TO: Dhaval Shah <dhaval.shah@xilinx.com>
CC: Michal Simek <monstr@monstr.eu>
CC: Rohit Visavalia <rohit.visavalia@xilinx.com>

tree:   https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.10
head:   f6f032f82f0a13def702a0154df535db88f43391
commit: 8403eb824c74c67f14360f6d33e499df3d8ca972 [1399/1756] soc: xilinx: vcu: Update vcu init/reset sequence
:::::: branch date: 5 days ago
:::::: commit date: 8 weeks ago
config: x86_64-randconfig-m001-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/soc/xilinx/xlnx_vcu.c:661 xvcu_probe() warn: 'xvcu->aclk' not released on lines: 631.
drivers/soc/xilinx/xlnx_vcu.c:661 xvcu_probe() warn: 'xvcu->pll_ref' not released on lines: 631.

Old smatch warnings:
drivers/soc/xilinx/xlnx_vcu.c:482 xvcu_set_vcu_pll_info() warn: 'xvcu->pll_ref' not released on lines: 389,421.

vim +661 drivers/soc/xilinx/xlnx_vcu.c

cee8113a295acf Dhaval Shah       2017-12-21  534  
cee8113a295acf Dhaval Shah       2017-12-21  535  /**
cee8113a295acf Dhaval Shah       2017-12-21  536   * xvcu_probe - Probe existence of the logicoreIP
cee8113a295acf Dhaval Shah       2017-12-21  537   *			and initialize PLL
cee8113a295acf Dhaval Shah       2017-12-21  538   *
cee8113a295acf Dhaval Shah       2017-12-21  539   * @pdev:	Pointer to the platform_device structure
cee8113a295acf Dhaval Shah       2017-12-21  540   *
cee8113a295acf Dhaval Shah       2017-12-21  541   * Return:	Returns 0 on success
cee8113a295acf Dhaval Shah       2017-12-21  542   *		Negative error code otherwise
cee8113a295acf Dhaval Shah       2017-12-21  543   */
cee8113a295acf Dhaval Shah       2017-12-21  544  static int xvcu_probe(struct platform_device *pdev)
cee8113a295acf Dhaval Shah       2017-12-21  545  {
cee8113a295acf Dhaval Shah       2017-12-21  546  	struct resource *res;
cee8113a295acf Dhaval Shah       2017-12-21  547  	struct xvcu_device *xvcu;
816934060798dc Michael Tretter   2020-11-09  548  	void __iomem *regs;
cee8113a295acf Dhaval Shah       2017-12-21  549  	int ret;
cee8113a295acf Dhaval Shah       2017-12-21  550  
cee8113a295acf Dhaval Shah       2017-12-21  551  	xvcu = devm_kzalloc(&pdev->dev, sizeof(*xvcu), GFP_KERNEL);
cee8113a295acf Dhaval Shah       2017-12-21  552  	if (!xvcu)
cee8113a295acf Dhaval Shah       2017-12-21  553  		return -ENOMEM;
cee8113a295acf Dhaval Shah       2017-12-21  554  
cee8113a295acf Dhaval Shah       2017-12-21  555  	xvcu->dev = &pdev->dev;
cee8113a295acf Dhaval Shah       2017-12-21  556  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "vcu_slcr");
cee8113a295acf Dhaval Shah       2017-12-21  557  	if (!res) {
cee8113a295acf Dhaval Shah       2017-12-21  558  		dev_err(&pdev->dev, "get vcu_slcr memory resource failed.\n");
cee8113a295acf Dhaval Shah       2017-12-21  559  		return -ENODEV;
cee8113a295acf Dhaval Shah       2017-12-21  560  	}
cee8113a295acf Dhaval Shah       2017-12-21  561  
4bdc0d676a6431 Christoph Hellwig 2020-01-06  562  	xvcu->vcu_slcr_ba = devm_ioremap(&pdev->dev, res->start,
cee8113a295acf Dhaval Shah       2017-12-21  563  						 resource_size(res));
cee8113a295acf Dhaval Shah       2017-12-21  564  	if (!xvcu->vcu_slcr_ba) {
cee8113a295acf Dhaval Shah       2017-12-21  565  		dev_err(&pdev->dev, "vcu_slcr register mapping failed.\n");
cee8113a295acf Dhaval Shah       2017-12-21  566  		return -ENOMEM;
cee8113a295acf Dhaval Shah       2017-12-21  567  	}
cee8113a295acf Dhaval Shah       2017-12-21  568  
816934060798dc Michael Tretter   2020-11-09  569  	xvcu->logicore_reg_ba =
816934060798dc Michael Tretter   2020-11-09  570  		syscon_regmap_lookup_by_compatible("xlnx,vcu-settings");
816934060798dc Michael Tretter   2020-11-09  571  	if (IS_ERR(xvcu->logicore_reg_ba)) {
816934060798dc Michael Tretter   2020-11-09  572  		dev_info(&pdev->dev,
816934060798dc Michael Tretter   2020-11-09  573  			 "could not find xlnx,vcu-settings: trying direct register access\n");
816934060798dc Michael Tretter   2020-11-09  574  
816934060798dc Michael Tretter   2020-11-09  575  		res = platform_get_resource_byname(pdev,
816934060798dc Michael Tretter   2020-11-09  576  						   IORESOURCE_MEM, "logicore");
cee8113a295acf Dhaval Shah       2017-12-21  577  		if (!res) {
cee8113a295acf Dhaval Shah       2017-12-21  578  			dev_err(&pdev->dev, "get logicore memory resource failed.\n");
cee8113a295acf Dhaval Shah       2017-12-21  579  			return -ENODEV;
cee8113a295acf Dhaval Shah       2017-12-21  580  		}
cee8113a295acf Dhaval Shah       2017-12-21  581  
816934060798dc Michael Tretter   2020-11-09  582  		regs = devm_ioremap(&pdev->dev, res->start, resource_size(res));
816934060798dc Michael Tretter   2020-11-09  583  		if (!regs) {
cee8113a295acf Dhaval Shah       2017-12-21  584  			dev_err(&pdev->dev, "logicore register mapping failed.\n");
cee8113a295acf Dhaval Shah       2017-12-21  585  			return -ENOMEM;
cee8113a295acf Dhaval Shah       2017-12-21  586  		}
cee8113a295acf Dhaval Shah       2017-12-21  587  
816934060798dc Michael Tretter   2020-11-09  588  		xvcu->logicore_reg_ba =
816934060798dc Michael Tretter   2020-11-09  589  			devm_regmap_init_mmio(&pdev->dev, regs,
816934060798dc Michael Tretter   2020-11-09  590  					      &vcu_settings_regmap_config);
816934060798dc Michael Tretter   2020-11-09  591  		if (IS_ERR(xvcu->logicore_reg_ba)) {
816934060798dc Michael Tretter   2020-11-09  592  			dev_err(&pdev->dev, "failed to init regmap\n");
816934060798dc Michael Tretter   2020-11-09  593  			return PTR_ERR(xvcu->logicore_reg_ba);
816934060798dc Michael Tretter   2020-11-09  594  		}
816934060798dc Michael Tretter   2020-11-09  595  	}
816934060798dc Michael Tretter   2020-11-09  596  
cee8113a295acf Dhaval Shah       2017-12-21  597  	xvcu->aclk = devm_clk_get(&pdev->dev, "aclk");
cee8113a295acf Dhaval Shah       2017-12-21  598  	if (IS_ERR(xvcu->aclk)) {
cee8113a295acf Dhaval Shah       2017-12-21  599  		dev_err(&pdev->dev, "Could not get aclk clock\n");
cee8113a295acf Dhaval Shah       2017-12-21  600  		return PTR_ERR(xvcu->aclk);
cee8113a295acf Dhaval Shah       2017-12-21  601  	}
cee8113a295acf Dhaval Shah       2017-12-21  602  
cee8113a295acf Dhaval Shah       2017-12-21  603  	xvcu->pll_ref = devm_clk_get(&pdev->dev, "pll_ref");
cee8113a295acf Dhaval Shah       2017-12-21  604  	if (IS_ERR(xvcu->pll_ref)) {
cee8113a295acf Dhaval Shah       2017-12-21  605  		dev_err(&pdev->dev, "Could not get pll_ref clock\n");
cee8113a295acf Dhaval Shah       2017-12-21  606  		return PTR_ERR(xvcu->pll_ref);
cee8113a295acf Dhaval Shah       2017-12-21  607  	}
cee8113a295acf Dhaval Shah       2017-12-21  608  
cee8113a295acf Dhaval Shah       2017-12-21  609  	ret = clk_prepare_enable(xvcu->aclk);
cee8113a295acf Dhaval Shah       2017-12-21  610  	if (ret) {
cee8113a295acf Dhaval Shah       2017-12-21  611  		dev_err(&pdev->dev, "aclk clock enable failed\n");
cee8113a295acf Dhaval Shah       2017-12-21  612  		return ret;
cee8113a295acf Dhaval Shah       2017-12-21  613  	}
cee8113a295acf Dhaval Shah       2017-12-21  614  
cee8113a295acf Dhaval Shah       2017-12-21  615  	ret = clk_prepare_enable(xvcu->pll_ref);
cee8113a295acf Dhaval Shah       2017-12-21  616  	if (ret) {
cee8113a295acf Dhaval Shah       2017-12-21  617  		dev_err(&pdev->dev, "pll_ref clock enable failed\n");
cee8113a295acf Dhaval Shah       2017-12-21  618  		goto error_aclk;
cee8113a295acf Dhaval Shah       2017-12-21  619  	}
cee8113a295acf Dhaval Shah       2017-12-21  620  
cee8113a295acf Dhaval Shah       2017-12-21  621  	/*
cee8113a295acf Dhaval Shah       2017-12-21  622  	 * Do the Gasket isolation and put the VCU out of reset
cee8113a295acf Dhaval Shah       2017-12-21  623  	 * Bit 0 : Gasket isolation
cee8113a295acf Dhaval Shah       2017-12-21  624  	 * Bit 1 : put VCU out of reset
cee8113a295acf Dhaval Shah       2017-12-21  625  	 */
8403eb824c74c6 Dhaval Shah       2021-01-29  626  	xvcu->reset_gpio = devm_gpiod_get_optional(&pdev->dev, "reset",
8403eb824c74c6 Dhaval Shah       2021-01-29  627  						   GPIOD_OUT_LOW);
8403eb824c74c6 Dhaval Shah       2021-01-29  628  	if (IS_ERR(xvcu->reset_gpio)) {
8403eb824c74c6 Dhaval Shah       2021-01-29  629  		ret = PTR_ERR(xvcu->reset_gpio);
8403eb824c74c6 Dhaval Shah       2021-01-29  630  		dev_err(&pdev->dev, "failed to get reset gpio for vcu.\n");
8403eb824c74c6 Dhaval Shah       2021-01-29  631  		return ret;
8403eb824c74c6 Dhaval Shah       2021-01-29  632  	}
8403eb824c74c6 Dhaval Shah       2021-01-29  633  
8403eb824c74c6 Dhaval Shah       2021-01-29  634  	if (xvcu->reset_gpio) {
8403eb824c74c6 Dhaval Shah       2021-01-29  635  		gpiod_set_value(xvcu->reset_gpio, 0);
8403eb824c74c6 Dhaval Shah       2021-01-29  636  		/* min 2 clock cycle of vcu pll_ref, slowest freq is 33.33KHz */
8403eb824c74c6 Dhaval Shah       2021-01-29  637  		usleep_range(60, 120);
8403eb824c74c6 Dhaval Shah       2021-01-29  638  		gpiod_set_value(xvcu->reset_gpio, 1);
8403eb824c74c6 Dhaval Shah       2021-01-29  639  		usleep_range(60, 120);
8403eb824c74c6 Dhaval Shah       2021-01-29  640  	} else {
8403eb824c74c6 Dhaval Shah       2021-01-29  641  		dev_warn(&pdev->dev, "No reset gpio info from dts for vcu. This may lead to incorrect functionality if VCU isolation is removed post initialization.\n");
8403eb824c74c6 Dhaval Shah       2021-01-29  642  	}
8403eb824c74c6 Dhaval Shah       2021-01-29  643  
816934060798dc Michael Tretter   2020-11-09  644  	regmap_write(xvcu->logicore_reg_ba, VCU_GASKET_INIT, VCU_GASKET_VALUE);
cee8113a295acf Dhaval Shah       2017-12-21  645  
cee8113a295acf Dhaval Shah       2017-12-21  646  	/* Do the PLL Settings based on the ref clk,core and mcu clk freq */
cee8113a295acf Dhaval Shah       2017-12-21  647  	ret = xvcu_set_pll(xvcu);
cee8113a295acf Dhaval Shah       2017-12-21  648  	if (ret) {
cee8113a295acf Dhaval Shah       2017-12-21  649  		dev_err(&pdev->dev, "Failed to set the pll\n");
cee8113a295acf Dhaval Shah       2017-12-21  650  		goto error_pll_ref;
cee8113a295acf Dhaval Shah       2017-12-21  651  	}
cee8113a295acf Dhaval Shah       2017-12-21  652  
cee8113a295acf Dhaval Shah       2017-12-21  653  	dev_set_drvdata(&pdev->dev, xvcu);
cee8113a295acf Dhaval Shah       2017-12-21  654  
cee8113a295acf Dhaval Shah       2017-12-21  655  	return 0;
cee8113a295acf Dhaval Shah       2017-12-21  656  
cee8113a295acf Dhaval Shah       2017-12-21  657  error_pll_ref:
cee8113a295acf Dhaval Shah       2017-12-21  658  	clk_disable_unprepare(xvcu->pll_ref);
cee8113a295acf Dhaval Shah       2017-12-21  659  error_aclk:
cee8113a295acf Dhaval Shah       2017-12-21  660  	clk_disable_unprepare(xvcu->aclk);
cee8113a295acf Dhaval Shah       2017-12-21 @661  	return ret;
cee8113a295acf Dhaval Shah       2017-12-21  662  }
cee8113a295acf Dhaval Shah       2017-12-21  663  

:::::: The code at line 661 was first introduced by commit
:::::: cee8113a295acfc4cd25728d7c3d44e6bc3bbff9 soc: xilinx: xlnx_vcu: Add Xilinx ZYNQMP VCU logicoreIP init driver

:::::: TO: Dhaval Shah <dhaval.shah@xilinx.com>
:::::: CC: Michal Simek <michal.simek@xilinx.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39255 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-07-19  9:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-19  9:26 [xlnx:xlnx_rebase_v5.10 1399/1756] drivers/soc/xilinx/xlnx_vcu.c:661 xvcu_probe() warn: 'xvcu->aclk' not released on lines: 631 kernel test robot

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.