From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755221AbdCWVqC (ORCPT ); Thu, 23 Mar 2017 17:46:02 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:32770 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751837AbdCWVp7 (ORCPT ); Thu, 23 Mar 2017 17:45:59 -0400 Subject: Re: [PATCH] net: phy: handle state correctly in phy_stop_machine To: Zach Brown References: <1490214421-7269-1-git-send-email-zach.brown@ni.com> Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Andrew Lunn From: Florian Fainelli Message-ID: Date: Thu, 23 Mar 2017 14:45:54 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/23/2017 02:41 PM, Florian Fainelli wrote: > On 03/22/2017 01:27 PM, Zach Brown wrote: >> From: Nathan Sullivan >> >> If the PHY is halted on stop, then do not set the state to PHY_UP. This >> ensures the phy will be restarted later in phy_start when the machine is >> started again. > > So essentially what you want to "defeat" here is entering phy_start() > with PHY_UP therefore not run this part: > > case PHY_HALTED: > /* make sure interrupts are re-enabled for the PHY */ > if (phydev->irq != PHY_POLL) { > err = phy_enable_interrupts(phydev); > if (err < 0) > break; > } > > phydev->state = PHY_RESUMING; > do_resume = true; > break; > > which is what re-enables interrupts and makes sure the PHY is resumed, > right? > > If that's the scenario, I guess: > > Reviewed-by: Florian Fainelli And almost forgot: Fixes: 00db8189d984 ("This patch adds a PHY Abstraction Layer to the Linux Kernel, enabling ethernet drivers to remain as ignorant as is reasonable of the connected PHY's design and operation details.") -- Florian