Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3068322imu; Sun, 9 Dec 2018 16:33:00 -0800 (PST) X-Google-Smtp-Source: AFSGD/U6lxMY4eHmrTjZPBJjTuQ+m/4jlrX4Y1RhB1bf4oyHI/CZtlDNwpIaCcoot1BxWvlw9Q/x X-Received: by 2002:a62:c101:: with SMTP id i1mr10381177pfg.80.1544401980713; Sun, 09 Dec 2018 16:33:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544401980; cv=none; d=google.com; s=arc-20160816; b=nVcydrVXjGExJPKLD+W3WaNI+sHbBplAkf9JhTwbZNzyhlnSr+8jy8CWFCcyWEuF3o ELzCov+sCoWZgyGZ3wPv5drbTQqBSf9xFWCl2TzUq7hVzd3oVQXy3HdS6VtMkSHXhpZB GeftqjhpjuyHIck/6J4DElVQgwB2/zF7+2neqyncvutYhfgQOgndCAzHZS2r7qmmDIjZ Y0YyfQhlhcEjyEG0qtuSXTelQcFNDwvpnhMmaHWy+kkXteRjAPq4qkXZ7hpvUQR2KaOQ lraJ9rQwyP8gTBdMyEIvNoxS/8F5K81QZRe1NsGbAgIaYSG0hKq+7mWptvmCERdg/8zu N2ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=7MSyddfS6Fux/wCtbPvnzFTUlGwZ0V5RMSIlBTNFgHk=; b=jrhhnX8O614uXHDnxVyvQO7p19hPZxowWOickV+u2oBso8AWmavMmIoU1W0ASPO9cE TRPCVAxi/P9ognImykXD/nOmkpA/Ny3cAKm81q5X13ImWvmj9hn5AvqPaQjF1lf/cnEn aUB3t5EUm4XWuBv0le4ULye92p3yoRdQgUklQpPUCRn8lunrBPu600t2Alsk9um41bYB PqXipxiTyYyPVZ0Wzm3CodfKB4b9OaexUdlHqRefop2N7z8T5ocmNQRGnWmNHzCNrHU0 KZyljcVNDCH/AYn7YCzz/Q4SzXCAmgJLALypX7XluwQ2+niBWmCZB5l0ouG6kUq3FcpL H9ug== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p23si8138104pgk.312.2018.12.09.16.32.45; Sun, 09 Dec 2018 16:33:00 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727808AbeLIWXZ (ORCPT + 99 others); Sun, 9 Dec 2018 17:23:25 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:35114 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726490AbeLIVzT (ORCPT ); Sun, 9 Dec 2018 16:55:19 -0500 Received: from pub.yeoldevic.com ([81.174.156.145] helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gW72h-0002iZ-Qn; Sun, 09 Dec 2018 21:55:16 +0000 Received: from ben by deadeye with local (Exim 4.91) (envelope-from ) id 1gW72e-0003RB-CV; Sun, 09 Dec 2018 21:55:12 +0000 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, "Claudiu Beznea" , "Anssi Hannula" , "David S. Miller" Date: Sun, 09 Dec 2018 21:50:33 +0000 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 161/328] net: macb: do not disable MDIO bus at open/close time In-Reply-To: X-SA-Exim-Connect-IP: 81.174.156.145 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.62-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Anssi Hannula commit 0da70f808029476001109b6cb076737bc04cea2e upstream. macb_reset_hw() is called from macb_close() and indirectly from macb_open(). macb_reset_hw() zeroes the NCR register, including the MPE (Management Port Enable) bit. This will prevent accessing any other PHYs for other Ethernet MACs on the MDIO bus, which remains registered at macb_reset_hw() time, until macb_init_hw() is called from macb_open() which sets the MPE bit again. I.e. currently the MDIO bus has a short disruption at open time and is disabled at close time until the interface is opened again. Fix that by only touching the RE and TE bits when enabling and disabling RX/TX. v2: Make macb_init_hw() NCR write a single statement. Fixes: 6c36a7074436 ("macb: Use generic PHY layer") Signed-off-by: Anssi Hannula Reviewed-by: Claudiu Beznea Tested-by: Claudiu Beznea Signed-off-by: David S. Miller [bwh: Backported to 3.16: adjust filename, context] Signed-off-by: Ben Hutchings --- --- a/drivers/net/ethernet/cadence/macb.c +++ b/drivers/net/ethernet/cadence/macb.c @@ -1257,14 +1257,18 @@ static void macb_init_rings(struct macb static void macb_reset_hw(struct macb *bp) { + u32 ctrl = macb_readl(bp, NCR); + /* * Disable RX and TX (XXX: Should we halt the transmission * more gracefully?) */ - macb_writel(bp, NCR, 0); + ctrl &= ~(MACB_BIT(RE) | MACB_BIT(TE)); /* Clear the stats registers (XXX: Update stats first?) */ - macb_writel(bp, NCR, MACB_BIT(CLRSTAT)); + ctrl |= MACB_BIT(CLRSTAT); + + macb_writel(bp, NCR, ctrl); /* Clear all status flags */ macb_writel(bp, TSR, -1); @@ -1400,7 +1404,7 @@ static void macb_init_hw(struct macb *bp macb_writel(bp, TBQP, bp->tx_ring_dma); /* Enable TX and RX */ - macb_writel(bp, NCR, MACB_BIT(RE) | MACB_BIT(TE) | MACB_BIT(MPE)); + macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(RE) | MACB_BIT(TE)); /* Enable interrupts */ macb_writel(bp, IER, (MACB_RX_INT_FLAGS