From b87e590b248286ac262d544414ac1d97a3f912d6 Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Fri, 9 Apr 2010 18:43:36 +0000 Subject: [PATCH] do not overwrite ENET_CTL_REG, fixes ethernet on bcm6338 SVN-Revision: 20765 --- .../patches-2.6.32/230-external_phy_fix.patch | 13 +++++++++++++ .../patches-2.6.33/230-external_phy_fix.patch | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 target/linux/brcm63xx/patches-2.6.32/230-external_phy_fix.patch create mode 100644 target/linux/brcm63xx/patches-2.6.33/230-external_phy_fix.patch diff --git a/target/linux/brcm63xx/patches-2.6.32/230-external_phy_fix.patch b/target/linux/brcm63xx/patches-2.6.32/230-external_phy_fix.patch new file mode 100644 index 00000000000..cd663dd2391 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.32/230-external_phy_fix.patch @@ -0,0 +1,13 @@ +--- linux-2.6.32.10.orig/drivers/net/bcm63xx_enet.c 2010-04-06 19:25:52.612158288 +0100 ++++ linux-2.6.32.10/drivers/net/bcm63xx_enet.c 2010-04-07 21:40:26.991801424 +0100 +@@ -965,7 +965,9 @@ + /* all set, enable mac and interrupts, start dma engine and + * kick rx dma channel */ + wmb(); +- enet_writel(priv, ENET_CTL_ENABLE_MASK, ENET_CTL_REG); ++ val = enet_readl(priv, ENET_CTL_REG); ++ val |= ENET_CTL_ENABLE_MASK; ++ enet_writel(priv, val, ENET_CTL_REG); + enet_dma_writel(priv, ENETDMA_CFG_EN_MASK, ENETDMA_CFG_REG); + enet_dma_writel(priv, ENETDMA_CHANCFG_EN_MASK, + ENETDMA_CHANCFG_REG(priv->rx_chan)); \ No newline at end of file diff --git a/target/linux/brcm63xx/patches-2.6.33/230-external_phy_fix.patch b/target/linux/brcm63xx/patches-2.6.33/230-external_phy_fix.patch new file mode 100644 index 00000000000..cd663dd2391 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.33/230-external_phy_fix.patch @@ -0,0 +1,13 @@ +--- linux-2.6.32.10.orig/drivers/net/bcm63xx_enet.c 2010-04-06 19:25:52.612158288 +0100 ++++ linux-2.6.32.10/drivers/net/bcm63xx_enet.c 2010-04-07 21:40:26.991801424 +0100 +@@ -965,7 +965,9 @@ + /* all set, enable mac and interrupts, start dma engine and + * kick rx dma channel */ + wmb(); +- enet_writel(priv, ENET_CTL_ENABLE_MASK, ENET_CTL_REG); ++ val = enet_readl(priv, ENET_CTL_REG); ++ val |= ENET_CTL_ENABLE_MASK; ++ enet_writel(priv, val, ENET_CTL_REG); + enet_dma_writel(priv, ENETDMA_CFG_EN_MASK, ENETDMA_CFG_REG); + enet_dma_writel(priv, ENETDMA_CHANCFG_EN_MASK, + ENETDMA_CHANCFG_REG(priv->rx_chan)); \ No newline at end of file