On Sunday 21 June 2020 11:05:22 kernel test robot wrote: > >> drivers/pci/controller/pci-aardvark.c:350:2: error: implicit declaration of function 'gpiod_set_value_cansleep' [-Werror,-Wimplicit-function-declaration] > gpiod_set_value_cansleep(pcie->reset_gpio, 1); > ^ > drivers/pci/controller/pci-aardvark.c:350:2: note: did you mean 'gpio_set_value_cansleep'? > include/linux/gpio.h:188:20: note: 'gpio_set_value_cansleep' declared here > static inline void gpio_set_value_cansleep(unsigned gpio, int value) > ^ > >> drivers/pci/controller/pci-aardvark.c:1074:21: error: implicit declaration of function 'devm_gpiod_get_from_of_node' [-Werror,-Wimplicit-function-declaration] > pcie->reset_gpio = devm_gpiod_get_from_of_node(dev, dev->of_node, > ^ > >> drivers/pci/controller/pci-aardvark.c:1076:14: error: use of undeclared identifier 'GPIOD_OUT_LOW' > GPIOD_OUT_LOW, > ^ > 20 warnings and 3 errors generated. > > vim +/gpiod_set_value_cansleep +350 drivers/pci/controller/pci-aardvark.c > > 335 > 336 static void advk_pcie_issue_perst(struct advk_pcie *pcie) > 337 { > 338 u32 reg; > 339 > 340 if (!pcie->reset_gpio) > 341 return; > 342 > 343 /* PERST does not work for some cards when link training is enabled */ > 344 reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG); > 345 reg &= ~LINK_TRAINING_EN; > 346 advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG); > 347 > 348 /* 10ms delay is needed for some cards */ > 349 dev_info(&pcie->pdev->dev, "issuing PERST via reset GPIO for 10ms\n"); > > 350 gpiod_set_value_cansleep(pcie->reset_gpio, 1); > 351 usleep_range(10000, 11000); > 352 gpiod_set_value_cansleep(pcie->reset_gpio, 0); > 353 } > 354 Hello! Could you try to test following patch if it fixes above problems? diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c index 90ff291c24f0..01f1fcbb8770 100644 --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c @@ -10,6 +10,7 @@ #include #include +#include #include #include #include Both GPIOD_OUT_LOW and gpiod_set_value_cansleep() are defined in linux/gpio/consumer.h header file. I do not have s390 box nor s390 cross compiler to do verification.