All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] net: ethernet: ave: Remove duplicate suspend/resume calls for phy
@ 2022-10-21 17:45 Kunihiko Hayashi
  2022-10-21 20:55 ` Heiner Kallweit
  0 siblings, 1 reply; 3+ messages in thread
From: Kunihiko Hayashi @ 2022-10-21 17:45 UTC (permalink / raw)
  To: Andrew Lunn, Heiner Kallweit, Russell King, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni
  Cc: netdev, linux-kernel, Kunihiko Hayashi

Since AVE has its own suspend/resume functions, there is no need to call
mdio_bus suspend/resume functions. Set phydev->mac_managed_pm to true
to avoid the calls.

In addition, ave_open() executes __phy_resume() via phy_start() in
ave_resume(), so no need to call phy_resume() explicitly. Remove it.

Suggested-by: Heiner Kallweit <hkallweit1@gmail.com>
Fixes: 0ba78b4a4989 ("net: ethernet: ave: Add suspend/resume support")
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 drivers/net/ethernet/socionext/sni_ave.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/socionext/sni_ave.c b/drivers/net/ethernet/socionext/sni_ave.c
index 14cdd2e8373c..b4e0c57af7c3 100644
--- a/drivers/net/ethernet/socionext/sni_ave.c
+++ b/drivers/net/ethernet/socionext/sni_ave.c
@@ -1271,6 +1271,8 @@ static int ave_init(struct net_device *ndev)
 
 	phy_support_asym_pause(phydev);
 
+	phydev->mac_managed_pm = true;
+
 	phy_attached_info(phydev);
 
 	return 0;
@@ -1806,12 +1808,6 @@ static int ave_resume(struct device *dev)
 	wol.wolopts = priv->wolopts;
 	__ave_ethtool_set_wol(ndev, &wol);
 
-	if (ndev->phydev) {
-		ret = phy_resume(ndev->phydev);
-		if (ret)
-			return ret;
-	}
-
 	if (netif_running(ndev)) {
 		ret = ave_open(ndev);
 		netif_device_attach(ndev);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net] net: ethernet: ave: Remove duplicate suspend/resume calls for phy
  2022-10-21 17:45 [PATCH net] net: ethernet: ave: Remove duplicate suspend/resume calls for phy Kunihiko Hayashi
@ 2022-10-21 20:55 ` Heiner Kallweit
  2022-10-22 17:29   ` Kunihiko Hayashi
  0 siblings, 1 reply; 3+ messages in thread
From: Heiner Kallweit @ 2022-10-21 20:55 UTC (permalink / raw)
  To: Kunihiko Hayashi, Andrew Lunn, Russell King, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni
  Cc: netdev, linux-kernel

On 21.10.2022 19:45, Kunihiko Hayashi wrote:
> Since AVE has its own suspend/resume functions, there is no need to call
> mdio_bus suspend/resume functions. Set phydev->mac_managed_pm to true
> to avoid the calls.
> 
The commit description doesn't make clear (any longer) what the issue
is that you're fixing. You should mention the WARN_ON() dump here
like in your first attempt.

> In addition, ave_open() executes __phy_resume() via phy_start() in
> ave_resume(), so no need to call phy_resume() explicitly. Remove it.
> 
This sounds like an improvement, being independent of the actual fix.
The preferred approach would be:
- submit the fix to net
- submit the improvement in a separate patch to net-next

> Suggested-by: Heiner Kallweit <hkallweit1@gmail.com>
> Fixes: 0ba78b4a4989 ("net: ethernet: ave: Add suspend/resume support")
> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
> ---
>  drivers/net/ethernet/socionext/sni_ave.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/ethernet/socionext/sni_ave.c b/drivers/net/ethernet/socionext/sni_ave.c
> index 14cdd2e8373c..b4e0c57af7c3 100644
> --- a/drivers/net/ethernet/socionext/sni_ave.c
> +++ b/drivers/net/ethernet/socionext/sni_ave.c
> @@ -1271,6 +1271,8 @@ static int ave_init(struct net_device *ndev)
>  
>  	phy_support_asym_pause(phydev);
>  
> +	phydev->mac_managed_pm = true;
> +
>  	phy_attached_info(phydev);
>  
>  	return 0;
> @@ -1806,12 +1808,6 @@ static int ave_resume(struct device *dev)
>  	wol.wolopts = priv->wolopts;
>  	__ave_ethtool_set_wol(ndev, &wol);
>  
> -	if (ndev->phydev) {
> -		ret = phy_resume(ndev->phydev);
> -		if (ret)
> -			return ret;
> -	}
> -
>  	if (netif_running(ndev)) {
>  		ret = ave_open(ndev);
>  		netif_device_attach(ndev);


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net] net: ethernet: ave: Remove duplicate suspend/resume calls for phy
  2022-10-21 20:55 ` Heiner Kallweit
@ 2022-10-22 17:29   ` Kunihiko Hayashi
  0 siblings, 0 replies; 3+ messages in thread
From: Kunihiko Hayashi @ 2022-10-22 17:29 UTC (permalink / raw)
  To: Heiner Kallweit, Andrew Lunn, Russell King, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni
  Cc: netdev, linux-kernel

Hi,

On 2022/10/22 5:55, Heiner Kallweit wrote:
> On 21.10.2022 19:45, Kunihiko Hayashi wrote:
>> Since AVE has its own suspend/resume functions, there is no need to call
>> mdio_bus suspend/resume functions. Set phydev->mac_managed_pm to true
>> to avoid the calls.
>>
> The commit description doesn't make clear (any longer) what the issue
> is that you're fixing. You should mention the WARN_ON() dump here
> like in your first attempt.

Indeed, I forgot to mention the WARN_ON() dump issue.

>> In addition, ave_open() executes __phy_resume() via phy_start() in
>> ave_resume(), so no need to call phy_resume() explicitly. Remove it.
>>
> This sounds like an improvement, being independent of the actual fix.
> The preferred approach would be:
> - submit the fix to net
> - submit the improvement in a separate patch to net-next

Ah, I see.
The one is for fixing WARN_ON() dump, and the other isn't affected
by the behavior, but it should be duplicate removal.

I'll separate it into two patches.

Thank you,

---
Best Regards
Kunihiko Hayashi

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-10-22 17:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-21 17:45 [PATCH net] net: ethernet: ave: Remove duplicate suspend/resume calls for phy Kunihiko Hayashi
2022-10-21 20:55 ` Heiner Kallweit
2022-10-22 17:29   ` Kunihiko Hayashi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.