OpenWrt – Rev 1

Subversion Repositories:
Rev:
From fde9e742a47606110232b7464608b6f9c0510938 Mon Sep 17 00:00:00 2001
From: Russell King <rmk+kernel@armlinux.org.uk>
Date: Sat, 24 Dec 2016 10:27:08 +0000
Subject: net: mvneta: disable MVNETA_CAUSE_PSC_SYNC_CHANGE interrupt

The PSC sync change interrupt can fire multiple times while the link is
down.  As this isn't information we make use of, it's pointless having
the interrupt enabled, so let's disable this interrupt.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
 drivers/net/ethernet/marvell/mvneta.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -2705,8 +2705,7 @@ static int mvneta_poll(struct napi_struc
                mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
 
                if (cause_misc & (MVNETA_CAUSE_PHY_STATUS_CHANGE |
-                                 MVNETA_CAUSE_LINK_CHANGE |
-                                 MVNETA_CAUSE_PSC_SYNC_CHANGE))
+                                 MVNETA_CAUSE_LINK_CHANGE))
                        mvneta_link_change(pp);
        }
 
@@ -3045,8 +3044,7 @@ static void mvneta_start_dev(struct mvne
 
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
-                   MVNETA_CAUSE_LINK_CHANGE |
-                   MVNETA_CAUSE_PSC_SYNC_CHANGE);
+                   MVNETA_CAUSE_LINK_CHANGE);
 
        phylink_start(pp->phylink);
        netif_tx_start_all_queues(pp->dev);
@@ -3542,8 +3540,7 @@ static int mvneta_cpu_online(unsigned in
        on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
-                   MVNETA_CAUSE_LINK_CHANGE |
-                   MVNETA_CAUSE_PSC_SYNC_CHANGE);
+                   MVNETA_CAUSE_LINK_CHANGE);
        netif_tx_start_all_queues(pp->dev);
        spin_unlock(&pp->lock);
        return 0;
@@ -3584,8 +3581,7 @@ static int mvneta_cpu_dead(unsigned int
        on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
-                   MVNETA_CAUSE_LINK_CHANGE |
-                   MVNETA_CAUSE_PSC_SYNC_CHANGE);
+                   MVNETA_CAUSE_LINK_CHANGE);
        netif_tx_start_all_queues(pp->dev);
        return 0;
 }