CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-arm-ker...@lists.infradead.org TO: Wilken Gottwalt <wilken.gottw...@posteo.net> CC: Michal Simek <mon...@monstr.eu>
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.15 head: e7187edf49c883a9b51f102175d5b6b135a5c11e commit: 94e73979d5943bc6494bdea22c5a0f295d2dde83 [1095/1208] clk: clk-xlnx-clock-wizard-v: fix missing bitfield include :::::: branch date: 10 days ago :::::: commit date: 3 months ago config: h8300-randconfig-c023-20220710 (https://download.01.org/0day-ci/archive/20220710/202207102112.zjlu3igg-...@intel.com/config) compiler: h8300-linux-gcc (GCC) 11.3.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <l...@intel.com> Reported-by: Julia Lawall <julia.law...@lip6.fr> cocci warnings: (new ones prefixed by >>) >> drivers/clk/clk-xlnx-clock-wizard-v.c:668:16-24: ERROR: reference preceded >> by free on line 650 vim +668 drivers/clk/clk-xlnx-clock-wizard-v.c 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 540 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 541 static SIMPLE_DEV_PM_OPS(clk_wzrd_dev_pm_ops, clk_wzrd_suspend, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 542 clk_wzrd_resume); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 543 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 544 static int clk_wzrd_probe(struct platform_device *pdev) 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 545 { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 546 int i, ret; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 547 u32 regl, regh, edge, mult; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 548 u32 regld, reghd, edged, div; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 549 unsigned long rate; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 550 const char *clk_name; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 551 struct clk_wzrd *clk_wzrd; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 552 struct resource *mem; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 553 int outputs; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 554 struct device_node *np = pdev->dev.of_node; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 555 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 556 clk_wzrd = devm_kzalloc(&pdev->dev, sizeof(*clk_wzrd), GFP_KERNEL); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 557 if (!clk_wzrd) 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 558 return -ENOMEM; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 559 platform_set_drvdata(pdev, clk_wzrd); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 560 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 561 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 562 clk_wzrd->base = devm_ioremap_resource(&pdev->dev, mem); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 563 if (IS_ERR(clk_wzrd->base)) 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 564 return PTR_ERR(clk_wzrd->base); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 565 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 566 clk_wzrd->clk_in1 = devm_clk_get(&pdev->dev, "clk_in1"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 567 if (IS_ERR(clk_wzrd->clk_in1)) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 568 if (clk_wzrd->clk_in1 != ERR_PTR(-EPROBE_DEFER)) 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 569 dev_err(&pdev->dev, "clk_in1 not found\n"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 570 return PTR_ERR(clk_wzrd->clk_in1); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 571 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 572 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 573 clk_wzrd->axi_clk = devm_clk_get(&pdev->dev, "s_axi_aclk"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 574 if (IS_ERR(clk_wzrd->axi_clk)) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 575 if (clk_wzrd->axi_clk != ERR_PTR(-EPROBE_DEFER)) 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 576 dev_err(&pdev->dev, "s_axi_aclk not found\n"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 577 return PTR_ERR(clk_wzrd->axi_clk); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 578 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 579 ret = clk_prepare_enable(clk_wzrd->axi_clk); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 580 if (ret) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 581 dev_err(&pdev->dev, "enabling s_axi_aclk failed\n"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 582 return ret; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 583 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 584 rate = clk_get_rate(clk_wzrd->axi_clk); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 585 if (rate > WZRD_ACLK_MAX_FREQ) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 586 dev_err(&pdev->dev, "s_axi_aclk frequency (%lu) too high\n", 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 587 rate); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 588 ret = -EINVAL; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 589 goto err_disable_clk; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 590 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 591 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 592 outputs = of_property_count_strings(np, "clock-output-names"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 593 clk_name = kasprintf(GFP_KERNEL, "%s_mul_div", dev_name(&pdev->dev)); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 594 if (!clk_name) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 595 ret = -ENOMEM; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 596 goto err_rm_int_clk; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 597 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 598 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 599 if (outputs == 1) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 600 const char *clkout_name; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 601 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 602 if (of_property_read_string_index(np, "clock-output-names", i, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 603 &clkout_name)) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 604 dev_err(&pdev->dev, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 605 "clock output name not specified\n"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 606 ret = -EINVAL; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 607 goto err_rm_int_clks; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 608 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 609 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 610 clk_wzrd->clkout[0] = clk_wzrd_register_divider 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 611 (&pdev->dev, clkout_name, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 612 __clk_get_name(clk_wzrd->clk_in1), 0, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 613 clk_wzrd->base, WZRD_CLK_CFG_REG(3), 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 614 WZRD_CLKOUT_DIVIDE_SHIFT, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 615 WZRD_CLKOUT_DIVIDE_WIDTH, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 616 CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 617 DIV_ALL, &clkwzrd_lock); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 618 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 619 goto out; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 620 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 621 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 622 /* register multiplier */ 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 623 edge = !!(readl(clk_wzrd->base + WZRD_CLK_CFG_REG(0)) & BIT(8)); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 624 regl = (readl(clk_wzrd->base + WZRD_CLK_CFG_REG(1)) & 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 625 WZRD_CLKFBOUT_L_MASK) >> WZRD_CLKFBOUT_L_SHIFT; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 626 regh = (readl(clk_wzrd->base + WZRD_CLK_CFG_REG(1)) & 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 627 WZRD_CLKFBOUT_H_MASK) >> WZRD_CLKFBOUT_H_SHIFT; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 628 mult = (regl + regh + edge); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 629 if (!mult) 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 630 mult = 1; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 631 mult = mult * 64; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 632 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 633 regl = readl(clk_wzrd->base + WZRD_CLK_CFG_REG(51)) & 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 634 WZRD_CLKFBOUT_FRAC_EN; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 635 if (regl) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 636 regl = readl(clk_wzrd->base + WZRD_CLK_CFG_REG(48)) & 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 637 WZRD_CLKFBOUT_FRAC_MASK; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 638 mult = mult + regl; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 639 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 640 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 641 clk_name = kasprintf(GFP_KERNEL, "%s_mul", dev_name(&pdev->dev)); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 642 if (!clk_name) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 643 ret = -ENOMEM; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 644 goto err_disable_clk; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 645 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 646 clk_wzrd->clks_internal[wzrd_clk_mul] = clk_register_fixed_factor 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 647 (&pdev->dev, clk_name, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 648 __clk_get_name(clk_wzrd->clk_in1), 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 649 0, mult, 64); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 @650 kfree(clk_name); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 651 if (IS_ERR(clk_wzrd->clks_internal[wzrd_clk_mul])) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 652 dev_err(&pdev->dev, "unable to register fixed-factor clock\n"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 653 ret = PTR_ERR(clk_wzrd->clks_internal[wzrd_clk_mul]); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 654 goto err_disable_clk; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 655 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 656 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 657 /* register div */ 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 658 edged = !!(readl(clk_wzrd->base + WZRD_CLK_CFG_REG(20)) & 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 659 BIT(10)); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 660 regld = (readl(clk_wzrd->base + WZRD_CLK_CFG_REG(21)) & 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 661 WZRD_CLKFBOUT_L_MASK) >> WZRD_CLKFBOUT_L_SHIFT; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 662 reghd = (readl(clk_wzrd->base + WZRD_CLK_CFG_REG(21)) & 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 663 WZRD_CLKFBOUT_H_MASK) >> WZRD_CLKFBOUT_H_SHIFT; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 664 div = (regld + reghd + edged); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 665 if (!div) 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 666 div = 1; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 667 clk_wzrd->clks_internal[wzrd_clk_mul_div] = clk_register_fixed_factor 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 @668 (&pdev->dev, clk_name, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 669 __clk_get_name(clk_wzrd->clks_internal[wzrd_clk_mul]), 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 670 0, 1, div); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 671 if (IS_ERR(clk_wzrd->clks_internal[wzrd_clk_mul_div])) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 672 dev_err(&pdev->dev, "unable to register divider clock\n"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 673 ret = PTR_ERR(clk_wzrd->clks_internal[wzrd_clk_mul_div]); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 674 goto err_rm_int_clk; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 675 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 676 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 677 /* register div per output */ 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 678 for (i = outputs - 1; i >= 0 ; i--) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 679 const char *clkout_name; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 680 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 681 if (of_property_read_string_index(np, "clock-output-names", i, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 682 &clkout_name)) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 683 dev_err(&pdev->dev, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 684 "clock output name not specified\n"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 685 ret = -EINVAL; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 686 goto err_rm_int_clks; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 687 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 688 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 689 clk_wzrd->clkout[i] = clk_wzrd_register_divider 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 690 (&pdev->dev, clkout_name, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 691 clk_name, 0, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 692 clk_wzrd->base, (WZRD_CLK_CFG_REG(3) + i * 8), 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 693 WZRD_CLKOUT_DIVIDE_SHIFT, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 694 WZRD_CLKOUT_DIVIDE_WIDTH, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 695 CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 696 DIV_O, &clkwzrd_lock); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 697 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 698 if (IS_ERR(clk_wzrd->clkout[i])) { 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 699 int j; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 700 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 701 for (j = i + 1; j < outputs; j++) 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 702 clk_unregister(clk_wzrd->clkout[j]); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 703 dev_err(&pdev->dev, 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 704 "unable to register divider clock\n"); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 705 ret = PTR_ERR(clk_wzrd->clkout[i]); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 706 goto err_rm_int_clks; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 707 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 708 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 709 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 710 kfree(clk_name); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 711 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 712 out: 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 713 clk_wzrd->clk_data.clks = clk_wzrd->clkout; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 714 clk_wzrd->clk_data.clk_num = ARRAY_SIZE(clk_wzrd->clkout); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 715 of_clk_add_provider(np, of_clk_src_onecell_get, &clk_wzrd->clk_data); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 716 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 717 return 0; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 718 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 719 err_rm_int_clks: 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 720 clk_unregister(clk_wzrd->clks_internal[1]); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 721 err_rm_int_clk: 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 722 kfree(clk_name); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 723 clk_unregister(clk_wzrd->clks_internal[0]); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 724 err_disable_clk: 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 725 clk_disable_unprepare(clk_wzrd->axi_clk); 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 726 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 727 return ret; 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 728 } 8b5383767cb4c8 Shubhrajyoti Datta 2020-03-31 729 :::::: The code at line 668 was first introduced by commit :::::: 8b5383767cb4c856283824baee568f4286ecc0db clocking-wizard: Add versal clocking wizard support :::::: TO: Shubhrajyoti Datta <shubhrajyoti.da...@xilinx.com> :::::: CC: Michal Simek <michal.si...@xilinx.com> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org