aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/patches-3.3/416-bcm63xx_enet-fix-lockup-on-BCM6328.patch
diff options
context:
space:
mode:
authorJonas Gorski <jogo@openwrt.org>2012-07-31 14:27:31 +0000
committerJonas Gorski <jogo@openwrt.org>2012-07-31 14:27:31 +0000
commit656b2063431be41fa43c993bfe68c3eed8da815c (patch)
tree819aa27e4835bbf4bb18d751762caada193f2008 /target/linux/brcm63xx/patches-3.3/416-bcm63xx_enet-fix-lockup-on-BCM6328.patch
parent6d1dc25f1be6f0c05cb9aab7e91c2c8adafdb731 (diff)
downloadmaster-187ad058-656b2063431be41fa43c993bfe68c3eed8da815c.tar.gz
master-187ad058-656b2063431be41fa43c993bfe68c3eed8da815c.tar.bz2
master-187ad058-656b2063431be41fa43c993bfe68c3eed8da815c.zip
bcm63xx: update enetswitch driver
Update enetswith driver with latest fixes and additions. Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32921 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm63xx/patches-3.3/416-bcm63xx_enet-fix-lockup-on-BCM6328.patch')
-rw-r--r--target/linux/brcm63xx/patches-3.3/416-bcm63xx_enet-fix-lockup-on-BCM6328.patch94
1 files changed, 0 insertions, 94 deletions
diff --git a/target/linux/brcm63xx/patches-3.3/416-bcm63xx_enet-fix-lockup-on-BCM6328.patch b/target/linux/brcm63xx/patches-3.3/416-bcm63xx_enet-fix-lockup-on-BCM6328.patch
deleted file mode 100644
index b0f55e0866..0000000000
--- a/target/linux/brcm63xx/patches-3.3/416-bcm63xx_enet-fix-lockup-on-BCM6328.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 37d151859e09d09a950ad3ae615db1903bcc59d3 Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jonas.gorski@gmail.com>
-Date: Sun, 13 Nov 2011 14:59:37 +0100
-Subject: [PATCH 43/79] bcm63xx_enet: fix lockup on BCM6328
-
-BCM6328 locks up on a maxburst size of 16, reduce it to 8 for BCM6328 and
-BCM6368.
-
-Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
----
- drivers/net/ethernet/broadcom/bcm63xx_enet.c | 14 ++++++++------
- drivers/net/ethernet/broadcom/bcm63xx_enet.h | 4 ++++
- 2 files changed, 12 insertions(+), 6 deletions(-)
-
---- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
-+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
-@@ -261,7 +261,6 @@ static int bcm_enet_refill_rx(struct net
- if (!skb)
- break;
- priv->rx_skb[desc_idx] = skb;
--
- p = dma_map_single(&priv->pdev->dev, skb->data,
- priv->rx_skb_size,
- DMA_FROM_DEVICE);
-@@ -995,9 +994,9 @@ static int bcm_enet_open(struct net_devi
- enet_writel(priv, priv->hw_mtu, ENET_TXMAXLEN_REG);
-
- /* set dma maximum burst len */
-- enet_dmac_writel(priv, BCMENET_DMA_MAXBURST,
-+ enet_dmac_writel(priv, priv->dma_maxburst,
- ENETDMAC_MAXBURST_REG(priv->rx_chan));
-- enet_dmac_writel(priv, BCMENET_DMA_MAXBURST,
-+ enet_dmac_writel(priv, priv->dma_maxburst,
- ENETDMAC_MAXBURST_REG(priv->tx_chan));
-
- /* set correct transmit fifo watermark */
-@@ -1593,7 +1592,7 @@ static int compute_hw_mtu(struct bcm_ene
- * it's appended
- */
- priv->rx_skb_size = ALIGN(actual_mtu + ETH_FCS_LEN,
-- BCMENET_DMA_MAXBURST * 4);
-+ priv->dma_maxburst * 4);
- return 0;
- }
-
-@@ -1700,6 +1699,8 @@ static int __devinit bcm_enet_probe(stru
- return -ENOMEM;
- priv = netdev_priv(dev);
-
-+ priv->dma_maxburst = bcm_enet_is_sw(priv) ?
-+ BCMENETSW_DMA_MAXBURST : BCMENET_DMA_MAXBURST;
- ret = compute_hw_mtu(priv, dev->mtu);
- if (ret)
- goto out;
-@@ -2263,9 +2264,9 @@ static int bcm_enetsw_open(struct net_de
- enet_dmas_writel(priv, 0, ENETDMAS_SRAM4_REG(priv->tx_chan));
-
- /* set dma maximum burst len */
-- enet_dmac_writel(priv, BCMENET_DMA_MAXBURST,
-+ enet_dmac_writel(priv, priv->dma_maxburst,
- ENETDMAC_MAXBURST_REG(priv->rx_chan));
-- enet_dmac_writel(priv, BCMENET_DMA_MAXBURST,
-+ enet_dmac_writel(priv, priv->dma_maxburst,
- ENETDMAC_MAXBURST_REG(priv->tx_chan));
-
- /* set flow control low/high threshold to 1/3 / 2/3 */
-@@ -2727,6 +2728,7 @@ static int __devinit bcm_enetsw_probe(st
- priv->irq_tx = irq_tx;
- priv->rx_ring_size = BCMENET_DEF_RX_DESC;
- priv->tx_ring_size = BCMENET_DEF_TX_DESC;
-+ priv->dma_maxburst = BCMENETSW_DMA_MAXBURST;
-
- pd = pdev->dev.platform_data;
- if (pd) {
---- a/drivers/net/ethernet/broadcom/bcm63xx_enet.h
-+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.h
-@@ -17,6 +17,7 @@
-
- /* maximum burst len for dma (4 bytes unit) */
- #define BCMENET_DMA_MAXBURST 16
-+#define BCMENETSW_DMA_MAXBURST 8
-
- /* tx transmit threshold (4 bytes unit), fifo is 256 bytes, the value
- * must be low enough so that a DMA transfer of above burst length can
-@@ -280,6 +281,9 @@ struct bcm_enet_priv {
- /* number of dma desc in tx ring */
- int tx_ring_size;
-
-+ /* maximum dma burst size */
-+ int dma_maxburst;
-+
- /* cpu view of rx dma ring */
- struct bcm_enet_desc *tx_desc_cpu;
-