From patchwork Wed Sep 21 23:05:01 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Stanley X-Patchwork-Id: 673087 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3sfZxw63lXz9sC7 for ; Thu, 22 Sep 2016 09:06:44 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=1BMQKhCi; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933952AbcIUXGA (ORCPT ); Wed, 21 Sep 2016 19:06:00 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:36620 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933364AbcIUXFz (ORCPT ); Wed, 21 Sep 2016 19:05:55 -0400 Received: by mail-pf0-f193.google.com with SMTP id n24so2924520pfb.3; Wed, 21 Sep 2016 16:05:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=9Nke9P/0vSAAXNw0bv2pjUw4DuIWyzhrHxS5TLjvWWo=; b=1BMQKhCi+UUpGOsRpUuCvPLo4IiuasTqiTwb/ppid18q/yjz2s5Yg5xC7fJnyjazwN ju/dn6BRLrJdyZ9peAQOmopsSQYnaGoJk1h6N8sohgm5eWMoQQ0FaFNCrArqOaQUA0HF NQtG1uJKI2sGVYFTScssB+fLiMj4CBT/ee0KXGsT1petOl7s/XmApuixmzEj94lCi6tY 8wztqULsROsm95pYXGeMvxllBBpzleFagtsEajGvBkw+1pjtrrvLY9hCTZ45m0sGwTfV X9+OihHRFb222Nom3QapZHCDp7EVmGORwIQIPDH5vftT6Zy0d7xJ2qNUm6LMFi0QYAsx fRlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=9Nke9P/0vSAAXNw0bv2pjUw4DuIWyzhrHxS5TLjvWWo=; b=UVSksd08y2uD2tjaDfsUqGF0W0GzHD+BPA7rC15s6bnSFZQyEMLa+jRGl39y7FC/PF blcJYFTN8+1z5Wea7pGFD/R7Ze5ZWCn3YG847lbAobK2Z/jUSv0k60WmyzbNfbbOHsn8 8+HVKyCjYxfe6/b366ZvSL5AeYNtTlqFQmiz87kIzse2dY/VREgi/DMZdQEhIXLXJTwh ErJf23y0DrWjYEeN0TUgI/KMpNoBalyYykmZOm4FjNANZLOjrfmHgYlprOHpb/eMxM+K e5ivncXVi872y6p3muwdh59Xdccvy4Iy0ogW2QmsszC+Dr8niNHpBP9Qq2Y3Z/9JhV5S x5+Q== X-Gm-Message-State: AE9vXwMSsSOUge5U8EqHCE0lY2Un4jeTdobMSk/YDb8mAVscwjg+NjCukLSrVzXkyHIShw== X-Received: by 10.98.200.4 with SMTP id z4mr57481850pff.95.1474499154064; Wed, 21 Sep 2016 16:05:54 -0700 (PDT) Received: from aurora.jms.id.au ([2403:480:11:8000:c0f3:c161:fe9a:f6bb]) by smtp.gmail.com with ESMTPSA id y9sm317879pfk.2.2016.09.21.16.05.49 (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 21 Sep 2016 16:05:53 -0700 (PDT) Received: by aurora.jms.id.au (sSMTP sendmail emulation); Thu, 22 Sep 2016 08:35:44 +0930 From: Joel Stanley To: davem@davemloft.net Cc: clg@kaod.org, Gavin Shan , andrew@lunn.ch, andrew@aj.id.au, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, benh@kernel.crashing.org Subject: [PATCH net-next v2 4/6] net/faraday: Clear stale interrupts Date: Thu, 22 Sep 2016 08:35:01 +0930 Message-Id: <20160921230503.23309-5-joel@jms.id.au> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20160921230503.23309-1-joel@jms.id.au> References: <20160921230503.23309-1-joel@jms.id.au> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Gavin Shan There is stale interrupt (PHYSTS_CHG in ISR, bit#6 in 0x0) from the bootloader (uboot) when enabling the MAC. The stale interrupts aren't part of kernel and should be cleared. This clears the stale interrupts in ISR (0x0) when enabling the MAC. Signed-off-by: Gavin Shan Signed-off-by: Joel Stanley --- drivers/net/ethernet/faraday/ftgmac100.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c index 47f512224b57..189373743ddf 100644 --- a/drivers/net/ethernet/faraday/ftgmac100.c +++ b/drivers/net/ethernet/faraday/ftgmac100.c @@ -1112,6 +1112,7 @@ static int ftgmac100_poll(struct napi_struct *napi, int budget) static int ftgmac100_open(struct net_device *netdev) { struct ftgmac100 *priv = netdev_priv(netdev); + unsigned int status; int err; err = ftgmac100_alloc_buffers(priv); @@ -1137,6 +1138,11 @@ static int ftgmac100_open(struct net_device *netdev) ftgmac100_init_hw(priv); ftgmac100_start_hw(priv, priv->use_ncsi ? 100 : 10); + + /* Clear stale interrupts */ + status = ioread32(priv->base + FTGMAC100_OFFSET_ISR); + iowrite32(status, priv->base + FTGMAC100_OFFSET_ISR); + if (netdev->phydev) phy_start(netdev->phydev); else if (priv->use_ncsi)