From patchwork Wed Jan 23 06:31:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1029689 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="cAA2yujD"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43kwTH3dt0z9s4s for ; Wed, 23 Jan 2019 17:33:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726300AbfAWGdG (ORCPT ); Wed, 23 Jan 2019 01:33:06 -0500 Received: from mail-wr1-f67.google.com ([209.85.221.67]:40722 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726243AbfAWGdE (ORCPT ); Wed, 23 Jan 2019 01:33:04 -0500 Received: by mail-wr1-f67.google.com with SMTP id p4so982968wrt.7 for ; Tue, 22 Jan 2019 22:33:02 -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=cAA2yujDy3doVqGkq1D2RjpIFh/EGgEE/a+ByWt5LEjO+0DzdILye8eOYL05fZANap 2WnEmwKm0jmxzF/ZtSNNXQyiXP87SsJrnrcn3RrWwCIbpLxiEnsKMHL+0w29w5CydKkG s5mNv+PNVZgSql5mzy+FzEphw7AjlVWZn77xx7HS5h9jXDDIEJZCCejDq3ap43p24bdl egznt5BmscoaRbJ31eRd/MM9M+nDUo20A353e7WTOTM8TOahFIfPjJMme5x3NByLwXNh jJ4dZzkIKRs7cE55pgHy469cYp+iesX5K2l4pvTnT9y49X799HidEqoNi4X9YWkdmy1c Rq0w== 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=c0tK/JaKcIIP4fKBgKQ6ZkXNQFh3XBiDqDLIRztA/NUJXe/8uryXyRL0AOrDjavKmH BG/o6DSUMR3Gueks9bSkJaRUUAWnp4pWyI+pIjAGbZV/RtHYOMyBtvONeTcQSJIETgr9 uIbAvN4iWfu3g37KpuhWVd+mnTR8MDk+cy2oa7aktwIHsN0OZiDABlIKkshysjck59/W aFyDifd6VPXCcovQ8BkMEDdEJA3+nW4HNPcfu24UUXuF7nY1i60AJLjim2k/l8Txa0Yq YSXOEUACNreqgERufbB4QmJD7yINsBZ3N/2w/SCY46hG1GhXHfnVviG44Gk3zY7/u+Kx ttCg== X-Gm-Message-State: AJcUukf77Bf9kqOph1Cj7aOe/9wuo719tW84Snj09Kh9dt92ZBaCik3T 06SS9I1LEi64k+5V8dnLMibDl4wA X-Google-Smtp-Source: ALg8bN4S7eUyNvcrF0F+21iJIBsspsBkc+doeIKDToxqfPQbhp8v36uMruSYlZ4CE12GrVFr+t9JHA== X-Received: by 2002:adf:fac6:: with SMTP id a6mr1159501wrs.53.1548225182229; Tue, 22 Jan 2019 22:33:02 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:341c:e0b9:6ec:c590? (p200300EA8BF1E200341CE0B906ECC590.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:341c:e0b9:6ec:c590]) by smtp.googlemail.com with ESMTPSA id w18sm35758790wmi.12.2019.01.22.22.33.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Jan 2019 22:33:01 -0800 (PST) Subject: [PATCH net-next v3 3/4] net: phy: start interrupts in phy_start From: Heiner Kallweit To: Andrew Lunn , Florian Fainelli , David Miller Cc: "netdev@vger.kernel.org" , "S-k, Shyam-sundar" References: Message-ID: <79ccd85e-e568-2d1b-dbc0-dbafac9405d7@gmail.com> Date: Wed, 23 Jan 2019 07:31:23 +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: Content-Language: en-US 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); }