On Sat, May 19, 2018 at 07:43:58AM +0800, Shawn Lin wrote: > Hi all, > > On 2018/5/19 2:46, kbuild test robot wrote: > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next > > head: f8d3ac43d8cd4cfba337a50794c26c7ca89d86ac > > commit: f8d3ac43d8cd4cfba337a50794c26c7ca89d86ac [20/20] Merge branch 'lorenzo/pci/rockchip' > > Seems Jan's patchset reworking of_pci_get_host_bridge_resources() > to devm_of_pci_get_host_bridge_resources() which touches pcie-rockchip, > but series reworking rockchip driver to support EP had been in Lorenzo's > pci/rockchip branch for quite some days in advance. Then the merge fails > to build. Yeah, it took me a while, but I *think* I got this all sorted out in my "next" branch (current head is a39b04c31a77). > > config: i386-allmodconfig (attached as .config) > > compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 > > reproduce: > > git checkout f8d3ac43d8cd4cfba337a50794c26c7ca89d86ac > > # save the attached .config to linux build tree > > make ARCH=i386 > > > > All errors (new ones prefixed by >>): > > > > drivers/pci/host/pcie-rockchip-host.c: In function 'rockchip_pcie_probe': > > > > drivers/pci/host/pcie-rockchip-host.c:996:8: error: implicit declaration of function 'devm_of_pci_get_host_bridge_resources'; did you mean 'pci_get_host_bridge_device'? [-Werror=implicit-function-declaration] > > err = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff, > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > pci_get_host_bridge_device > > cc1: some warnings being treated as errors > > -- > > /kbuild/src/cocci/drivers/pci/host/pcie-rockchip-host.c: In function 'rockchip_pcie_probe': > > > > /kbuild/src/cocci/drivers/pci/host/pcie-rockchip-host.c:996:8: error: implicit declaration of function 'devm_of_pci_get_host_bridge_resources'; did you mean 'pci_get_host_bridge_device'? [-Werror=implicit-function-declaration] > > err = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff, > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > pci_get_host_bridge_device > > cc1: some warnings being treated as errors > > > > vim +996 drivers/pci/host/pcie-rockchip-host.c > > > > 944 > > 945 static int rockchip_pcie_probe(struct platform_device *pdev) > > 946 { > > 947 struct rockchip_pcie *rockchip; > > 948 struct device *dev = &pdev->dev; > > 949 struct pci_bus *bus, *child; > > 950 struct pci_host_bridge *bridge; > > 951 struct resource_entry *win; > > 952 resource_size_t io_base; > > 953 struct resource *mem; > > 954 struct resource *io; > > 955 int err; > > 956 > > 957 LIST_HEAD(res); > > 958 > > 959 if (!dev->of_node) > > 960 return -ENODEV; > > 961 > > 962 bridge = devm_pci_alloc_host_bridge(dev, sizeof(*rockchip)); > > 963 if (!bridge) > > 964 return -ENOMEM; > > 965 > > 966 rockchip = pci_host_bridge_priv(bridge); > > 967 > > 968 platform_set_drvdata(pdev, rockchip); > > 969 rockchip->dev = dev; > > 970 rockchip->is_rc = true; > > 971 > > 972 err = rockchip_pcie_parse_host_dt(rockchip); > > 973 if (err) > > 974 return err; > > 975 > > 976 err = rockchip_pcie_enable_clocks(rockchip); > > 977 if (err) > > 978 return err; > > 979 > > 980 err = rockchip_pcie_set_vpcie(rockchip); > > 981 if (err) { > > 982 dev_err(dev, "failed to set vpcie regulator\n"); > > 983 goto err_set_vpcie; > > 984 } > > 985 > > 986 err = rockchip_pcie_host_init_port(rockchip); > > 987 if (err) > > 988 goto err_vpcie; > > 989 > > 990 rockchip_pcie_enable_interrupts(rockchip); > > 991 > > 992 err = rockchip_pcie_init_irq_domain(rockchip); > > 993 if (err < 0) > > 994 goto err_deinit_port; > > 995 > > > 996 err = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff, > > 997 &res, &io_base); > > 998 if (err) > > 999 goto err_remove_irq_domain; > > 1000 > > 1001 err = devm_request_pci_bus_resources(dev, &res); > > 1002 if (err) > > 1003 goto err_free_res; > > 1004 > > 1005 /* Get the I/O and memory ranges from DT */ > > 1006 resource_list_for_each_entry(win, &res) { > > 1007 switch (resource_type(win->res)) { > > 1008 case IORESOURCE_IO: > > 1009 io = win->res; > > 1010 io->name = "I/O"; > > 1011 rockchip->io_size = resource_size(io); > > 1012 rockchip->io_bus_addr = io->start - win->offset; > > 1013 err = pci_remap_iospace(io, io_base); > > 1014 if (err) { > > 1015 dev_warn(dev, "error %d: failed to map resource %pR\n", > > 1016 err, io); > > 1017 continue; > > 1018 } > > 1019 rockchip->io = io; > > 1020 break; > > 1021 case IORESOURCE_MEM: > > 1022 mem = win->res; > > 1023 mem->name = "MEM"; > > 1024 rockchip->mem_size = resource_size(mem); > > 1025 rockchip->mem_bus_addr = mem->start - win->offset; > > 1026 break; > > 1027 case IORESOURCE_BUS: > > 1028 rockchip->root_bus_nr = win->res->start; > > 1029 break; > > 1030 default: > > 1031 continue; > > 1032 } > > 1033 } > > 1034 > > 1035 err = rockchip_pcie_cfg_atu(rockchip); > > 1036 if (err) > > 1037 goto err_unmap_iospace; > > 1038 > > 1039 rockchip->msg_region = devm_ioremap(dev, rockchip->msg_bus_addr, SZ_1M); > > 1040 if (!rockchip->msg_region) { > > 1041 err = -ENOMEM; > > 1042 goto err_unmap_iospace; > > 1043 } > > 1044 > > 1045 list_splice_init(&res, &bridge->windows); > > 1046 bridge->dev.parent = dev; > > 1047 bridge->sysdata = rockchip; > > 1048 bridge->busnr = 0; > > 1049 bridge->ops = &rockchip_pcie_ops; > > 1050 bridge->map_irq = of_irq_parse_and_map_pci; > > 1051 bridge->swizzle_irq = pci_common_swizzle; > > 1052 > > 1053 err = pci_scan_root_bus_bridge(bridge); > > 1054 if (err < 0) > > 1055 goto err_unmap_iospace; > > 1056 > > 1057 bus = bridge->bus; > > 1058 > > 1059 rockchip->root_bus = bus; > > 1060 > > 1061 pci_bus_size_bridges(bus); > > 1062 pci_bus_assign_resources(bus); > > 1063 list_for_each_entry(child, &bus->children, node) > > 1064 pcie_bus_configure_settings(child); > > 1065 > > 1066 pci_bus_add_devices(bus); > > 1067 return 0; > > 1068 > > 1069 err_unmap_iospace: > > 1070 pci_unmap_iospace(rockchip->io); > > 1071 err_free_res: > > 1072 pci_free_resource_list(&res); > > 1073 err_remove_irq_domain: > > 1074 irq_domain_remove(rockchip->irq_domain); > > 1075 err_deinit_port: > > 1076 rockchip_pcie_deinit_phys(rockchip); > > 1077 err_vpcie: > > 1078 if (!IS_ERR(rockchip->vpcie12v)) > > 1079 regulator_disable(rockchip->vpcie12v); > > 1080 if (!IS_ERR(rockchip->vpcie3v3)) > > 1081 regulator_disable(rockchip->vpcie3v3); > > 1082 if (!IS_ERR(rockchip->vpcie1v8)) > > 1083 regulator_disable(rockchip->vpcie1v8); > > 1084 if (!IS_ERR(rockchip->vpcie0v9)) > > 1085 regulator_disable(rockchip->vpcie0v9); > > 1086 err_set_vpcie: > > 1087 rockchip_pcie_disable_clocks(rockchip); > > 1088 return err; > > 1089 } > > 1090 > > > > --- > > 0-DAY kernel test infrastructure Open Source Technology Center > > https://lists.01.org/pipermail/kbuild-all Intel Corporation > > > > > -- > Best Regards > Shawn Lin >