Re: [PATCH v3 00/15] Bring suspend to RAM support to PCIe Aardvark driver

From: Gregory CLEMENT
Date: Fri Jan 18 2019 - 11:52:11 EST


Hi Miquel,

On mar., janv. 08 2019, Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote:

> Hello,
>
> As part of an effort to bring suspend to RAM support to Armada 3700
> SoCs (main target: ESPRESSObin), this series handles the work around
> the PCIe IP.
>
> First, more configuration is done in the 'setup' helper as inspired
> from the U-Boot driver. This is needed to entirely initialize the IP
> during future resume operation (patch 1).
>
> Then, reset GPIO, PHY and clock support are introduced (patch 2-4). As
> current device trees do not provide the corresponding properties, not
> finding one of these properties is not an error and just produces a
> warning. However, if the property is present, an error during PHY
> initialization will fail the probe of the driver.
>
> Note: To be sure the clock will be resumed before this driver, a first
> series adding links between clocks and consumers has been submitted,
> see [1]. Anyway, having the clock series applied first is not needed.
>
> Patch 5 adds suspend/resume hooks, re-using all the above.
>
> Finally, bindings and device trees are updated to reflect the hardware
> (patch 6-12). While the clock depends on the SoC, the reset GPIO and
> the PHY depends on the board so the clock is added in the
> armada-37xx.dtsi file while the two other properties are added in
> armada-3720-espressobin.dts.
>
> [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-January/623885.html
>
> Thanks,
> MiquÃl
>
>
> Changes since v2:
> =================
> * Minor patches reordering.
> * Added pinctrl patches from Gregory Clement fixing the PCIe pins. His
> changes implied modifications in the DT/bindings patches adding PCIe
> reset pin support.

Actually these patches are not in this series. You propably meant that
this series is depend on these patches.

If needed, for peoaple who wanted to test this series, the pinctrl
changes are now in linux-next and also in pinctrl/for-next.

Gregpry

> * Added a new patch that enlarges the PIO timeout of the driver
> (explanations in the commit log).
> * With the timeout changed, removed the "experimental delay" that was
> needed at resume time before accessing any register.
>
> Changes since v1:
> =================
> * Change the capitalization in commit titles to follow the PCI
> subsystem rules.
> * Added Suggested-by tag to the patch adding PHY support and to the
> patch adding the PHY property in the DT.
> * Added Rob's Reviewed-by tags on bindings.
> * I am following the discussion about calling functions that might
> sleep in a NOIRQ context. As there is no real problem yet (as per my
> understanding), I did not change anything on this regard.
>
>
> Miquel Raynal (15):
> PCI: aardvark: Enlarge PIO timeout
> PCI: aardvark: Configure more registers in the configuration helper
> PCI: aardvark: Add clock support
> PCI: aardvark: Add PHY support
> PCI: aardvark: Add PCIe warm reset support
> PCI: aardvark: Add external reset GPIO support
> PCI: aardvark: Add suspend to RAM support
> dt-bindings: PCI: aardvark: Describe the clocks property
> dt-bindings: PCI: aardvark: Describe the PHY property
> dt-bindings: PCI: aardvark: Describe the PCIe endpoint card reset pins
> dt-bindings: PCI: aardvark: Describe the reset-gpios property
> ARM64: dts: marvell: armada-37xx: declare PCIe clock
> ARM64: dts: marvell: armada-3720-espressobin: declare PCIe PHY
> ARM64: dts: marvell: armada-37xx: declare PCIe reset pin
> ARM64: dts: marvell: armada-3720-espressobin: declare PCIe warm reset
> pin
>
> .../devicetree/bindings/pci/aardvark-pci.txt | 14 ++
> .../dts/marvell/armada-3720-espressobin.dts | 3 +
> arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 10 +
> drivers/pci/controller/pci-aardvark.c | 217 +++++++++++++++++-
> 4 files changed, 243 insertions(+), 1 deletion(-)
>
> --
> 2.19.1
>

--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com