From a790561538886793d6fab528976db6edf547d3bb Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 9 Jun 2008 10:31:46 +0000 Subject: [PATCH] set marvell switch ATU ageing time to minimum instead of maximum - hopefully fixes some fonera 2.0 ethernet issues git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11410 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.c | 2 +- .../linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.h | 2 ++ .../linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.c | 2 +- .../linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.h | 2 ++ target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c | 2 +- target/linux/generic-2.6/files/drivers/net/phy/mvswitch.h | 2 ++ 6 files changed, 9 insertions(+), 3 deletions(-) diff --git a/target/linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.c b/target/linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.c index f28df43989..be9e6afd2d 100644 --- a/target/linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.c +++ b/target/linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.c @@ -246,7 +246,7 @@ mvswitch_config_init(struct phy_device *pdev) w16(pdev, MV_SWITCHREG(ATU_CTRL), MV_ATUCTL_RESET | MV_ATUCTL_ATU_1K | - MV_ATUCTL_AGETIME(4080) /* maximum */ + MV_ATUCTL_AGETIME(MV_ATUCTL_AGETIME_MIN) /* minimum without disabling ageing */ ); i = 100; /* timeout */ diff --git a/target/linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.h b/target/linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.h index 81516b708b..a172e37265 100644 --- a/target/linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.h +++ b/target/linux/generic-2.6/files-2.6.25/drivers/net/phy/mvswitch.h @@ -114,6 +114,8 @@ enum { }; enum { +#define MV_ATUCTL_AGETIME_MIN 16 +#define MV_ATUCTL_AGETIME_MAX 4080 #define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4) MV_ATUCTL_ATU_256 = (0 << 12), MV_ATUCTL_ATU_512 = (1 << 12), diff --git a/target/linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.c b/target/linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.c index f28df43989..be9e6afd2d 100644 --- a/target/linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.c +++ b/target/linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.c @@ -246,7 +246,7 @@ mvswitch_config_init(struct phy_device *pdev) w16(pdev, MV_SWITCHREG(ATU_CTRL), MV_ATUCTL_RESET | MV_ATUCTL_ATU_1K | - MV_ATUCTL_AGETIME(4080) /* maximum */ + MV_ATUCTL_AGETIME(MV_ATUCTL_AGETIME_MIN) /* minimum without disabling ageing */ ); i = 100; /* timeout */ diff --git a/target/linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.h b/target/linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.h index 81516b708b..a172e37265 100644 --- a/target/linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.h +++ b/target/linux/generic-2.6/files-2.6.26/drivers/net/phy/mvswitch.h @@ -114,6 +114,8 @@ enum { }; enum { +#define MV_ATUCTL_AGETIME_MIN 16 +#define MV_ATUCTL_AGETIME_MAX 4080 #define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4) MV_ATUCTL_ATU_256 = (0 << 12), MV_ATUCTL_ATU_512 = (1 << 12), diff --git a/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c b/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c index f28df43989..be9e6afd2d 100644 --- a/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c +++ b/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c @@ -246,7 +246,7 @@ mvswitch_config_init(struct phy_device *pdev) w16(pdev, MV_SWITCHREG(ATU_CTRL), MV_ATUCTL_RESET | MV_ATUCTL_ATU_1K | - MV_ATUCTL_AGETIME(4080) /* maximum */ + MV_ATUCTL_AGETIME(MV_ATUCTL_AGETIME_MIN) /* minimum without disabling ageing */ ); i = 100; /* timeout */ diff --git a/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.h b/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.h index 81516b708b..a172e37265 100644 --- a/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.h +++ b/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.h @@ -114,6 +114,8 @@ enum { }; enum { +#define MV_ATUCTL_AGETIME_MIN 16 +#define MV_ATUCTL_AGETIME_MAX 4080 #define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4) MV_ATUCTL_ATU_256 = (0 << 12), MV_ATUCTL_ATU_512 = (1 << 12),