From d3c3d29306e28c1556dc6ba30e9eecfc4aa4e382 Mon Sep 17 00:00:00 2001 From: Guo-Fu Tseng Date: Thu, 23 Feb 2012 02:29:34 +0800 Subject: [PATCH] [PATCH] jme: Fix FIFO flush issue Set the RX FIFO flush watermark lower. According to Federico and JMicron's reply, setting it to 16QW would be stable on most platforms. Otherwise, user might experience packet drop issue. CC: stable@kernel.org Reported-by: Federico Quagliata Fixed-by: Federico Quagliata Signed-off-by: Guo-Fu Tseng --- jme.c | 11 ++--------- jme.h | 2 +- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/jme.c b/jme.c index b50d7b5..68aff5f 100644 --- a/jme.c +++ b/jme.c @@ -2461,15 +2461,6 @@ jme_change_mtu(struct net_device *netdev, int new_mtu) ((new_mtu) < IPV6_MIN_MTU)) return -EINVAL; - if (new_mtu > 4000) { - jme->reg_rxcs &= ~RXCS_FIFOTHNP; - jme->reg_rxcs |= RXCS_FIFOTHNP_64QW; - jme_restart_rx_engine(jme); - } else { - jme->reg_rxcs &= ~RXCS_FIFOTHNP; - jme->reg_rxcs |= RXCS_FIFOTHNP_128QW; - jme_restart_rx_engine(jme); - } #ifndef __USE_NDO_FIX_FEATURES__ if (new_mtu > 1900) { @@ -2487,6 +2478,8 @@ jme_change_mtu(struct net_device *netdev, int new_mtu) #ifdef __USE_NDO_FIX_FEATURES__ netdev_update_features(netdev); #endif + + jme_restart_rx_engine(jme); jme_reset_link(jme); return 0; diff --git a/jme.h b/jme.h index a3d0f24..4ee3e0b 100644 --- a/jme.h +++ b/jme.h @@ -914,7 +914,7 @@ enum jme_rxcs_values { RXCS_RETRYCNT_60 = 0x00000F00, RXCS_DEFAULT = RXCS_FIFOTHTP_128T | - RXCS_FIFOTHNP_128QW | + RXCS_FIFOTHNP_16QW | RXCS_DMAREQSZ_128B | RXCS_RETRYGAP_256ns | RXCS_RETRYCNT_32, -- 2.39.3