Message ID | 20240319055110.764002-4-Raju.Lakkaraju@microchip.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: lan743x: Fixes for multiple WOL related issues | expand |
Hello, Sorry for inconvenience. Please ignore this mail only. By mistake it was not out. Thanks, Raju > -----Original Message----- > From: Raju Lakkaraju <Raju.Lakkaraju@microchip.com> > Sent: Tuesday, March 19, 2024 11:21 AM > To: netdev@vger.kernel.org > Cc: davem@davemloft.net; kuba@kernel.org; pabeni@redhat.com; > edumazet@google.com; linux-kernel@vger.kernel.org; Bryan Whitehead - > C21958 <Bryan.Whitehead@microchip.com>; UNGLinuxDriver > <UNGLinuxDriver@microchip.com> > Subject: [PATCH net V1 3/3] net: lan743x: Address problems with wake option > flags configuration sequences > > WOL secure-on and magic packet configuration table: > -------------------------------------------------------------------------------- > | Ethtool Ops | Send magic packet | Send magic packet | Send magic packet > | > | | | with password | with wrong password| > -------------------------------------------------------------------------------- > |WAKE_MAGIC (g) | wake | wake | wake | > -------------------------------------------------------------------------------- > |WAKE_SECURE_MAGIC| no wake | wake | no wake | > | (s) | | | | > -------------------------------------------------------------------------------- > | WAKE_MAGIC & | | | | > |WAKE_SECURE_MAGIC| wake | wake | wake | > | (gs) | | | | > -------------------------------------------------------------------------------- > > Fixes: 6b3768ac8e2b3 ("net: lan743x: Add support to Secure-ON WOL") > Signed-off-by: Raju Lakkaraju <Raju.Lakkaraju@microchip.com> > --- > Change List: > ------------ > V0 -> V1: > - Fix the wake option flags configuration sequences > > drivers/net/ethernet/microchip/lan743x_ethtool.c | 3 +-- > drivers/net/ethernet/microchip/lan743x_main.c | 8 +++++++- > 2 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/microchip/lan743x_ethtool.c > b/drivers/net/ethernet/microchip/lan743x_ethtool.c > index 4899582b3d1d..442c52aa0b0e 100644 > --- a/drivers/net/ethernet/microchip/lan743x_ethtool.c > +++ b/drivers/net/ethernet/microchip/lan743x_ethtool.c > @@ -1188,8 +1188,7 @@ static int lan743x_ethtool_set_wol(struct > net_device *netdev, > adapter->wolopts |= WAKE_PHY; > if (wol->wolopts & WAKE_ARP) > adapter->wolopts |= WAKE_ARP; > - if (wol->wolopts & WAKE_MAGICSECURE && > - wol->wolopts & WAKE_MAGIC) { > + if (wol->wolopts & WAKE_MAGICSECURE) { > memcpy(adapter->sopass, wol->sopass, sizeof(wol->sopass)); > adapter->wolopts |= WAKE_MAGICSECURE; > } else { > diff --git a/drivers/net/ethernet/microchip/lan743x_main.c > b/drivers/net/ethernet/microchip/lan743x_main.c > index 5641b466d70d..43e8e35fe9d0 100644 > --- a/drivers/net/ethernet/microchip/lan743x_main.c > +++ b/drivers/net/ethernet/microchip/lan743x_main.c > @@ -3639,9 +3639,15 @@ static void lan743x_pm_set_wol(struct > lan743x_adapter *adapter) > lan743x_csr_write(adapter, MAC_MP_SO_LO, sopass); > sopass = *(u16 *)&adapter->sopass[4]; > lan743x_csr_write(adapter, MAC_MP_SO_HI, sopass); > - wucsr |= MAC_MP_SO_EN_; > + wucsr |= MAC_MP_SO_EN_ | MAC_WUCSR_MPEN_; > + macrx |= MAC_RX_RXEN_; > + pmtctl |= PMT_CTL_WOL_EN_ | > PMT_CTL_MAC_D3_RX_CLK_OVR_; > } > > + if (adapter->wolopts & WAKE_MAGICSECURE && > + adapter->wolopts & WAKE_MAGIC) > + wucsr &= ~MAC_MP_SO_EN_; > + > lan743x_csr_write(adapter, MAC_WUCSR, wucsr); > lan743x_csr_write(adapter, PMT_CTL, pmtctl); > lan743x_csr_write(adapter, MAC_RX, macrx); > -- > 2.34.1
On Tue, 19 Mar 2024 06:00:15 +0000 Raju.Lakkaraju@microchip.com wrote: > Sorry for inconvenience. Please ignore this mail only. > By mistake it was not out. Unfortunately patchwork decided to include it in the series, please repost.
diff --git a/drivers/net/ethernet/microchip/lan743x_ethtool.c b/drivers/net/ethernet/microchip/lan743x_ethtool.c index 4899582b3d1d..442c52aa0b0e 100644 --- a/drivers/net/ethernet/microchip/lan743x_ethtool.c +++ b/drivers/net/ethernet/microchip/lan743x_ethtool.c @@ -1188,8 +1188,7 @@ static int lan743x_ethtool_set_wol(struct net_device *netdev, adapter->wolopts |= WAKE_PHY; if (wol->wolopts & WAKE_ARP) adapter->wolopts |= WAKE_ARP; - if (wol->wolopts & WAKE_MAGICSECURE && - wol->wolopts & WAKE_MAGIC) { + if (wol->wolopts & WAKE_MAGICSECURE) { memcpy(adapter->sopass, wol->sopass, sizeof(wol->sopass)); adapter->wolopts |= WAKE_MAGICSECURE; } else { diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c index 5641b466d70d..43e8e35fe9d0 100644 --- a/drivers/net/ethernet/microchip/lan743x_main.c +++ b/drivers/net/ethernet/microchip/lan743x_main.c @@ -3639,9 +3639,15 @@ static void lan743x_pm_set_wol(struct lan743x_adapter *adapter) lan743x_csr_write(adapter, MAC_MP_SO_LO, sopass); sopass = *(u16 *)&adapter->sopass[4]; lan743x_csr_write(adapter, MAC_MP_SO_HI, sopass); - wucsr |= MAC_MP_SO_EN_; + wucsr |= MAC_MP_SO_EN_ | MAC_WUCSR_MPEN_; + macrx |= MAC_RX_RXEN_; + pmtctl |= PMT_CTL_WOL_EN_ | PMT_CTL_MAC_D3_RX_CLK_OVR_; } + if (adapter->wolopts & WAKE_MAGICSECURE && + adapter->wolopts & WAKE_MAGIC) + wucsr &= ~MAC_MP_SO_EN_; + lan743x_csr_write(adapter, MAC_WUCSR, wucsr); lan743x_csr_write(adapter, PMT_CTL, pmtctl); lan743x_csr_write(adapter, MAC_RX, macrx);
WOL secure-on and magic packet configuration table: -------------------------------------------------------------------------------- | Ethtool Ops | Send magic packet | Send magic packet | Send magic packet | | | | with password | with wrong password| -------------------------------------------------------------------------------- |WAKE_MAGIC (g) | wake | wake | wake | -------------------------------------------------------------------------------- |WAKE_SECURE_MAGIC| no wake | wake | no wake | | (s) | | | | -------------------------------------------------------------------------------- | WAKE_MAGIC & | | | | |WAKE_SECURE_MAGIC| wake | wake | wake | | (gs) | | | | -------------------------------------------------------------------------------- Fixes: 6b3768ac8e2b3 ("net: lan743x: Add support to Secure-ON WOL") Signed-off-by: Raju Lakkaraju <Raju.Lakkaraju@microchip.com> --- Change List: ------------ V0 -> V1: - Fix the wake option flags configuration sequences drivers/net/ethernet/microchip/lan743x_ethtool.c | 3 +-- drivers/net/ethernet/microchip/lan743x_main.c | 8 +++++++- 2 files changed, 8 insertions(+), 3 deletions(-)