mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] PCI: apple: Avoid PERST# deassertion through gpiod initialization
@ 2026-10-24 16:46 Janne Grunau
  2026-10-25  9:59 ` Marc Zyngier
  0 siblings, 1 reply; 2+ messages in thread
From: Janne Grunau @ 2026-10-24 16:46 UTC (permalink / raw)
  To: Marc Zyngier, Lorenzo Pieralisi, Krzysztof Wilczyński,
	Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, Luca Ceresoli
  Cc: linux-pci, linux-kernel, stable, Janne Grunau

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@kernel.org/ [1]
Fixes: 87620512681a ("PCI: apple: Fix PERST# polarity")
Cc: stable@vger.kernel.org
Signed-off-by: Janne Grunau <j@jannau.net>
---
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@jannau.net>


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] PCI: apple: Avoid PERST# deassertion through gpiod initialization
  2026-10-24 16:46 [PATCH] PCI: apple: Avoid PERST# deassertion through gpiod initialization Janne Grunau
@ 2026-10-25  9:59 ` Marc Zyngier
  0 siblings, 0 replies; 2+ messages in thread
From: Marc Zyngier @ 2026-10-25  9:59 UTC (permalink / raw)
  To: Janne Grunau
  Cc: Lorenzo Pieralisi, Krzysztof Wilczyński,
	Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, Luca Ceresoli,
	linux-pci, linux-kernel, stable

On Sat, 24 Oct 2026 17:46:54 +0100,
Janne Grunau <j@jannau.net> 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@kernel.org/ [1]
> Fixes: 87620512681a ("PCI: apple: Fix PERST# polarity")
> Cc: stable@vger.kernel.org
> Signed-off-by: Janne Grunau <j@jannau.net>
> ---
> 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@kernel.org>

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-25  9:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-24 16:46 [PATCH] PCI: apple: Avoid PERST# deassertion through gpiod initialization Janne Grunau
2026-10-25  9:59 ` Marc Zyngier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®