Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755579AbcK3ER2 (ORCPT ); Tue, 29 Nov 2016 23:17:28 -0500 Received: from mail-qt0-f170.google.com ([209.85.216.170]:33757 "EHLO mail-qt0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752277AbcK3ERY (ORCPT ); Tue, 29 Nov 2016 23:17:24 -0500 MIME-Version: 1.0 In-Reply-To: <20161129.190526.1414678491662084583.davem@davemloft.net> References: <1480325029-39224-1-git-send-email-harinik@xilinx.com> <20161129.190526.1414678491662084583.davem@davemloft.net> From: Harini Katakam Date: Wed, 30 Nov 2016 09:47:22 +0530 Message-ID: Subject: Re: [PATCH] net: macb: Write only necessary bits in NCR in macb reset To: David Miller Cc: Harini Katakam , Nicolas Ferre , netdev@vger.kernel.org, "linux-kernel@vger.kernel.org" , "michals@xilinx.com" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2010 Lines: 55 Hi David, On Wed, Nov 30, 2016 at 5:35 AM, David Miller wrote: > From: Harini Katakam > Date: Mon, 28 Nov 2016 14:53:49 +0530 > >> In macb_reset_hw, use read-modify-write to disable RX and TX. >> This way exiting settings and reserved bits wont be disturbed. >> Use the same method for clearing statistics as well. >> >> Signed-off-by: Harini Katakam > > This doesn't make much sense to me. > > Consider the two callers of this function. > > macb_init_hw() is going to do a non-masking write to the NCR > register: > > /* Enable TX and RX */ > macb_writel(bp, NCR, MACB_BIT(RE) | MACB_BIT(TE) | MACB_BIT(MPE)); > > So obviously no other writable fields matter at all for programming > the chip properly, otherwise macb_init_hw() would "or" in the bits > after a read of NCR. But that's not what this code does, it > writes "RE | TE | MPE" directly. > > And the other caller is macb_close() which is shutting down the > chip so can zero out all the other bits and it can't possibly > matter, also due to the assertion above about macb_init_hw() > showing that only the RE, TE, and MPE bits matter for proper > functioning of the chip. > > You haven't shown a issue caused by the way the code works now, so > this patch isn't fixing a bug. In fact, the "bit preserving" would > even be misleading to someone reading the code. They will ask > themselves what bits need to be preserved, and as shown above none of > them need to be. > > I'm not applying this, sorry. > Thanks for the detailed analysis. I noticed an issue with respect to management port enable bit when working on the patch series for macb mdio driver for multi MAC - multi PHY access via same mdio bus. MPE bit of the MAC (whose phy management register is used) was being reset. But that is a separate series still in review. You are right, there is no existing bug that this patch addresses. I will come back to this later if required. Regards, Harini