[PATCH net] net: jme: keep RX MAC clock enabled for WoL
From: Franck BAUR via B4 Relay
Date: Sun Oct 11 2026 - 08:33:42 EST
From: Franck BAUR <franck.baur.67@xxxxxxxxx>
The suspend path disables the RX engine and resets the MAC before
jme_powersave_phy() programs PMCS for wake-on-LAN. The MAC reset leaves
GPREG1_RXCLKOFF set, so the RX MAC clock remains gated when WoL is
armed.
On a JMicron JMC250 [197b:0250] revision 03, PMCS_MFEN is programmed
correctly but Magic Packet detection does not work while the RX MAC
clock is gated. Instrumenting JME_PMCS showed that MFDET remained clear
after receiving Magic Packets.
Re-enabling the RX MAC clock immediately before enabling WoL makes
MFDET assert and restores wake from ACPI S3. An A/B test without a
Magic Packet remained suspended until the RTC wake alarm. The wakeup
was reproduced repeatedly with the patched driver.
Keep the RX MAC clock running while WoL is armed.
Fixes: 854a2e7c331a ("jme: Safer MAC processor reset sequence")
Cc: stable@xxxxxxxxxxxxxxx
Assisted-by: LLM
Signed-off-by: Franck BAUR <franck.baur.67@xxxxxxxxx>
---
drivers/net/ethernet/jme.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c
index 25ec5f757c6828a5f5241340bf3fb01d8e0aa3e9..27ac7405f76fed169d9f1fa84d9875611dcf119c 100644
--- a/drivers/net/ethernet/jme.c
+++ b/drivers/net/ethernet/jme.c
@@ -1892,6 +1892,7 @@ jme_powersave_phy(struct jme_adapter *jme)
jme_set_100m_half(jme);
if (jme->reg_pmcs & (PMCS_LFEN | PMCS_LREN))
jme_wait_link(jme);
+ jme_mac_rxclk_on(jme);
jme_clear_pm_enable_wol(jme);
} else {
jme_phy_off(jme);
---
base-commit: af32da41b0327b9c6a37856ba82b6760d6c8d10e
change-id: 20261011-jme-wol-submit-9df9accc5367
Best regards,
--
Franck BAUR <franck.baur.67@xxxxxxxxx>