aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2017-11-02 19:08:40 -0400
committerDavid S. Miller <davem@davemloft.net>2017-11-03 01:30:02 -0400
commit93824c80bf47ebe087414b3a40ca0ff9aab7d1fb (patch)
treea77e4f4b86b415b2369acdf070bdabc7c231aa3a
parent3b11775033dc87c3d161996c54507b15ba26414a (diff)
net: systemport: Correct IPG length settings
Due to a documentation mistake, the IPG length was set to 0x12 while it should have been 12 (decimal). This would affect short packet (64B typically) performance since the IPG was bigger than necessary. Fixes: 44a4524c54af ("net: systemport: Add support for SYSTEMPORT Lite") Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/bcmsysport.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
index 83eec9a8c275..eb441e5e2cd8 100644
--- a/drivers/net/ethernet/broadcom/bcmsysport.c
+++ b/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -1809,15 +1809,17 @@ static inline void bcm_sysport_mask_all_intrs(struct bcm_sysport_priv *priv)
1809 1809
1810static inline void gib_set_pad_extension(struct bcm_sysport_priv *priv) 1810static inline void gib_set_pad_extension(struct bcm_sysport_priv *priv)
1811{ 1811{
1812 u32 __maybe_unused reg; 1812 u32 reg;
1813 1813
1814 /* Include Broadcom tag in pad extension */ 1814 reg = gib_readl(priv, GIB_CONTROL);
1815 /* Include Broadcom tag in pad extension and fix up IPG_LENGTH */
1815 if (netdev_uses_dsa(priv->netdev)) { 1816 if (netdev_uses_dsa(priv->netdev)) {
1816 reg = gib_readl(priv, GIB_CONTROL);
1817 reg &= ~(GIB_PAD_EXTENSION_MASK << GIB_PAD_EXTENSION_SHIFT); 1817 reg &= ~(GIB_PAD_EXTENSION_MASK << GIB_PAD_EXTENSION_SHIFT);
1818 reg |= ENET_BRCM_TAG_LEN << GIB_PAD_EXTENSION_SHIFT; 1818 reg |= ENET_BRCM_TAG_LEN << GIB_PAD_EXTENSION_SHIFT;
1819 gib_writel(priv, reg, GIB_CONTROL);
1820 } 1819 }
1820 reg &= ~(GIB_IPG_LEN_MASK << GIB_IPG_LEN_SHIFT);
1821 reg |= 12 << GIB_IPG_LEN_SHIFT;
1822 gib_writel(priv, reg, GIB_CONTROL);
1821} 1823}
1822 1824
1823static int bcm_sysport_open(struct net_device *dev) 1825static int bcm_sysport_open(struct net_device *dev)