From: Coia Prant <coiaprant@gmail.com>
To: Ulf Hansson <ulfh@kernel.org>, Heiko Stuebner <heiko@sntech.de>
Cc: Sebastian Reichel <sebastian.reichel@collabora.com>,
linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org,
Coia Prant <coiaprant@gmail.com>
Subject: [PATCH] pmdomain: rockchip: mark PD_PIPE as active wakeup on RK3568
Date: Fri, 25 Sep 2026 12:17:51 +0800 [thread overview]
Message-ID: <20260925041751.495818-1-coiaprant@gmail.com> (raw)
The PD_PIPE power domain on RK3568 hosts the XPCS, the PCIe
controllers and the SATA controllers. All of them can act as
wakeup sources for the system:
- the XPCS for MAC WoL, through the SGMII link
- the PCIe controllers for PME#
- the SATA controllers for hotplug wake
The domain is registered with active_wakeup = false, so genpd powers
it down during system suspend even when a consumer is on the wakeup
path. That kills the XPCS and the SerDes, which breaks MAC WoL on
RK3568 SGMII boards, and it also powers down the PCIe and SATA
controllers while their drivers still expect the link to be alive.
Mark PD_PIPE as active_wakeup so that genpd honours the wakeup path
of its consumers. Consumers that call device_set_wakeup_path() keep
the domain powered; consumers that do not mark themselves as wakeup
sources are unaffected and the domain is still powered down when
nothing needs it.
Several other Rockchip SoCs already mark their PCIe and USB power
domains as active wakeup, for example RK3588's pcie and usb domains
and RK3576's usb domain. PD_PIPE hosts the same kind of
wakeup-capable controllers on RK3568, so this follows the same
pattern.
Signed-off-by: Coia Prant <coiaprant@gmail.com>
---
drivers/pmdomain/rockchip/pm-domains.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pmdomain/rockchip/pm-domains.c b/drivers/pmdomain/rockchip/pm-domains.c
index ba66ae719428..16ef0a235f0f 100644
--- a/drivers/pmdomain/rockchip/pm-domains.c
+++ b/drivers/pmdomain/rockchip/pm-domains.c
@@ -1296,7 +1296,7 @@ static const struct rockchip_domain_info rk3568_pm_domains[] = {
[RK3568_PD_VPU] = DOMAIN_RK3568("vpu", BIT(2), BIT(6), false, false),
[RK3568_PD_RKVDEC] = DOMAIN_RK3568("vdec", BIT(4), BIT(8), false, false),
[RK3568_PD_RKVENC] = DOMAIN_RK3568("venc", BIT(3), BIT(7), false, false),
- [RK3568_PD_PIPE] = DOMAIN_RK3568("pipe", BIT(8), BIT(11), false, false),
+ [RK3568_PD_PIPE] = DOMAIN_RK3568("pipe", BIT(8), BIT(11), true, false),
};
static const struct rockchip_domain_info rk3576_pm_domains[] = {
--
2.47.3
reply other threads:[~2026-09-25 4:18 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260925041751.495818-1-coiaprant@gmail.com \
--to=coiaprant@gmail.com \
--cc=heiko@sntech.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=sebastian.reichel@collabora.com \
--cc=ulfh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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®