Thread (15 messages) flat view 15 messages, 4 authors, 2021-06-28

RE: [PATCH net-next V1 3/4] net: stmmac: Reconfigure the PHY WOL settings in stmmac_resume()

From: Voon, Weifeng <hidden>
Date: 2021-06-24 10:07:50
Also in: lkml, netdev

quoted
quoted
quoted
After PHY received a magic packet, the PHY WOL event will be
triggered then PHY WOL event interrupt will be disarmed.
Ethtool settings will remain with WOL enabled after a S3/S4
suspend resume cycle as expected. Hence,the driver should
reconfigure the PHY settings to reenable/disable WOL depending on
the ethtool WOL settings in the resume flow.
Please could you explain this a bit more? I'm wondering if you have
a PHY driver bug. PHY WOL should remain enabled until it is
explicitly disabled.

	Andrew
Let's take Marvell 1510 as example.

As explained in driver/net/phy/marvell.c
1773 >------->-------/* If WOL event happened once, the LED[2]
interrupt pin
1774 >------->------- * will not be cleared unless we reading the
interrupt status
1775 >------->------- * register.

The WOL event will not able trigger again if the driver does not clear
the interrupt status.
Are we expecting PHY driver will automatically clears the interrupt
status rather than trigger from the MAC driver?
So you are saying the interrupt it getting discarded? I would of though it
is this interrupt which brings to system out of suspend, and it should
trigger the usual action, i.e. call the interrupt handler. That should then
clear the interrupt.

	 Andrew
No, the interrupt will not be discarded. If the PHY is in interrupt mode, the
interrupt handler will triggers and ISR will clear the WOL status bit. 
The condition here is when the PHY is in polling mode, the PHY driver does not
have any other mechanism to clear the WOL interrupt status bit.
Hence, we need to go through the PHY set_wol() again. 

Weifeng

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help