From patchwork Thu Mar 14 13:49:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 1056528 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="DEK3e7jX"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44KqpM0bw3z9s4Y for ; Fri, 15 Mar 2019 00:50:03 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727566AbfCNNuB (ORCPT ); Thu, 14 Mar 2019 09:50:01 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:42685 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726845AbfCNNuB (ORCPT ); Thu, 14 Mar 2019 09:50:01 -0400 Received: by mail-wr1-f67.google.com with SMTP id n9so1846323wrr.9 for ; Thu, 14 Mar 2019 06:50:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=LopwxDimRT8UjyEYLKdAqKMp3HyHxeVVB6mLtEYK2Pg=; b=DEK3e7jXnx99b+eK6vj424kE8CI5tN/CLiNyjBVJ18/VABvP911FtXthdLqTHmqsKX z+rE5vXM55cY9r4xuv205zn6gwUONqfphvFtket9SqkAVLCKK04iW9MfE2zCRYl8wyZ6 shz7MU1wR74gXNfXPsexZLOgMXvjYOp0WMfee1ruxEUGo7PiYE9Dzwg449BcmEhyyWQ1 QOcQDJtvA9o6dWef3TfopSC05US2cbVmkW5Rl0nCLKXyWq8VGvzegNpTTww5f1d8M0jF LZ44RKAkfxq3QtG5rPc6cwVyp+wMb1+iR+gsRpXPwt0NBu02xOvGqLu64uJVQxsW2n3m ETlg== 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:mime-version :content-transfer-encoding; bh=LopwxDimRT8UjyEYLKdAqKMp3HyHxeVVB6mLtEYK2Pg=; b=Mxtvp6D5Ba8PtsvXs6YD+gjrCcweiGQ97eM8PCtzY+vkawLkXuONQ1OaJaphyDx8SJ gdVkNRimKUXniG38e1BeT4lsMXjEXOng13qSTOer2Pjbeu6ChemvYwD+yK1SnhmMikYH z8K/WykZ/aIrqnpYByjcWa04q/+0bRy+3XJ3KCOxKjMQ1pw3QtfuPcEoUyCFOLjTsxjN xD4asuQomfcP2bXFOxDfa2tx2S9WL55gtZHV9224F5BsBtQsO5AusdOeYLt1PGFpuBS6 bdJcCPy4QAYWjNuYGKvfqVnaPCCddY+a/9p+gmhYZefHFPOf1p1sE/gU3QgUL94AFDK8 o21g== X-Gm-Message-State: APjAAAXAl57R/RHrO1h+xHJo6Wsc7UUp3rOQajG+C8ZNI+Mebz586KZ+ r1F1JDrAxUVCAcc00881PlQEkw== X-Google-Smtp-Source: APXvYqx/kBNzg0o902tB4RLR8XzW5YSFoBpOwlFon0LDhyLKRvqEPlgLXja/PTNtp+PohvLWIvWXsQ== X-Received: by 2002:a5d:6643:: with SMTP id f3mr11213036wrw.120.1552571399328; Thu, 14 Mar 2019 06:49:59 -0700 (PDT) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id y8sm12079963wrm.8.2019.03.14.06.49.57 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 14 Mar 2019 06:49:58 -0700 (PDT) From: Jerome Brunet To: Andrew Lunn , Florian Fainelli , Heiner Kallweit , "David S. Miller" , Kevin Hilman Cc: Jerome Brunet , netdev@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH net] net: phy: meson-gxl: fix interrupt support Date: Thu, 14 Mar 2019 14:49:45 +0100 Message-Id: <20190314134945.17300-1-jbrunet@baylibre.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If an interrupt is already pending when the interrupt is enabled on the GXL phy, no IRQ will ever be triggered. The fix is simply to make sure pending IRQs are cleared before setting up the irq mask. Fixes: cf127ff20af1 ("net: phy: meson-gxl: add interrupt support") Signed-off-by: Jerome Brunet --- drivers/net/phy/meson-gxl.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c index a238388eb1a5..0eec2913c289 100644 --- a/drivers/net/phy/meson-gxl.c +++ b/drivers/net/phy/meson-gxl.c @@ -201,6 +201,7 @@ static int meson_gxl_ack_interrupt(struct phy_device *phydev) static int meson_gxl_config_intr(struct phy_device *phydev) { u16 val; + int ret; if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { val = INTSRC_ANEG_PR @@ -213,6 +214,11 @@ static int meson_gxl_config_intr(struct phy_device *phydev) val = 0; } + /* Ack any pending IRQ */ + ret = meson_gxl_ack_interrupt(phydev); + if (ret) + return ret; + return phy_write(phydev, INTSRC_MASK, val); }