diff options
author | Marc Zyngier <[email protected]> | 2021-11-23 18:06:34 +0000 |
---|---|---|
committer | Bjorn Helgaas <[email protected]> | 2021-12-07 10:37:31 -0600 |
commit | ee91cb570d9b12ae8cfcb96f7ea6fb80983b6a0a (patch) | |
tree | fde81c377ef0beea9a9c2bafddc792fe5071289a /net/lapb/lapb_timer.c | |
parent | 39bd54d43b3f8b3c7b3a75f5d868d8bb858860e7 (diff) |
PCI: apple: Follow the PCIe specifications when resetting the port
While the Apple PCIe driver works correctly when directly booted from the
firmware, it fails to initialise when the kernel is booted from a
bootloader using PCIe such as u-boot.
That's because we're missing a proper reset of the port (we only clear the
reset, but never assert it).
The PCIe spec requirements are two-fold:
- PERST# must be asserted before setting up the clocks and stay asserted
for at least 100us (Tperst-clk)
- Once PERST# is deasserted, the OS must wait for at least 100ms "from
the end of a Conventional Reset" before we can start talking to the
devices
Implementing this results in a booting system.
[bhelgaas: #PERST -> PERST#, update spec references to current]
Fixes: 1e33888fbe44 ("PCI: apple: Add initial hardware bring-up")
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Marc Zyngier <[email protected]>
Signed-off-by: Bjorn Helgaas <[email protected]>
Reviewed-by: Luca Ceresoli <[email protected]>
Acked-by: Pali Rohár <[email protected]>
Cc: Alyssa Rosenzweig <[email protected]>
Cc: Lorenzo Pieralisi <[email protected]>
Diffstat (limited to 'net/lapb/lapb_timer.c')
0 files changed, 0 insertions, 0 deletions