]> git.baikalelectronics.ru Git - kernel.git/commit
PCI: aardvark: Wait for endpoint to be ready before training link
authorRemi Pommarel <repk@triplefau.lt>
Wed, 22 May 2019 21:33:50 +0000 (23:33 +0200)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tue, 15 Oct 2019 09:38:23 +0000 (10:38 +0100)
commitb7634f55890363ccfce4a900bbc4399b79b0a786
treef72e1e1d4670d83d616ae64b7185c6c40891edc4
parent7f96f10974bcd5b20325b3cd5d374b88e8602270
PCI: aardvark: Wait for endpoint to be ready before training link

When configuring pcie reset pin from gpio (e.g. initially set by
u-boot) to pcie function this pin goes low for a brief moment
asserting the PERST# signal. Thus connected device enters fundamental
reset process and link configuration can only begin after a minimal
100ms delay (see [1]).

Because the pin configuration comes from the "default" pinctrl it is
implicitly configured before the probe callback is called:

driver_probe_device()
  really_probe()
    ...
    pinctrl_bind_pins() /* Here pin goes from gpio to PCIE reset
                           function and PERST# is asserted */
    ...
    drv->probe()

[1] "PCI Express Base Specification", REV. 4.0
    PCI Express, February 19 2014, 6.6.1 Conventional Reset

Signed-off-by: Remi Pommarel <repk@triplefau.lt>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
drivers/pci/controller/pci-aardvark.c