Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp1400025pxu; Sat, 24 Oct 2020 09:27:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwXMytBomsJSMTXpfhfCIdAvUGLWPc+qcGTK5GvtnCzuOw9HL3akuUACdqJRRUGfvXIDsSv X-Received: by 2002:aa7:c351:: with SMTP id j17mr7688955edr.70.1603556828551; Sat, 24 Oct 2020 09:27:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603556828; cv=none; d=google.com; s=arc-20160816; b=awC3fSUe2VpwwhlZztSmlzqdCcnlhwkCgwt/AqKJpn/8RvO8WOHt3RzsE/01+wPZD9 +1hRawq/YfDEqwhzG5/MYl5oShGSLr1GwVp1ynlYXWdowq5vAM6cYwJkNhK8tgwMsavP 4DZ/mf1lJPj2Mpxs2x95QAByfGf49b8xf82LJhHY5/47ss2Id6gEiNCZECHgb6VTFPwP MVyiXES8iG5c0KM9uZ6guJsRoQcuctde7SpZPs/oNmpJ/4hX+uOFgh3U5jIntKYJd+Qo VDNhko6VgiCmJ+croUAklAiRXUkwLP5OzbKh4IQ/4FDML6EPagIiaN5UofnUbrgURuv5 LmDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=VpCGeZTL4KnJOlKfeBu0H1GfYHtYqxqfeNDA73Bqcwg=; b=JLF4mibnltNdA98musV+kLyLOZsG9w9fem63ZZAfXIiwPL620aWGYWvawCKxWJBhzZ t2FiDH6I9rLl7Fi9FvDOim7v+BClzLR9hh/lTlwlm4ZU7PQ2TsCU9IvQG7xPOqY6vCgM 9iimUUEG1XXUso27KWgn2XY1p4CIpHxA1qRP1OA+eb/eQovR5UVJk/ZZ68UJ9qWaLiFr j4hS8P/4oxupQWxrNX5bGhI+eX5J2pqgyYN55/dBBlKEGPlj5I7Eld6pqHuD/4Dw8ECS YGtVKJk5Wiei4Sn82oMDKef0e/zA1NQeTJe3JN6KImnTb0NWZK7vgP6mOcq8jywKqW8q pSfQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m22si3253955eds.570.2020.10.24.09.26.46; Sat, 24 Oct 2020 09:27:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761308AbgJXMPG (ORCPT + 99 others); Sat, 24 Oct 2020 08:15:06 -0400 Received: from inva021.nxp.com ([92.121.34.21]:59912 "EHLO inva021.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1761244AbgJXMOm (ORCPT ); Sat, 24 Oct 2020 08:14:42 -0400 Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 2B3CE200F0F; Sat, 24 Oct 2020 14:14:40 +0200 (CEST) Received: from inva024.eu-rdc02.nxp.com (inva024.eu-rdc02.nxp.com [134.27.226.22]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 1EB5F200EFA; Sat, 24 Oct 2020 14:14:40 +0200 (CEST) Received: from fsr-ub1864-126.ea.freescale.net (fsr-ub1864-126.ea.freescale.net [10.171.82.212]) by inva024.eu-rdc02.nxp.com (Postfix) with ESMTP id B72C5202EC; Sat, 24 Oct 2020 14:14:39 +0200 (CEST) From: Ioana Ciornei To: Andrew Lunn , Heiner Kallweit , Russell King , Jakub Kicinski , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ioana Ciornei , Oleksij Rempel , Michael Walle Subject: [RFC net-next 5/5] net: phy: at803x: remove the use of .ack_interrupt() Date: Sat, 24 Oct 2020 15:14:12 +0300 Message-Id: <20201024121412.10070-6-ioana.ciornei@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201024121412.10070-1-ioana.ciornei@nxp.com> References: <20201024121412.10070-1-ioana.ciornei@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In preparation of removing the .ack_interrupt() callback, we must replace its occurrences (aka phy_clear_interrupt), from the 2 places where it is called from (phy_enable_interrupts and phy_disable_interrupts), with equivalent functionality. This means that clearing interrupts now becomes something that the PHY driver is responsible of doing, before enabling interrupts and after clearing them. Make this driver follow the new contract. Cc: Oleksij Rempel Cc: Michael Walle Signed-off-by: Ioana Ciornei --- drivers/net/phy/at803x.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c index 106c6f53755f..aba198adf62d 100644 --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c @@ -614,6 +614,11 @@ static int at803x_config_intr(struct phy_device *phydev) value = phy_read(phydev, AT803X_INTR_ENABLE); if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { + /* Clear any pending interrupts */ + err = at803x_ack_interrupt(phydev); + if (err) + return err; + value |= AT803X_INTR_ENABLE_AUTONEG_ERR; value |= AT803X_INTR_ENABLE_SPEED_CHANGED; value |= AT803X_INTR_ENABLE_DUPLEX_CHANGED; @@ -621,9 +626,14 @@ static int at803x_config_intr(struct phy_device *phydev) value |= AT803X_INTR_ENABLE_LINK_SUCCESS; err = phy_write(phydev, AT803X_INTR_ENABLE, value); - } - else + } else { err = phy_write(phydev, AT803X_INTR_ENABLE, 0); + if (err) + return err; + + /* Clear any pending interrupts */ + err = at803x_ack_interrupt(phydev); + } return err; } @@ -1080,7 +1090,6 @@ static struct phy_driver at803x_driver[] = { .resume = at803x_resume, /* PHY_GBIT_FEATURES */ .read_status = at803x_read_status, - .ack_interrupt = at803x_ack_interrupt, .config_intr = at803x_config_intr, .handle_interrupt = at803x_handle_interrupt, .get_tunable = at803x_get_tunable, @@ -1101,7 +1110,6 @@ static struct phy_driver at803x_driver[] = { .suspend = at803x_suspend, .resume = at803x_resume, /* PHY_BASIC_FEATURES */ - .ack_interrupt = at803x_ack_interrupt, .config_intr = at803x_config_intr, .handle_interrupt = at803x_handle_interrupt, }, { @@ -1120,7 +1128,6 @@ static struct phy_driver at803x_driver[] = { /* PHY_GBIT_FEATURES */ .read_status = at803x_read_status, .aneg_done = at803x_aneg_done, - .ack_interrupt = &at803x_ack_interrupt, .config_intr = &at803x_config_intr, .handle_interrupt = at803x_handle_interrupt, .get_tunable = at803x_get_tunable, @@ -1141,7 +1148,6 @@ static struct phy_driver at803x_driver[] = { .suspend = at803x_suspend, .resume = at803x_resume, /* PHY_BASIC_FEATURES */ - .ack_interrupt = at803x_ack_interrupt, .config_intr = at803x_config_intr, .handle_interrupt = at803x_handle_interrupt, .cable_test_start = at803x_cable_test_start, @@ -1154,7 +1160,6 @@ static struct phy_driver at803x_driver[] = { .resume = at803x_resume, .flags = PHY_POLL_CABLE_TEST, /* PHY_BASIC_FEATURES */ - .ack_interrupt = &at803x_ack_interrupt, .config_intr = &at803x_config_intr, .handle_interrupt = at803x_handle_interrupt, .cable_test_start = at803x_cable_test_start, -- 2.28.0