From patchwork Tue Aug 29 22:43:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Iyappan Subramanian X-Patchwork-Id: 9928411 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3A043602B9 for ; Tue, 29 Aug 2017 22:43:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2435528A82 for ; Tue, 29 Aug 2017 22:43:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1859128A8B; Tue, 29 Aug 2017 22:43:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A27CC28A82 for ; Tue, 29 Aug 2017 22:43:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=N4P/PuK13K2oenapMSK7Cf5vqvsphkVcsQ4O2SkxFxQ=; b=q5G dnOJkVYkr2v/ThGqVbFTg60872IwHEnwN4tbgLHOEzSJBRIZiT8lbwy92oFi1kVp7r6IBdGDi5gq4 92OXXEjhMNAeG37hyx9er/T449inwTgMUa9g09Oow8NOfLEb1mryagYcEaVRG3+jK7cQwceBuxZYc qSw4HHsfeo8jhth3ecc029Tfi6tJwpHi9EyyWjZzPB7nRcwRAicIakyDbtcJH5HfxvEGMh+4bi0xu gik6RkLHiofbVP6gSGoJhYihL4AgIAZWft1sKRqZ6jINcxCuXQefkmN6ifvwy+g7B33grPkYTAJvM UCa3w/r2bqm3XFXJSDvxx1xW6Km9Y+g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dmpEY-0004g4-DM; Tue, 29 Aug 2017 22:43:46 +0000 Received: from mail-pg0-x22b.google.com ([2607:f8b0:400e:c05::22b]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dmpEU-0004dZ-Rg for linux-arm-kernel@lists.infradead.org; Tue, 29 Aug 2017 22:43:44 +0000 Received: by mail-pg0-x22b.google.com with SMTP id 83so14643027pgb.4 for ; Tue, 29 Aug 2017 15:43:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apm.com; s=apm; h=from:to:cc:subject:date:message-id; bh=TpAWZn2aLl6SBtbyAVvw6mlUIyJkdVqlBfZk/Sw02XU=; b=lWYI4hn3hpggR14eX4KWAKVWRbNG7ec1AYU4YCLUqhfrm0jhm2kRML+pGmEhF8CgSF vx+YzrWwPIuNLbVrjHy2idzw6vHeKhpnAJDqpX9fespwHOcIK/U9FZuM8BZiyuPxN5tU H8WSp2Mwf7IBiTBdzgPdnsFsAkL++qSbiSbYs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=TpAWZn2aLl6SBtbyAVvw6mlUIyJkdVqlBfZk/Sw02XU=; b=UvxI1Myxv/lXtPBBJ8cv8B8HuZIwSeaXvcY7hCFNyfhrn42IHGzGEyXBJXxoHy74Kh wCRQ8GSwBHMkSmrpKf/nmx/oK77qRvjz29etYxYTOfm+5HOzOQidnF1FpNAZOghF8idG 8Z5Msa65uXm6y7JXCBdXro4Hrf3wARa7WmR7rhm0pl15AGsVEagodNBQTYrbhfeoVYEN +3lpmP9PRFv5oH7OcrzmEMp/+p3m1gpoe6kPMVowIY9Yufm6P2JAmKUarjE/arAM9RsE YdihuuaIR3NdQ+xjcc2RgWF1JkCqYhGt7aIeDVnn4IqCmmZZT6Q7l3K1ZY4CoeglIUoe 8Now== X-Gm-Message-State: AHYfb5ihn2Vp7+uUVlEFC6ZDp2Z43hFnmCoZoOl0vdJcs/5g/PkvOdoq 4dL2rS8uuF9pZ5Wb X-Received: by 10.84.211.150 with SMTP id c22mr2305438pli.23.1504046599541; Tue, 29 Aug 2017 15:43:19 -0700 (PDT) Received: from isubrama-dev.amcc.com ([206.80.4.98]) by smtp.gmail.com with ESMTPSA id d67sm6935982pfg.27.2017.08.29.15.43.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 29 Aug 2017 15:43:18 -0700 (PDT) From: Iyappan Subramanian To: davem@davemloft.net, netdev@vger.kernel.org Subject: [PATCH] drivers: net: xgene: Correct probe sequence handling Date: Tue, 29 Aug 2017 15:43:12 -0700 Message-Id: <1504046592-24779-1-git-send-email-isubramanian@apm.com> X-Mailer: git-send-email 2.7.4 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170829_154342_978647_ED0C7F48 X-CRM114-Status: GOOD ( 13.00 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Quan Nguyen , dnelson@redhat.com, patches@apm.com, linux-arm-kernel@lists.infradead.org, Iyappan Subramanian MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Quan Nguyen The phy is connected at early stage of probe but not properly disconnected if error occurs. This patch fixes the issue. Also changing the return type of xgene_enet_check_phy_handle(), since this function always returns success. Signed-off-by: Quan Nguyen Signed-off-by: Iyappan Subramanian --- drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 27 ++++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c index 1d307f2..6e253d9 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c @@ -1661,21 +1661,21 @@ static int xgene_enet_get_irqs(struct xgene_enet_pdata *pdata) return 0; } -static int xgene_enet_check_phy_handle(struct xgene_enet_pdata *pdata) +static void xgene_enet_check_phy_handle(struct xgene_enet_pdata *pdata) { int ret; if (pdata->phy_mode == PHY_INTERFACE_MODE_XGMII) - return 0; + return; if (!IS_ENABLED(CONFIG_MDIO_XGENE)) - return 0; + return; ret = xgene_enet_phy_connect(pdata->ndev); if (!ret) pdata->mdio_driver = true; - return 0; + return; } static void xgene_enet_gpiod_get(struct xgene_enet_pdata *pdata) @@ -1779,10 +1779,6 @@ static int xgene_enet_get_resources(struct xgene_enet_pdata *pdata) if (ret) return ret; - ret = xgene_enet_check_phy_handle(pdata); - if (ret) - return ret; - xgene_enet_gpiod_get(pdata); pdata->clk = devm_clk_get(&pdev->dev, NULL); @@ -2097,9 +2093,11 @@ static int xgene_enet_probe(struct platform_device *pdev) goto err; } + xgene_enet_check_phy_handle(pdata); + ret = xgene_enet_init_hw(pdata); if (ret) - goto err; + goto err2; link_state = pdata->mac_ops->link_state; if (pdata->phy_mode == PHY_INTERFACE_MODE_XGMII) { @@ -2117,29 +2115,30 @@ static int xgene_enet_probe(struct platform_device *pdev) spin_lock_init(&pdata->stats_lock); ret = xgene_extd_stats_init(pdata); if (ret) - goto err2; + goto err1; xgene_enet_napi_add(pdata); ret = register_netdev(ndev); if (ret) { netdev_err(ndev, "Failed to register netdev\n"); - goto err2; + goto err1; } return 0; -err2: +err1: /* * If necessary, free_netdev() will call netif_napi_del() and undo * the effects of xgene_enet_napi_add()'s calls to netif_napi_add(). */ + xgene_enet_delete_desc_rings(pdata); + +err2: if (pdata->mdio_driver) xgene_enet_phy_disconnect(pdata); else if (phy_interface_mode_is_rgmii(pdata->phy_mode)) xgene_enet_mdio_remove(pdata); -err1: - xgene_enet_delete_desc_rings(pdata); err: free_netdev(ndev); return ret;