From: Gavin Shan <gwshan@linux.vnet.ibm.com>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, benh@kernel.crashing.org, joel@jms.id.au,
gerlitz.or@gmail.com, weixue@trustnetic.com, yuvali@mellanox.com,
alexei.starovoitov@gmail.com, f.fainelli@gmail.com,
Gavin Shan <gwshan@linux.vnet.ibm.com>
Subject: [PATCH net-next v2 10/10] net/faraday: Mask PHY interrupt with NCSI mode
Date: Fri, 15 Jul 2016 20:44:20 +1000 [thread overview]
Message-ID: <1468579460-13768-11-git-send-email-gwshan@linux.vnet.ibm.com> (raw)
In-Reply-To: <1468579460-13768-1-git-send-email-gwshan@linux.vnet.ibm.com>
Bogus PHY interrupts are observed. This masks the PHY interrupt
when the interface works in NCSI mode as there is no attached
PHY under the circumstance.
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Acked-by: Joel Stanley <joel@jms.id.au>
---
drivers/net/ethernet/faraday/ftgmac100.c | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
index d8afa2d..2d4c7ea 100644
--- a/drivers/net/ethernet/faraday/ftgmac100.c
+++ b/drivers/net/ethernet/faraday/ftgmac100.c
@@ -74,6 +74,7 @@ struct ftgmac100 {
struct mii_bus *mii_bus;
int old_speed;
+ int int_mask_all;
bool use_ncsi;
bool enabled;
};
@@ -84,14 +85,6 @@ static int ftgmac100_alloc_rx_page(struct ftgmac100 *priv,
/******************************************************************************
* internal functions (hardware register access)
*****************************************************************************/
-#define INT_MASK_ALL_ENABLED (FTGMAC100_INT_RPKT_LOST | \
- FTGMAC100_INT_XPKT_ETH | \
- FTGMAC100_INT_XPKT_LOST | \
- FTGMAC100_INT_AHB_ERR | \
- FTGMAC100_INT_PHYSTS_CHG | \
- FTGMAC100_INT_RPKT_BUF | \
- FTGMAC100_INT_NO_RXBUF)
-
static void ftgmac100_set_rx_ring_base(struct ftgmac100 *priv, dma_addr_t addr)
{
iowrite32(addr, priv->base + FTGMAC100_OFFSET_RXR_BADR);
@@ -1070,8 +1063,9 @@ static int ftgmac100_poll(struct napi_struct *napi, int budget)
ftgmac100_tx_complete(priv);
}
- if (status & (FTGMAC100_INT_NO_RXBUF | FTGMAC100_INT_RPKT_LOST |
- FTGMAC100_INT_AHB_ERR | FTGMAC100_INT_PHYSTS_CHG)) {
+ if (status & priv->int_mask_all & (FTGMAC100_INT_NO_RXBUF |
+ FTGMAC100_INT_RPKT_LOST | FTGMAC100_INT_AHB_ERR |
+ FTGMAC100_INT_PHYSTS_CHG)) {
if (net_ratelimit())
netdev_info(netdev, "[ISR] = 0x%x: %s%s%s%s\n", status,
status & FTGMAC100_INT_NO_RXBUF ? "NO_RXBUF " : "",
@@ -1094,7 +1088,8 @@ static int ftgmac100_poll(struct napi_struct *napi, int budget)
napi_complete(napi);
/* enable all interrupts */
- iowrite32(INT_MASK_ALL_ENABLED, priv->base + FTGMAC100_OFFSET_IER);
+ iowrite32(priv->int_mask_all,
+ priv->base + FTGMAC100_OFFSET_IER);
}
return rx;
@@ -1140,7 +1135,7 @@ static int ftgmac100_open(struct net_device *netdev)
netif_start_queue(netdev);
/* enable all interrupts */
- iowrite32(INT_MASK_ALL_ENABLED, priv->base + FTGMAC100_OFFSET_IER);
+ iowrite32(priv->int_mask_all, priv->base + FTGMAC100_OFFSET_IER);
/* Start the NCSI device */
if (priv->use_ncsi) {
@@ -1365,6 +1360,13 @@ static int ftgmac100_probe(struct platform_device *pdev)
/* MAC address from chip or random one */
ftgmac100_setup_mac(priv);
+ priv->int_mask_all = (FTGMAC100_INT_RPKT_LOST |
+ FTGMAC100_INT_XPKT_ETH |
+ FTGMAC100_INT_XPKT_LOST |
+ FTGMAC100_INT_AHB_ERR |
+ FTGMAC100_INT_PHYSTS_CHG |
+ FTGMAC100_INT_RPKT_BUF |
+ FTGMAC100_INT_NO_RXBUF);
if (pdev->dev.of_node &&
of_get_property(pdev->dev.of_node, "use-ncsi", NULL)) {
if (!IS_ENABLED(CONFIG_NET_NCSI)) {
@@ -1374,6 +1376,7 @@ static int ftgmac100_probe(struct platform_device *pdev)
dev_info(&pdev->dev, "Using NCSI interface\n");
priv->use_ncsi = true;
+ priv->int_mask_all &= ~FTGMAC100_INT_PHYSTS_CHG;
priv->ndev = ncsi_register_dev(netdev, ftgmac100_ncsi_handler);
if (!priv->ndev)
goto err_ncsi_dev;
--
2.1.0
prev parent reply other threads:[~2016-07-15 10:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-15 10:44 [PATCH net-next v2 00/10] NCSI Support Gavin Shan
2016-07-15 10:44 ` [PATCH net-next v2 01/10] net/ncsi: Resource management Gavin Shan
2016-07-15 10:44 ` [PATCH net-next v2 02/10] net/ncsi: NCSI command packet handler Gavin Shan
2016-07-15 14:08 ` kbuild test robot
2016-07-18 0:15 ` Gavin Shan
2016-07-19 1:48 ` Gavin Shan
2016-07-15 10:44 ` [PATCH net-next v2 03/10] net/ncsi: NCSI response " Gavin Shan
2016-07-15 10:44 ` [PATCH net-next v2 04/10] net/ncsi: Package and channel management Gavin Shan
2016-07-15 14:30 ` kbuild test robot
2016-07-18 0:16 ` Gavin Shan
2016-07-15 10:44 ` [PATCH net-next v2 05/10] net/ncsi: NCSI AEN packet handler Gavin Shan
2016-07-15 10:44 ` [PATCH net-next v2 06/10] net/faraday: Helper functions to create or destroy MDIO interface Gavin Shan
2016-07-15 10:44 ` [PATCH net-next v2 07/10] net/faraday: Read MAC address from chip Gavin Shan
2016-07-19 10:50 ` David Laight
2016-07-19 10:57 ` Benjamin Herrenschmidt
2016-07-19 23:40 ` Gavin Shan
2016-07-15 10:44 ` [PATCH net-next v2 08/10] net/faraday: Support NCSI mode Gavin Shan
2016-07-15 10:44 ` [PATCH net-next v2 09/10] net/faraday: Match driver according to compatible property Gavin Shan
2016-07-15 10:44 ` Gavin Shan [this message]
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=1468579460-13768-11-git-send-email-gwshan@linux.vnet.ibm.com \
--to=gwshan@linux.vnet.ibm.com \
--cc=alexei.starovoitov@gmail.com \
--cc=benh@kernel.crashing.org \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=gerlitz.or@gmail.com \
--cc=joel@jms.id.au \
--cc=netdev@vger.kernel.org \
--cc=weixue@trustnetic.com \
--cc=yuvali@mellanox.com \
/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;
as well as URLs for NNTP newsgroup(s).