From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 30ECBC6369F for ; Sat, 19 Jan 2019 11:30:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F20522086D for ; Sat, 19 Jan 2019 11:30:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PxsNpdVe" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727955AbfASLah (ORCPT ); Sat, 19 Jan 2019 06:30:37 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:42650 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727930AbfASLag (ORCPT ); Sat, 19 Jan 2019 06:30:36 -0500 Received: by mail-wr1-f66.google.com with SMTP id q18so18035419wrx.9 for ; Sat, 19 Jan 2019 03:30:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=h9tXBUJ0oblCnCfWj7eu7bva63EDqjmqU/CYVRREZYo=; b=PxsNpdVeF6gNfs5ARrPMlM9nCqJowVY/EEZADrljfcFv7wZ3Oz90y8VNbobjlIS3lA XqrtZlbzfj0u7h2ec0XuJ0P/O/xooA4JSzXpfvYoT45b3UcX3ctcd6W+Hudmlc6G2KEX YwVvU5qhSWLcsJ6KisyCriDXujti2ijXk9zNP8LznM10AzQn7J1/DsREVKkIM/C4s93/ T5oDhk61oW3jg19GBvWIWvkdxfLAiOzAeMJxZZ0FigGgmchHeiyNUnnzmUSQTuvLRE2p TaixeL/kLmtSfMg3At7AA4gWF7dtuht7wXRaHv3LO0OUkGW6KHr1OlN2KdfaJQN79YvN B+XQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=h9tXBUJ0oblCnCfWj7eu7bva63EDqjmqU/CYVRREZYo=; b=IiHHd7Ojv0uC1BUwFOjR8l/UBF86vGqxTPAYU1enmO9JRQrpIvLRM3jJ7SYKJa/SCS S9Ijhk9B7rD1uk2EhP8w0rfX80gepCJsLLqfCikwjpl/m5+oh+KomtkK/8vto2Zc0tKV isYExMLZFmicHC5FTUtREkSDqVQbVizR4Q/OjsQW20NJwFEM//pljFErk5xm5HuhRDny n0/0J65SciOH8Sg87RJbVqg+iuDjUgej6rCZrS9kMtfE1yM88IXzetJdLbIp51/KHdpa /oLv2oR9md2Qp2GEI4X+a2fEE0LDPTNvErUNVZGrYdy31D3KKQZh8KPp7HIlD7avYxvr bGVQ== X-Gm-Message-State: AJcUukcd3OZP5YwZMALuwAhBQmL3If06cGJO+Ex/59CAcexxNfbwSvOa oRX6vvpcON1rtDaqviu+h9kIH/Gs X-Google-Smtp-Source: ALg8bN72M2BslFAf2+lLSGJEqPxuy9gzMbbhAD3JITlwtsfM5YPWrHcGGXLV9vuuMoq9BBfHWtzOqQ== X-Received: by 2002:a05:6000:1287:: with SMTP id f7mr21166848wrx.302.1547897434497; Sat, 19 Jan 2019 03:30:34 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:5cdd:5de5:6c17:efb0? (p200300EA8BF1E2005CDD5DE56C17EFB0.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:5cdd:5de5:6c17:efb0]) by smtp.googlemail.com with ESMTPSA id o4sm85408578wrq.66.2019.01.19.03.30.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 19 Jan 2019 03:30:34 -0800 (PST) Subject: [PATCH net-next 3/4] net: phy: enable interrupts in phy_start From: Heiner Kallweit To: Andrew Lunn , Florian Fainelli , David Miller Cc: "netdev@vger.kernel.org" References: <2d4ceacd-3b1d-84d5-02ab-32e508badc6a@gmail.com> Message-ID: Date: Sat, 19 Jan 2019 12:29:20 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <2d4ceacd-3b1d-84d5-02ab-32e508badc6a@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Interrupts don't have to be enabled before calling phy_start(). Therefore let's enable them in phy_start(). In a subsequent step we'll remove enabling interrupts from phy_connect_direct(). Signed-off-by: Heiner Kallweit --- drivers/net/phy/phy.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index fd928979b..30ba650bb 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -857,7 +857,7 @@ EXPORT_SYMBOL(phy_stop); */ void phy_start(struct phy_device *phydev) { - int err = 0; + int err; mutex_lock(&phydev->lock); @@ -867,28 +867,22 @@ void phy_start(struct phy_device *phydev) goto out; } - switch (phydev->state) { - case PHY_READY: - phydev->state = PHY_UP; - phy_start_machine(phydev); - break; - case PHY_HALTED: - /* if phy was suspended, bring the physical link up again */ - __phy_resume(phydev); + /* if phy was suspended, bring the physical link up again */ + __phy_resume(phydev); - /* make sure interrupts are re-enabled for the PHY */ - if (phy_interrupt_is_valid(phydev)) { - err = phy_enable_interrupts(phydev); - if (err < 0) - break; - } + /* make sure interrupts are enabled for the PHY */ + if (phy_interrupt_is_valid(phydev)) { + err = phy_enable_interrupts(phydev); + if (err < 0) + goto out; + } + if (phydev->state == PHY_READY) + phydev->state = PHY_UP; + else phydev->state = PHY_RESUMING; - phy_start_machine(phydev); - break; - default: - break; - } + + phy_start_machine(phydev); out: mutex_unlock(&phydev->lock); } -- 2.20.1