brcm63xx: reduce the number of Ethernet DMA channels from 16 to 8

We currently used 16 DMA Ethernet channels, but the hardware only
supports up to 8 (with 2 per enet and the remaining for USB slave).

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36979
lede-17.01
Florian Fainelli 2013-06-20 18:47:36 +00:00
parent 07757044bf
commit 4ef56823e0
4 changed files with 8 additions and 13 deletions

View File

@ -74,7 +74,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+ if (BCMCPU_IS_6328() || BCMCPU_IS_6362() || BCMCPU_IS_6368()) + if (BCMCPU_IS_6328() || BCMCPU_IS_6362() || BCMCPU_IS_6368())
+ chan_count = 32; + chan_count = 32;
+ else + else
+ chan_count = 16; + chan_count = 8;
+ +
+ shared_res[1].start = bcm63xx_regset_address(RSET_ENETDMAC); + shared_res[1].start = bcm63xx_regset_address(RSET_ENETDMAC);
+ shared_res[1].end = shared_res[1].start; + shared_res[1].end = shared_res[1].start;

View File

@ -59,7 +59,7 @@ Subject: [PATCH 69/72] 443-MIPS-BCM63XX-enable-enet-for-BCM6345.patch
static struct resource shared_res[] = { static struct resource shared_res[] = {
{ {
.start = -1, /* filled at runtime */ .start = -1, /* filled at runtime */
@@ -137,12 +171,19 @@ static int __init register_shared(void) @@ -137,9 +171,14 @@ static int __init register_shared(void)
if (shared_device_registered) if (shared_device_registered)
return 0; return 0;
@ -75,12 +75,7 @@ Subject: [PATCH 69/72] 443-MIPS-BCM63XX-enable-enet-for-BCM6345.patch
if (BCMCPU_IS_6328() || BCMCPU_IS_6362() || BCMCPU_IS_6368()) if (BCMCPU_IS_6328() || BCMCPU_IS_6362() || BCMCPU_IS_6368())
chan_count = 32; chan_count = 32;
+ else if (BCMCPU_IS_6345()) @@ -172,7 +211,7 @@ int __init bcm63xx_enet_register(int uni
+ chan_count = 8;
else
chan_count = 16;
@@ -172,7 +213,7 @@ int __init bcm63xx_enet_register(int uni
if (unit > 1) if (unit > 1)
return -ENODEV; return -ENODEV;
@ -89,7 +84,7 @@ Subject: [PATCH 69/72] 443-MIPS-BCM63XX-enable-enet-for-BCM6345.patch
return -ENODEV; return -ENODEV;
ret = register_shared(); ret = register_shared();
@@ -213,6 +254,20 @@ int __init bcm63xx_enet_register(int uni @@ -213,6 +252,20 @@ int __init bcm63xx_enet_register(int uni
dpd->phy_interrupt = bcm63xx_get_irq_number(IRQ_ENET_PHY); dpd->phy_interrupt = bcm63xx_get_irq_number(IRQ_ENET_PHY);
} }
@ -110,7 +105,7 @@ Subject: [PATCH 69/72] 443-MIPS-BCM63XX-enable-enet-for-BCM6345.patch
ret = platform_device_register(pdev); ret = platform_device_register(pdev);
if (ret) if (ret)
return ret; return ret;
@@ -246,6 +301,10 @@ bcm63xx_enetsw_register(const struct bcm @@ -246,6 +299,10 @@ bcm63xx_enetsw_register(const struct bcm
else if (BCMCPU_IS_6362() || BCMCPU_IS_6368()) else if (BCMCPU_IS_6362() || BCMCPU_IS_6368())
enetsw_pd.num_ports = ENETSW_PORTS_6368; enetsw_pd.num_ports = ENETSW_PORTS_6368;

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/nvram.c --- a/arch/mips/bcm63xx/nvram.c
+++ b/arch/mips/bcm63xx/nvram.c +++ b/arch/mips/bcm63xx/nvram.c
@@ -52,6 +52,7 @@ void __init bcm63xx_nvram_init(void *add @@ -45,6 +45,7 @@ void __init bcm63xx_nvram_init(void *add
{ {
unsigned int check_len; unsigned int check_len;
u32 crc, expected_crc; u32 crc, expected_crc;
@ -8,7 +8,7 @@
/* extract nvram data */ /* extract nvram data */
memcpy(&nvram, addr, sizeof(nvram)); memcpy(&nvram, addr, sizeof(nvram));
@@ -73,6 +74,15 @@ void __init bcm63xx_nvram_init(void *add @@ -65,6 +66,15 @@ void __init bcm63xx_nvram_init(void *add
if (crc != expected_crc) if (crc != expected_crc)
pr_warn("nvram checksum failed, contents may be invalid (expected %08x, got %08x)\n", pr_warn("nvram checksum failed, contents may be invalid (expected %08x, got %08x)\n",
expected_crc, crc); expected_crc, crc);

View File

@ -14,7 +14,7 @@
void __init bcm63xx_nvram_init(void *addr) void __init bcm63xx_nvram_init(void *addr)
{ {
unsigned int check_len; unsigned int check_len;
@@ -48,6 +55,7 @@ void __init bcm63xx_nvram_init(void *add @@ -49,6 +56,7 @@ void __init bcm63xx_nvram_init(void *add
/* extract nvram data */ /* extract nvram data */
memcpy(&nvram, addr, sizeof(nvram)); memcpy(&nvram, addr, sizeof(nvram));