From nobody Sun Feb 8 07:26:51 2026 Received: from layka.disroot.org (layka.disroot.org [178.21.23.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D9AE343D9E; Tue, 28 Oct 2025 15:44:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=178.21.23.139 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761666264; cv=none; b=PHL4vUmr/Ng+Nry7pdcBbL928ErC0Db6zZ0+G3l5GkB+hup9mr36kM2GpFBS+s5Rg7Dw5HlW+jGCUrgD64fjPM2lP+IDXWFET28v8znmLvEXkMnu58P/TfADzbzSBBAGSQl3LhSWvBX4zqqqMzMYQs9pvr/rXpHzsshaIZLCI40= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761666264; c=relaxed/simple; bh=VqxT8ZvTz5pYoplWj4px0Qp14OrM/a50t4vdKLPH1pk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rWiUj1cXhslnAPDDHfx+Y0QozMkuSFIhbMHd0Um+oXujUUu4FCYN6SqqUT8FYXajlLIizoZBF7vPzjp7q5+3i3HBsVSHYvCLrsfWAHQXuzLahTwCvOWWRpLo/SeC1eKKUAPTbt6ZlYiyBNdSNJVbN3Bn3YH09P9odq6oUGjCx4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=disroot.org; spf=pass smtp.mailfrom=disroot.org; dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b=ROL3YOtq; arc=none smtp.client-ip=178.21.23.139 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=disroot.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=disroot.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b="ROL3YOtq" Received: from mail01.disroot.lan (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id A5B4B25DAF; Tue, 28 Oct 2025 16:44:21 +0100 (CET) X-Virus-Scanned: SPAM Filter at disroot.org Received: from layka.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id oKNUI2u2njrw; Tue, 28 Oct 2025 16:44:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1761666261; bh=VqxT8ZvTz5pYoplWj4px0Qp14OrM/a50t4vdKLPH1pk=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=ROL3YOtqT8kEkVlDRph2Mz0+d6MngXrV3D2HDanm3i/eV7bEqiZ9Z3sCll9rL/Om6 6X6hHIH9JHVsnLIELy7aKUKV/uCNz6pt87RrtTHhaBqEtzDNpTFRN+v87wr1aqo/ta +TMEdLhO79Rhye2QwOph+xDbD2hxPk8dLGzizfQUrxzP5OjDWdMce8+rtyjAuDX6QP U0cFt3+9I3+F2K64yj8GKn8eMiJk02zgd6kwbxTa0WmJXdH5Vc1bQfZlN3XcIJ+R3m pZDDZzmH9WQ2ZV26TJw066MWpGdBY8863tpXy6TBrtt49Pv+p2Wzcl5+IujmDLS0qJ p+mJq9k9TvgNQ== From: Yao Zi To: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Yanteng Si , Huacai Chen , "Russell King (Oracle)" , Philipp Stanner , Tiezhu Yang , Qunqin Zhao , Yao Zi , Vladimir Oltean , Furong Xu <0x1207@gmail.com>, Kunihiko Hayashi , Jacob Keller Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 1/3] net: stmmac: Add generic suspend/resume helper for PCI-based controllers Date: Tue, 28 Oct 2025 15:43:30 +0000 Message-ID: <20251028154332.59118-2-ziyao@disroot.org> In-Reply-To: <20251028154332.59118-1-ziyao@disroot.org> References: <20251028154332.59118-1-ziyao@disroot.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Most glue driver for PCI-based DWMAC controllers utilize similar platform suspend/resume routines. Add a generic implementation to reduce duplicated code. Signed-off-by: Yao Zi --- drivers/net/ethernet/stmicro/stmmac/stmmac.h | 2 + .../net/ethernet/stmicro/stmmac/stmmac_main.c | 37 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/eth= ernet/stmicro/stmmac/stmmac.h index d5af9344dfb0..baa4ff14bdfe 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h @@ -395,6 +395,8 @@ int stmmac_xdp_open(struct net_device *dev); void stmmac_xdp_release(struct net_device *dev); int stmmac_resume(struct device *dev); int stmmac_suspend(struct device *dev); +int stmmac_pci_plat_suspend(struct device *dev, void *bsp_priv); +int stmmac_pci_plat_resume(struct device *dev, void *bsp_priv); void stmmac_dvr_remove(struct device *dev); int stmmac_dvr_probe(struct device *device, struct plat_stmmacenet_data *plat_dat, diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index fd5106880192..3bd284019ca7 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -7938,6 +7939,42 @@ EXPORT_SYMBOL_GPL(stmmac_resume); DEFINE_SIMPLE_DEV_PM_OPS(stmmac_simple_pm_ops, stmmac_suspend, stmmac_resu= me); EXPORT_SYMBOL_GPL(stmmac_simple_pm_ops); =20 +#ifdef CONFIG_PCI +int stmmac_pci_plat_suspend(struct device *dev, void *bsp_priv) +{ + struct pci_dev *pdev =3D to_pci_dev(dev); + int ret; + + ret =3D pci_save_state(pdev); + if (ret) + return ret; + + pci_disable_device(pdev); + pci_wake_from_d3(pdev, true); + + return 0; +} +EXPORT_SYMBOL_GPL(stmmac_pci_plat_suspend); + +int stmmac_pci_plat_resume(struct device *dev, void *bsp_priv) +{ + struct pci_dev *pdev =3D to_pci_dev(dev); + int ret; + + pci_restore_state(pdev); + pci_set_power_state(pdev, PCI_D0); + + ret =3D pci_enable_device(pdev); + if (ret) + return ret; + + pci_set_master(pdev); + + return 0; +} +EXPORT_SYMBOL_GPL(stmmac_pci_plat_resume); +#endif /* CONFIG_PCI */ + #ifndef MODULE static int __init stmmac_cmdline_opt(char *str) { --=20 2.50.1 From nobody Sun Feb 8 07:26:51 2026 Received: from layka.disroot.org (layka.disroot.org [178.21.23.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C27A332EC9; Tue, 28 Oct 2025 15:44:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=178.21.23.139 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761666275; cv=none; b=NgUqG31Bn1rWGtKE5uQYVtHHcDrKOT26aY3BLGFwfx0FjcZ5NozPUJmGEuYRuTNTCeWizc6zDxJdpJ5YUzqIL3xWxFCq2rRksJa0kO8NIlrBtc0ZcZrFQVfCNCCWt7uZ7DKPtDtJELRdJFSWAupGSVm98pXQDeaXa/JtlRaGz/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761666275; c=relaxed/simple; bh=k5bALUyYVX+hk1lKr/Cg++6TmDGqsUOe1Hy5ZWqvfXY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SJh5X+ErPiMQG6ZGDbHJqytS5nUS8irLwj329Pfj4GhHIyogsja+v645ueHkpoh+ket/l5phppuH4A9QngG1Tp3NCAHKpwSqV7xChjZS0vfAPGTZdycY8GNkdGMddbhD5A86eIU50i3U8lwa415iNrA+KXEl0YDoTfne+a0BS+Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=disroot.org; spf=pass smtp.mailfrom=disroot.org; dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b=WHjS9+GJ; arc=none smtp.client-ip=178.21.23.139 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=disroot.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=disroot.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b="WHjS9+GJ" Received: from mail01.disroot.lan (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 9DBB525CCA; Tue, 28 Oct 2025 16:44:31 +0100 (CET) X-Virus-Scanned: SPAM Filter at disroot.org Received: from layka.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id nhUiMD66JAMt; Tue, 28 Oct 2025 16:44:31 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1761666271; bh=k5bALUyYVX+hk1lKr/Cg++6TmDGqsUOe1Hy5ZWqvfXY=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=WHjS9+GJz0AdXxMmjv32drQM6bg8pSc95LqZV/jql+1AIJZZvKjr7Megcf88FJLLF +paqFb7KPlys1gzWIWbpwIrMQhc4C4zZo/YY13wwAAUR4EpHGjN5QI6f5t2O/OLqiy i3lkZkkMysEMd9fVOcSdkxFU/Gbdhwg0GuOJaTRbkc5H/UXEJAPnTb+Y7rra70L3M3 eGDKqUHABm8nMjWvn43lj2QyLAWI8TvypnOUPPI+1MAZ64NlQUn/uq0wQHwCNW4TR/ ut6vbyV8rWCqrFIyctYNAdzQi0yF8U890jpOS5HD6eoWaMXCQ1hb7jZVnzA0x2iHi7 GHum9VGkx+xQA== From: Yao Zi To: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Yanteng Si , Huacai Chen , "Russell King (Oracle)" , Philipp Stanner , Tiezhu Yang , Qunqin Zhao , Yao Zi , Vladimir Oltean , Furong Xu <0x1207@gmail.com>, Kunihiko Hayashi , Jacob Keller Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/3] net: stmmac: loongson: Use generic PCI suspend/resume routines Date: Tue, 28 Oct 2025 15:43:31 +0000 Message-ID: <20251028154332.59118-3-ziyao@disroot.org> In-Reply-To: <20251028154332.59118-1-ziyao@disroot.org> References: <20251028154332.59118-1-ziyao@disroot.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Convert glue driver for Loongson DWMAC controller to use the generic platform suspend/resume routines for PCI controllers, instead of implementing its own one. Signed-off-by: Yao Zi --- .../ethernet/stmicro/stmmac/dwmac-loongson.c | 35 ++----------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c b/drivers= /net/ethernet/stmicro/stmmac/dwmac-loongson.c index 2a3ac0136cdb..cf4c12d2de0b 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c @@ -525,37 +525,6 @@ static int loongson_dwmac_fix_reset(struct stmmac_priv= *priv, void __iomem *ioad 10000, 2000000); } =20 -static int loongson_dwmac_suspend(struct device *dev, void *bsp_priv) -{ - struct pci_dev *pdev =3D to_pci_dev(dev); - int ret; - - ret =3D pci_save_state(pdev); - if (ret) - return ret; - - pci_disable_device(pdev); - pci_wake_from_d3(pdev, true); - return 0; -} - -static int loongson_dwmac_resume(struct device *dev, void *bsp_priv) -{ - struct pci_dev *pdev =3D to_pci_dev(dev); - int ret; - - pci_restore_state(pdev); - pci_set_power_state(pdev, PCI_D0); - - ret =3D pci_enable_device(pdev); - if (ret) - return ret; - - pci_set_master(pdev); - - return 0; -} - static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_dev= ice_id *id) { struct plat_stmmacenet_data *plat; @@ -600,8 +569,8 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, c= onst struct pci_device_id plat->bsp_priv =3D ld; plat->setup =3D loongson_dwmac_setup; plat->fix_soc_reset =3D loongson_dwmac_fix_reset; - plat->suspend =3D loongson_dwmac_suspend; - plat->resume =3D loongson_dwmac_resume; + plat->suspend =3D stmmac_pci_plat_suspend; + plat->resume =3D stmmac_pci_plat_resume; ld->dev =3D &pdev->dev; ld->loongson_id =3D readl(res.addr + GMAC_VERSION) & 0xff; =20 --=20 2.50.1 From nobody Sun Feb 8 07:26:51 2026 Received: from layka.disroot.org (layka.disroot.org [178.21.23.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C238C3451C8; Tue, 28 Oct 2025 15:45:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=178.21.23.139 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761666325; cv=none; b=BX3TsRowIVQeOqnDKB1b5nBzoWjakt19H9sbywgwEtKtqY1GabxwJY+MSC/25bSpteIRqE2nn5MXgGvHAghsVJm+Xd0mc8d1oubhbYfohW7fAScCCfPR2w8T16kqwyRQCOEBh6lRw6qqBw1exMryaSNh4OKYlauVZlQd9duAyHg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761666325; c=relaxed/simple; bh=+3Inzpf1mG0SJMoSxelog+i63O9kJIZxuw8kRM1j/nU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mc/vJz/1EfD1xGdZSwp6Wku7Y5rYYxp+1cNxBZ/GPVxHHuG1ddBikHBQxQR8FGja+r8ZpDshXFtxnQtJNiAi4Q7HkD9WikGRZsH3GPGkM+Xjou7OtxCeagOUqkPxITZOnQLDNvrKmPFloXHWemuiUu9pmepV2rKYgXgB8yL+0xE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=disroot.org; spf=pass smtp.mailfrom=disroot.org; dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b=b1J6mFwY; arc=none smtp.client-ip=178.21.23.139 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=disroot.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=disroot.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b="b1J6mFwY" Received: from mail01.disroot.lan (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 4130D22F3A; Tue, 28 Oct 2025 16:45:22 +0100 (CET) X-Virus-Scanned: SPAM Filter at disroot.org Received: from layka.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id MEOBRD312jZF; Tue, 28 Oct 2025 16:45:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1761666321; bh=+3Inzpf1mG0SJMoSxelog+i63O9kJIZxuw8kRM1j/nU=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=b1J6mFwYWAnGe2UnNr2ZvdTizOW4HgR/VxnmUahyRDew8vDK+/spVyWgpjhPJy1Sg LXWYwSod0EmIFibhXBKDIDZSx0WnWhtCnziALI4iSW8nFcvP3lbMSiTsjfdwhVdhbq /lmMBdVGEsBGyrEVY0L6+5SXH642yIe4mWVdaA5kR++cLRQBbSNoengKoXuxYpkvJc JObhfJNOLp/UO72ZeH1ubbxlmx9xAidoVtGujDPMJiPyb5vycWzhB0cNLL5Z1ecHC3 ivX99mxZkUUHFiX2oqpwUGR5qvmnmPY5/lRHGKdekWdx8B/Lfwj3RM5CdSfcS9BZl0 vKcrzPe7ZGnNw== From: Yao Zi To: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Yanteng Si , Huacai Chen , "Russell King (Oracle)" , Philipp Stanner , Tiezhu Yang , Qunqin Zhao , Yao Zi , Vladimir Oltean , Furong Xu <0x1207@gmail.com>, Kunihiko Hayashi , Jacob Keller Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 3/3] net: stmmac: pci: Use generic PCI suspend/resume routines Date: Tue, 28 Oct 2025 15:43:32 +0000 Message-ID: <20251028154332.59118-4-ziyao@disroot.org> In-Reply-To: <20251028154332.59118-1-ziyao@disroot.org> References: <20251028154332.59118-1-ziyao@disroot.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Convert STMMAC PCI glue driver to use the generic platform suspend/resume routines for PCI controllers, instead of implementing its own one. Signed-off-by: Yao Zi --- .../net/ethernet/stmicro/stmmac/stmmac_pci.c | 35 ++----------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c b/drivers/net= /ethernet/stmicro/stmmac/stmmac_pci.c index 94b3a3b27270..9e48e9b0016e 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c @@ -139,37 +139,6 @@ static const struct stmmac_pci_info snps_gmac5_pci_inf= o =3D { .setup =3D snps_gmac5_default_data, }; =20 -static int stmmac_pci_suspend(struct device *dev, void *bsp_priv) -{ - struct pci_dev *pdev =3D to_pci_dev(dev); - int ret; - - ret =3D pci_save_state(pdev); - if (ret) - return ret; - - pci_disable_device(pdev); - pci_wake_from_d3(pdev, true); - return 0; -} - -static int stmmac_pci_resume(struct device *dev, void *bsp_priv) -{ - struct pci_dev *pdev =3D to_pci_dev(dev); - int ret; - - pci_restore_state(pdev); - pci_set_power_state(pdev, PCI_D0); - - ret =3D pci_enable_device(pdev); - if (ret) - return ret; - - pci_set_master(pdev); - - return 0; -} - /** * stmmac_pci_probe * @@ -249,8 +218,8 @@ static int stmmac_pci_probe(struct pci_dev *pdev, plat->safety_feat_cfg->prtyen =3D 1; plat->safety_feat_cfg->tmouten =3D 1; =20 - plat->suspend =3D stmmac_pci_suspend; - plat->resume =3D stmmac_pci_resume; + plat->suspend =3D stmmac_pci_plat_suspend; + plat->resume =3D stmmac_pci_plat_resume; =20 return stmmac_dvr_probe(&pdev->dev, plat, &res); } --=20 2.50.1