Re: [PATCH] PCI: apple: Avoid PERST# deassertion through gpiod initialization
From: Marc Zyngier
Date: Sun Oct 25 2026 - 06:00:06 EST
On Sat, 24 Oct 2026 17:46:54 +0100,
Janne Grunau <j@xxxxxxxxxx> wrote:
>
> 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);
>
>
Acked-by: Marc Zyngier <maz@xxxxxxxxxx>
M.
--
Without deviation from the norm, progress is not possible.