Hi Christian, kernel test robot noticed the following build warnings: [auto build test WARNING on net-next/main] url: https://github.com/intel-lab-lkp/linux/commits/Christian-Marangi/net-phylink-reset-PCS-Phylink-double-reference-on-phylink_stop/20250319-080303 base: net-next/main patch link: https://lore.kernel.org/r/20250318235850.6411-6-ansuelsmth%40gmail.com patch subject: [net-next PATCH 5/6] net: pcs: airoha: add PCS driver for Airoha SoC config: arm64-randconfig-r132-20250320 (https://download.01.org/0day-ci/archive/20250320/202503200928.j6AEMrdf-lkp@xxxxxxxxx/config) compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 87916f8c32ebd8e284091db9b70339df57fd1e90) reproduce: (https://download.01.org/0day-ci/archive/20250320/202503200928.j6AEMrdf-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202503200928.j6AEMrdf-lkp@xxxxxxxxx/ sparse warnings: (new ones prefixed by >>) >> drivers/net/pcs/pcs-airoha.c:2723:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@ drivers/net/pcs/pcs-airoha.c:2723:14: sparse: expected void *base drivers/net/pcs/pcs-airoha.c:2723:14: sparse: got void [noderef] __iomem * >> drivers/net/pcs/pcs-airoha.c:2728:25: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *regs @@ got void *base @@ drivers/net/pcs/pcs-airoha.c:2728:25: sparse: expected void [noderef] __iomem *regs drivers/net/pcs/pcs-airoha.c:2728:25: sparse: got void *base drivers/net/pcs/pcs-airoha.c:2732:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@ drivers/net/pcs/pcs-airoha.c:2732:14: sparse: expected void *base drivers/net/pcs/pcs-airoha.c:2732:14: sparse: got void [noderef] __iomem * drivers/net/pcs/pcs-airoha.c:2737:27: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *regs @@ got void *base @@ drivers/net/pcs/pcs-airoha.c:2737:27: sparse: expected void [noderef] __iomem *regs drivers/net/pcs/pcs-airoha.c:2737:27: sparse: got void *base drivers/net/pcs/pcs-airoha.c:2741:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@ drivers/net/pcs/pcs-airoha.c:2741:14: sparse: expected void *base drivers/net/pcs/pcs-airoha.c:2741:14: sparse: got void [noderef] __iomem * drivers/net/pcs/pcs-airoha.c:2746:28: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *regs @@ got void *base @@ drivers/net/pcs/pcs-airoha.c:2746:28: sparse: expected void [noderef] __iomem *regs drivers/net/pcs/pcs-airoha.c:2746:28: sparse: got void *base drivers/net/pcs/pcs-airoha.c:2750:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@ drivers/net/pcs/pcs-airoha.c:2750:14: sparse: expected void *base drivers/net/pcs/pcs-airoha.c:2750:14: sparse: got void [noderef] __iomem * drivers/net/pcs/pcs-airoha.c:2755:33: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *regs @@ got void *base @@ drivers/net/pcs/pcs-airoha.c:2755:33: sparse: expected void [noderef] __iomem *regs drivers/net/pcs/pcs-airoha.c:2755:33: sparse: got void *base drivers/net/pcs/pcs-airoha.c:2759:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@ drivers/net/pcs/pcs-airoha.c:2759:14: sparse: expected void *base drivers/net/pcs/pcs-airoha.c:2759:14: sparse: got void [noderef] __iomem * drivers/net/pcs/pcs-airoha.c:2764:29: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *regs @@ got void *base @@ drivers/net/pcs/pcs-airoha.c:2764:29: sparse: expected void [noderef] __iomem *regs drivers/net/pcs/pcs-airoha.c:2764:29: sparse: got void *base drivers/net/pcs/pcs-airoha.c:2768:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@ drivers/net/pcs/pcs-airoha.c:2768:14: sparse: expected void *base drivers/net/pcs/pcs-airoha.c:2768:14: sparse: got void [noderef] __iomem * drivers/net/pcs/pcs-airoha.c:2773:29: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *regs @@ got void *base @@ drivers/net/pcs/pcs-airoha.c:2773:29: sparse: expected void [noderef] __iomem *regs drivers/net/pcs/pcs-airoha.c:2773:29: sparse: got void *base drivers/net/pcs/pcs-airoha.c:2777:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@ drivers/net/pcs/pcs-airoha.c:2777:14: sparse: expected void *base drivers/net/pcs/pcs-airoha.c:2777:14: sparse: got void [noderef] __iomem * drivers/net/pcs/pcs-airoha.c:2782:25: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *regs @@ got void *base @@ drivers/net/pcs/pcs-airoha.c:2782:25: sparse: expected void [noderef] __iomem *regs drivers/net/pcs/pcs-airoha.c:2782:25: sparse: got void *base drivers/net/pcs/pcs-airoha.c:2786:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@ drivers/net/pcs/pcs-airoha.c:2786:14: sparse: expected void *base drivers/net/pcs/pcs-airoha.c:2786:14: sparse: got void [noderef] __iomem * drivers/net/pcs/pcs-airoha.c:2791:25: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *regs @@ got void *base @@ drivers/net/pcs/pcs-airoha.c:2791:25: sparse: expected void [noderef] __iomem *regs drivers/net/pcs/pcs-airoha.c:2791:25: sparse: got void *base vim +2723 drivers/net/pcs/pcs-airoha.c 2707 2708 static int airoha_pcs_probe(struct platform_device *pdev) 2709 { 2710 struct regmap_config syscon_config = airoha_pcs_regmap_config; 2711 struct device *dev = &pdev->dev; 2712 struct airoha_pcs_priv *priv; 2713 void *base; 2714 int ret; 2715 2716 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 2717 if (!priv) 2718 return -ENOMEM; 2719 2720 priv->dev = dev; 2721 priv->data = of_device_get_match_data(dev); 2722 > 2723 base = devm_platform_ioremap_resource_byname(pdev, "xfi_mac"); 2724 if (IS_ERR(base)) 2725 return PTR_ERR(base); 2726 2727 syscon_config.name = "xfi_mac"; > 2728 priv->xfi_mac = devm_regmap_init_mmio(dev, base, &syscon_config); 2729 if (IS_ERR(priv->xfi_mac)) 2730 return PTR_ERR(priv->xfi_mac); 2731 2732 base = devm_platform_ioremap_resource_byname(pdev, "hsgmii_an"); 2733 if (IS_ERR(base)) 2734 return PTR_ERR(base); 2735 2736 syscon_config.name = "hsgmii_an"; 2737 priv->hsgmii_an = devm_regmap_init_mmio(dev, base, &syscon_config); 2738 if (IS_ERR(priv->hsgmii_an)) 2739 return PTR_ERR(priv->hsgmii_an); 2740 2741 base = devm_platform_ioremap_resource_byname(pdev, "hsgmii_pcs"); 2742 if (IS_ERR(base)) 2743 return PTR_ERR(base); 2744 2745 syscon_config.name = "hsgmii_pcs"; 2746 priv->hsgmii_pcs = devm_regmap_init_mmio(dev, base, &syscon_config); 2747 if (IS_ERR(priv->hsgmii_pcs)) 2748 return PTR_ERR(priv->hsgmii_pcs); 2749 2750 base = devm_platform_ioremap_resource_byname(pdev, "hsgmii_rate_adp"); 2751 if (IS_ERR(base)) 2752 return PTR_ERR(base); 2753 2754 syscon_config.name = "hsgmii_rate_adp"; 2755 priv->hsgmii_rate_adp = devm_regmap_init_mmio(dev, base, &syscon_config); 2756 if (IS_ERR(priv->hsgmii_rate_adp)) 2757 return PTR_ERR(priv->hsgmii_rate_adp); 2758 2759 base = devm_platform_ioremap_resource_byname(pdev, "multi_sgmii"); 2760 if (IS_ERR(base)) 2761 return PTR_ERR(base); 2762 2763 syscon_config.name = "multi_sgmii"; 2764 priv->multi_sgmii = devm_regmap_init_mmio(dev, base, &syscon_config); 2765 if (IS_ERR(priv->multi_sgmii)) 2766 return PTR_ERR(priv->multi_sgmii); 2767 2768 base = devm_platform_ioremap_resource_byname(pdev, "usxgmii"); 2769 if (IS_ERR(base) && PTR_ERR(base) != -ENOENT) 2770 return PTR_ERR(base); 2771 2772 syscon_config.name = "usxgmii"; 2773 priv->usxgmii_pcs = devm_regmap_init_mmio(dev, base, &syscon_config); 2774 if (IS_ERR(priv->usxgmii_pcs)) 2775 return PTR_ERR(priv->usxgmii_pcs); 2776 2777 base = devm_platform_ioremap_resource_byname(pdev, "xfi_pma"); 2778 if (IS_ERR(base) && PTR_ERR(base) != -ENOENT) 2779 return PTR_ERR(base); 2780 2781 syscon_config.name = "xfi_pma"; 2782 priv->xfi_pma = devm_regmap_init_mmio(dev, base, &syscon_config); 2783 if (IS_ERR(priv->xfi_pma)) 2784 return PTR_ERR(priv->xfi_pma); 2785 2786 base = devm_platform_ioremap_resource_byname(pdev, "xfi_ana"); 2787 if (IS_ERR(base) && PTR_ERR(base) != -ENOENT) 2788 return PTR_ERR(base); 2789 2790 syscon_config.name = "xfi_ana"; 2791 priv->xfi_ana = devm_regmap_init_mmio(dev, base, &syscon_config); 2792 if (IS_ERR(priv->xfi_ana)) 2793 return PTR_ERR(priv->xfi_ana); 2794 2795 /* SCU is used to toggle XFI or HSGMII in global SoC registers */ 2796 priv->scu = syscon_regmap_lookup_by_compatible("airoha,en7581-scu"); 2797 if (IS_ERR(priv->scu)) 2798 return PTR_ERR(priv->scu); 2799 2800 priv->rsts[0].id = "mac"; 2801 priv->rsts[1].id = "phy"; 2802 ret = devm_reset_control_bulk_get_exclusive(dev, ARRAY_SIZE(priv->rsts), 2803 priv->rsts); 2804 if (ret) 2805 return dev_err_probe(dev, ret, "failed to get bulk reset lines\n"); 2806 2807 platform_set_drvdata(pdev, priv); 2808 2809 priv->pcs.ops = &airoha_pcs_ops; 2810 priv->pcs.poll = true; 2811 2812 __set_bit(PHY_INTERFACE_MODE_SGMII, priv->pcs.supported_interfaces); 2813 __set_bit(PHY_INTERFACE_MODE_1000BASEX, priv->pcs.supported_interfaces); 2814 __set_bit(PHY_INTERFACE_MODE_2500BASEX, priv->pcs.supported_interfaces); 2815 __set_bit(PHY_INTERFACE_MODE_10GBASER, priv->pcs.supported_interfaces); 2816 __set_bit(PHY_INTERFACE_MODE_USXGMII, priv->pcs.supported_interfaces); 2817 2818 return of_pcs_add_provider(dev->of_node, of_pcs_simple_get, 2819 &priv->pcs); 2820 } 2821 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki