From: Ioana Ciornei <ciorneiioana@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
Jakub Kicinski <kuba@kernel.org>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Ioana Ciornei <ioana.ciornei@nxp.com>
Subject: [PATCH net-next 17/19] net: phy: add genphy_handle_interrupt_no_ack()
Date: Thu, 29 Oct 2020 12:07:39 +0200 [thread overview]
Message-ID: <20201029100741.462818-18-ciorneiioana@gmail.com> (raw)
In-Reply-To: <20201029100741.462818-1-ciorneiioana@gmail.com>
From: Ioana Ciornei <ioana.ciornei@nxp.com>
It seems there are cases where the interrupts are handled by another
entity (ie an IRQ controller embedded inside the PHY) and do not need
any other interraction from phylib. For this kind of PHYs, like the
RTL8366RB, add the genphy_handle_interrupt_no_ack() function which just
triggers the link state machine.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/net/phy/phy_device.c | 13 +++++++++++++
include/linux/phy.h | 1 +
2 files changed, 14 insertions(+)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index f54f483d7fd6..e13a46c25437 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -2463,6 +2463,19 @@ int genphy_soft_reset(struct phy_device *phydev)
}
EXPORT_SYMBOL(genphy_soft_reset);
+irqreturn_t genphy_handle_interrupt_no_ack(struct phy_device *phydev)
+{
+ /* It seems there are cases where the interrupts are handled by another
+ * entity (ie an IRQ controller embedded inside the PHY) and do not
+ * need any other interraction from phylib. In this case, just trigger
+ * the state machine directly.
+ */
+ phy_trigger_machine(phydev);
+
+ return 0;
+}
+EXPORT_SYMBOL(genphy_handle_interrupt_no_ack);
+
/**
* genphy_read_abilities - read PHY abilities from Clause 22 registers
* @phydev: target phy_device struct
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 566b39f6cd64..4f158d6352ae 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -1510,6 +1510,7 @@ int genphy_suspend(struct phy_device *phydev);
int genphy_resume(struct phy_device *phydev);
int genphy_loopback(struct phy_device *phydev, bool enable);
int genphy_soft_reset(struct phy_device *phydev);
+irqreturn_t genphy_handle_interrupt_no_ack(struct phy_device *phydev);
static inline int genphy_config_aneg(struct phy_device *phydev)
{
--
2.28.0
next prev parent reply other threads:[~2020-10-29 10:09 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-29 10:07 [PATCH net-next 00/19] net: phy: add support for shared interrupts (part 1) Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 01/19] net: phy: export phy_error and phy_trigger_machine Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 02/19] net: phy: add a shutdown procedure Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 03/19] net: phy: make .ack_interrupt() optional Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 04/19] net: phy: at803x: implement generic .handle_interrupt() callback Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 05/19] net: phy: at803x: remove the use of .ack_interrupt() Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 06/19] net: phy: mscc: use phy_trigger_machine() to notify link change Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 07/19] net: phy: mscc: implement generic .handle_interrupt() callback Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 08/19] net: phy: mscc: remove the use of .ack_interrupt() Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 09/19] net: phy: aquantia: implement generic .handle_interrupt() callback Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 10/19] net: phy: aquantia: remove the use of .ack_interrupt() Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 11/19] net: phy: broadcom: implement generic .handle_interrupt() callback Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 12/19] net: phy: broadcom: remove use of ack_interrupt() Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 13/19] net: phy: cicada: implement the generic .handle_interrupt() callback Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 14/19] net: phy: cicada: remove the use of .ack_interrupt() Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 15/19] net: phy: davicom: implement generic .handle_interrupt() calback Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 16/19] net: phy: davicom: remove the use of .ack_interrupt() Ioana Ciornei
2020-10-29 10:07 ` Ioana Ciornei [this message]
2020-10-29 10:07 ` [PATCH net-next 18/19] net: phy: realtek: implement generic .handle_interrupt() callback Ioana Ciornei
2020-10-29 10:07 ` [PATCH net-next 19/19] net: phy: realtek: remove the use of .ack_interrupt() Ioana Ciornei
2020-10-30 21:56 ` [PATCH net-next 00/19] net: phy: add support for shared interrupts (part 1) Heiner Kallweit
2020-10-30 22:06 ` Vladimir Oltean
2020-10-30 22:33 ` Heiner Kallweit
2020-10-30 22:46 ` Vladimir Oltean
2020-10-31 5:27 ` Ioana Ciornei
2020-10-30 22:42 ` Heiner Kallweit
2020-10-30 23:36 ` Andrew Lunn
2020-10-31 5:22 ` Ioana Ciornei
2020-10-31 10:18 ` Heiner Kallweit
2020-10-31 10:57 ` Ioana Ciornei
2020-10-31 14:32 ` Andrew Lunn
2020-10-31 14:51 ` Ioana Ciornei
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201029100741.462818-18-ciorneiioana@gmail.com \
--to=ciorneiioana@gmail.com \
--cc=andrew@lunn.ch \
--cc=hkallweit1@gmail.com \
--cc=ioana.ciornei@nxp.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®