Hello Andy, On 1/15/24 21:13, Andy Shevchenko wrote: > On Mon, Jan 15, 2024 at 6:16 PM Thomas Richard > <thomas.richard@xxxxxxxxxxx> wrote: >> >> From: Théo Lebrun <theo.lebrun@xxxxxxxxxxx> >> >> Add suspend and resume support for rc mode. > > Same comments as for earlier patches. > Since it's wide, please, check the whole series for the same issues > and address them. > > ... > >> + if (pcie->reset_gpio) > > Dup, why? This pcie->reset_gpio corresponds to PERST# of PCIe endpoints. I assert it during suspend, because I have to deassert it (with a delay) during resume stage [1]. > >> + gpiod_set_value_cansleep(pcie->reset_gpio, 0); > > ... > >> + if (pcie->reset_gpio) { >> + usleep_range(100, 200); > > fsleep() ? > Btw, why is it needed here, perhaps a comment? The comment should be the same than in the probe [1]. Should I copy it? Or should I just add a reference to the probe? [1] https://elixir.bootlin.com/linux/v6.8-rc1/source/drivers/pci/controller/cadence/pci-j721e.c#L535 > >> + gpiod_set_value_cansleep(pcie->reset_gpio, 1); >> + } > > ... > >> + ret = cdns_pcie_host_setup(rc, false); >> + if (ret < 0) { >> + clk_disable_unprepare(pcie->refclk); >> + return -ENODEV; > > Why is the error code being shadowed? Yes I should return ret instead. > >> + } > > ... > >> +#define cdns_pcie_to_rc(p) container_of(p, struct cdns_pcie_rc, pcie) > > Is container_of.h included in this file? linux/container_of.h is included in linux/kernel.h. And linux/kernel.h is included in pcie-cadence.h (https://elixir.bootlin.com/linux/v6.8-rc1/source/drivers/pci/controller/cadence/pcie-cadence.h#L9). Regards, -- Thomas Richard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com