On Tue, Dec 03, 2024 at 05:12:24PM +0800, Joey Lu wrote: > Dear Andrew, > > You're correct. In the stmmac_hw_init function within stmmac_main.c, whether > pmt is true is determined by checking the pmt_remote_wake_up bit in the > hardware feature register. However, our hardware configuration only supports > magic packet and not remote wakeup, so it must be overwritten in the glue > driver. Please add a comment explaining this. I'm not sure why the original code doesn't include magic packet as part > of pmt. > > source code: > > stmmac_hw_init() @net/ethernet/stmicro/stmmac/stmmac_main.c > > priv->plat->enh_desc = priv->dma_cap.enh_desc; > priv->plat->pmt = priv->dma_cap.pmt_remote_wake_up && > !(priv->plat->flags & STMMAC_FLAG_USE_PHY_WOL); > priv->hw->pmt = priv->plat->pmt; > > Or modify the condition as follows: > > priv->plat->pmt = (priv->dma_cap.pmt_remote_wake_up || priv-> > dma_cap.pmt_magic_frame) && > !(priv->plat->flags & STMMAC_FLAG_USE_PHY_WOL); Are there other glue drivers which would benefit from this? It is hard for me to say if you hardware is odd, or if this should be a generic feature which other glue drivers would use. Andrew