* [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.