From: Russell King <rmk+kernel@armlinux.org.uk>
To: Alexandre Belloni <alexandre.belloni@bootlin.com>,
Antoine Tenart <antoine.tenart@bootlin.com>,
Richard Cochran <richardcochran@gmail.com>
Cc: Matteo Croce <mcroce@redhat.com>,
Andre Przywara <andre.przywara@arm.com>,
Sven Auhagen <sven.auhagen@voleatech.de>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
netdev@vger.kernel.org
Subject: [PATCH net-next v3 3/7] net: mvpp2: check first level interrupt status registers
Date: Tue, 08 Sep 2020 23:00:21 +0100 [thread overview]
Message-ID: <E1kFlf3-0006cs-Ap@rmk-PC.armlinux.org.uk> (raw)
In-Reply-To: <20200908214727.GZ1551@shell.armlinux.org.uk>
Check the first level interrupt status registers to determine how to
further process the port interrupt. We will need this to know whether
to invoke the link status processing and/or the PTP processing for
both XLG and GMAC.
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/marvell/mvpp2/mvpp2.h | 4 ++++
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 13 +++++++++++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2.h b/drivers/net/ethernet/marvell/mvpp2/mvpp2.h
index a2f787c83756..273c46bbf927 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2.h
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2.h
@@ -461,6 +461,8 @@
#define MVPP22_CTRL4_DP_CLK_SEL BIT(5)
#define MVPP22_CTRL4_SYNC_BYPASS_DIS BIT(6)
#define MVPP22_CTRL4_QSGMII_BYPASS_ACTIVE BIT(7)
+#define MVPP22_GMAC_INT_SUM_STAT 0xa0
+#define MVPP22_GMAC_INT_SUM_STAT_INTERNAL BIT(1)
#define MVPP22_GMAC_INT_SUM_MASK 0xa4
#define MVPP22_GMAC_INT_SUM_MASK_LINK_STAT BIT(1)
@@ -488,6 +490,8 @@
#define MVPP22_XLG_CTRL3_MACMODESELECT_MASK (7 << 13)
#define MVPP22_XLG_CTRL3_MACMODESELECT_GMAC (0 << 13)
#define MVPP22_XLG_CTRL3_MACMODESELECT_10G (1 << 13)
+#define MVPP22_XLG_EXT_INT_STAT 0x158
+#define MVPP22_XLG_EXT_INT_STAT_XLG BIT(1)
#define MVPP22_XLG_EXT_INT_MASK 0x15c
#define MVPP22_XLG_EXT_INT_MASK_XLG BIT(1)
#define MVPP22_XLG_EXT_INT_MASK_GIG BIT(2)
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
index d85ba26ba886..8a1f03f9d5d7 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
@@ -3039,14 +3039,23 @@ static void mvpp2_isr_handle_gmac_internal(struct mvpp2_port *port)
static irqreturn_t mvpp2_port_isr(int irq, void *dev_id)
{
struct mvpp2_port *port = (struct mvpp2_port *)dev_id;
+ u32 val;
mvpp22_gop_mask_irq(port);
if (mvpp2_port_supports_xlg(port) &&
mvpp2_is_xlg(port->phy_interface)) {
- mvpp2_isr_handle_xlg(port);
+ /* Check the external status register */
+ val = readl(port->base + MVPP22_XLG_EXT_INT_STAT);
+ if (val & MVPP22_XLG_EXT_INT_STAT_XLG)
+ mvpp2_isr_handle_xlg(port);
} else {
- mvpp2_isr_handle_gmac_internal(port);
+ /* If it's not the XLG, we must be using the GMAC.
+ * Check the summary status.
+ */
+ val = readl(port->base + MVPP22_GMAC_INT_SUM_STAT);
+ if (val & MVPP22_GMAC_INT_SUM_STAT_INTERNAL)
+ mvpp2_isr_handle_gmac_internal(port);
}
mvpp22_gop_unmask_irq(port);
--
2.20.1
next prev parent reply other threads:[~2020-09-08 22:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-08 21:47 [PATCH net-next v3 0/6] Marvell PP2.2 PTP support Russell King - ARM Linux admin
2020-09-08 22:00 ` [PATCH net-next v3 1/7] net: mvpp2: restructure "link status" interrupt handling Russell King
2020-09-08 22:00 ` [PATCH net-next v3 2/7] net: mvpp2: rename mis-named "link status" interrupt Russell King
2020-09-08 22:00 ` Russell King [this message]
2020-09-08 22:00 ` [PATCH net-next v3 4/7] net: mvpp2: ptp: add TAI support Russell King
2020-09-08 22:00 ` [PATCH net-next v3 5/7] net: mvpp2: ptp: add support for receive timestamping Russell King
2020-09-09 7:27 ` kernel test robot
2020-09-08 22:00 ` [PATCH net-next v3 6/7] net: mvpp2: ptp: add interrupt handling Russell King
2020-09-08 22:00 ` [PATCH net-next v3 7/7] net: mvpp2: ptp: add support for transmit timestamping Russell King
2020-09-08 23:40 ` Richard Cochran
2020-09-08 23:50 ` Russell King - ARM Linux admin
2020-09-09 18:00 ` Richard Cochran
2020-09-11 16:08 ` Richard Cochran
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=E1kFlf3-0006cs-Ap@rmk-PC.armlinux.org.uk \
--to=rmk+kernel@armlinux.org.uk \
--cc=alexandre.belloni@bootlin.com \
--cc=andre.przywara@arm.com \
--cc=antoine.tenart@bootlin.com \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=mcroce@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=richardcochran@gmail.com \
--cc=sven.auhagen@voleatech.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.