[PATCH] PCI: apple: Avoid PERST# deassertion through gpiod initialization
From: Janne Grunau
Date: Sat Oct 24 2026 - 12:47:14 EST
Commit 87620512681a ("PCI: apple: Fix PERST# polarity") switched the
PERST# polarity by annotaing its GPIO as active low in the device tree
via [1]. It missed to update gpiod_get()'s flags to GPIOD_OUT_HIGH
resulting in deasserting PERST# through gpiod initialization.
The Aquantia AQC113 10GB ethernet device used in some Apple silicon
desktop does not finish link training with this additional PERST#
deassert before the usual PERST# dance.
Link: https://lore.kernel.org/linux-pci/20211123180636.80558-1-maz@xxxxxxxxxx/ [1]
Fixes: 87620512681a ("PCI: apple: Fix PERST# polarity")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Janne Grunau <j@xxxxxxxxxx>
---
This issue affects only a single PCIe devices of the handful of built-in
devices integrated in Apple silicon devices. It is usually hidden by
u-boot's initialisation of PCIe devices.
---
drivers/pci/controller/pcie-apple.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index c2cffc0659f4..a7f327803060 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -562,7 +562,7 @@ static int apple_pcie_setup_port(struct apple_pcie *pcie,
int ret, i;
reset = devm_fwnode_gpiod_get(pcie->dev, of_fwnode_handle(np), "reset",
- GPIOD_OUT_LOW, "PERST#");
+ GPIOD_OUT_HIGH, "PERST#");
if (IS_ERR(reset))
return PTR_ERR(reset);
---
base-commit: c03c1a14507dfaf8b856c2608f9ac216021fc222
change-id: 20261024-pcie-apple-perst-gpiod-init-b602ee4dca46
Best regards,
--
Janne Grunau <j@xxxxxxxxxx>