From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiner Kallweit Subject: Re: [PATCH net-next v2 0/2] net: phy: improve PHY suspend/resume Date: Thu, 24 May 2018 07:52:54 +0200 Message-ID: <157635c5-6967-a207-1ee6-a2e02da2d2fe@gmail.com> References: <8fe93623-9d05-6182-fe5f-da0bd32bae0b@gmail.com> <20180523220418.GB5128@lunn.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Florian Fainelli , David Miller , "netdev@vger.kernel.org" To: Andrew Lunn Return-path: Received: from mail-wm0-f65.google.com ([74.125.82.65]:56130 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755018AbeEXFxB (ORCPT ); Thu, 24 May 2018 01:53:01 -0400 Received: by mail-wm0-f65.google.com with SMTP id a8-v6so1571969wmg.5 for ; Wed, 23 May 2018 22:53:00 -0700 (PDT) In-Reply-To: <20180523220418.GB5128@lunn.ch> Sender: netdev-owner@vger.kernel.org List-ID: Am 24.05.2018 um 00:04 schrieb Andrew Lunn: > On Wed, May 23, 2018 at 10:15:29PM +0200, Heiner Kallweit wrote: >> I have the issue that suspending the MAC-integrated PHY gives an >> error during system suspend. The sequence is: >> >> 1. unconnected PHY/MAC are runtime-suspended already >> 2. system suspend commences >> 3. mdio_bus_phy_suspend is called >> 4. suspend callback of the network driver is called (implicitly >> MAC/PHY are runtime-resumed before) >> 5. suspend callback suspends MAC/PHY >> >> The problem occurs in step 3. phy_suspend() fails because the MDIO >> bus isn't accessible due to the chip being runtime-suspended. > > I think you are fixing the wrong problem. I've had the same with the > FEC driver. I fixed it by making the MDIO operations runtime-suspend > aware: > Interesting, didn't see it from that angle yet. Sounds plausible. Thanks a lot for the feedback and I'll have a look at the FEC driver. Heiner > commit 8fff755e9f8d0f70a595e79f248695ce6aef5cc3 > Author: Andrew Lunn > Date: Sat Jul 25 22:38:02 2015 +0200 > > net: fec: Ensure clocks are enabled while using mdio bus > > When a switch is attached to the mdio bus, the mdio bus can be used > while the interface is not open. If the IPG clock is not enabled, MDIO > reads/writes will simply time out. > > Add support for runtime PM to control this clock. Enable/disable this > clock using runtime PM, with open()/close() and mdio read()/write() > function triggering runtime PM operations. Since PM is optional, the > IPG clock is enabled at probe and is no longer modified by > fec_enet_clk_enable(), thus if PM is not enabled in the kernel, it is > guaranteed the clock is running when MDIO operations are performed. > > Don't copy this patch 1:1. I introduced a few bugs which took a while > to be shaken out :-( > > Andrew >