From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anssi Hannula Subject: [PATCH] net: macb: do not disable MDIO bus when closing interface Date: Wed, 8 Aug 2018 15:19:01 +0300 Message-ID: <20180808121901.10264-1-anssi.hannula@bitwise.fi> Cc: netdev@vger.kernel.org To: Nicolas Ferre , "David S. Miller" Return-path: Received: from mail.bitwise.fi ([109.204.228.163]:43852 "EHLO mail.bitwise.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726680AbeHHOsq (ORCPT ); Wed, 8 Aug 2018 10:48:46 -0400 Sender: netdev-owner@vger.kernel.org List-ID: macb_close() calls macb_reset_hw() which zeroes 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 is still registered. Fix that by keeping the MPE bit set. Signed-off-by: Anssi Hannula --- drivers/net/ethernet/cadence/macb_main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index dc09f9a8a49b..3ca98fc32144 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -2030,12 +2030,13 @@ static void macb_reset_hw(struct macb *bp) unsigned int q; /* Disable RX and TX (XXX: Should we halt the transmission - * more gracefully?) + * more gracefully?) but keep management port open since there + * may be other users of the mdio bus */ - macb_writel(bp, NCR, 0); + macb_writel(bp, NCR, MACB_BIT(MPE)); /* Clear the stats registers (XXX: Update stats first?) */ - macb_writel(bp, NCR, MACB_BIT(CLRSTAT)); + macb_writel(bp, NCR, MACB_BIT(CLRSTAT) | MACB_BIT(MPE)); /* Clear all status flags */ macb_writel(bp, TSR, -1); -- 2.16.3