Re: [PATCH 14/14] PCI: j721e: add suspend and resume support

From: Thomas Richard
Date: Mon Jan 22 2024 - 11:57:26 EST


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