set marvell switch ATU ageing time to minimum instead of maximum - hopefully fixes some fonera 2.0 ethernet issues

SVN-Revision: 11410
This commit is contained in:
Felix Fietkau 2008-06-09 10:31:46 +00:00
parent 62bef2bced
commit b014357704
6 changed files with 9 additions and 3 deletions

View file

@ -246,7 +246,7 @@ mvswitch_config_init(struct phy_device *pdev)
w16(pdev, MV_SWITCHREG(ATU_CTRL), w16(pdev, MV_SWITCHREG(ATU_CTRL),
MV_ATUCTL_RESET | MV_ATUCTL_RESET |
MV_ATUCTL_ATU_1K | MV_ATUCTL_ATU_1K |
MV_ATUCTL_AGETIME(4080) /* maximum */ MV_ATUCTL_AGETIME(MV_ATUCTL_AGETIME_MIN) /* minimum without disabling ageing */
); );
i = 100; /* timeout */ i = 100; /* timeout */

View file

@ -114,6 +114,8 @@ enum {
}; };
enum { enum {
#define MV_ATUCTL_AGETIME_MIN 16
#define MV_ATUCTL_AGETIME_MAX 4080
#define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4) #define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4)
MV_ATUCTL_ATU_256 = (0 << 12), MV_ATUCTL_ATU_256 = (0 << 12),
MV_ATUCTL_ATU_512 = (1 << 12), MV_ATUCTL_ATU_512 = (1 << 12),

View file

@ -246,7 +246,7 @@ mvswitch_config_init(struct phy_device *pdev)
w16(pdev, MV_SWITCHREG(ATU_CTRL), w16(pdev, MV_SWITCHREG(ATU_CTRL),
MV_ATUCTL_RESET | MV_ATUCTL_RESET |
MV_ATUCTL_ATU_1K | MV_ATUCTL_ATU_1K |
MV_ATUCTL_AGETIME(4080) /* maximum */ MV_ATUCTL_AGETIME(MV_ATUCTL_AGETIME_MIN) /* minimum without disabling ageing */
); );
i = 100; /* timeout */ i = 100; /* timeout */

View file

@ -114,6 +114,8 @@ enum {
}; };
enum { enum {
#define MV_ATUCTL_AGETIME_MIN 16
#define MV_ATUCTL_AGETIME_MAX 4080
#define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4) #define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4)
MV_ATUCTL_ATU_256 = (0 << 12), MV_ATUCTL_ATU_256 = (0 << 12),
MV_ATUCTL_ATU_512 = (1 << 12), MV_ATUCTL_ATU_512 = (1 << 12),

View file

@ -246,7 +246,7 @@ mvswitch_config_init(struct phy_device *pdev)
w16(pdev, MV_SWITCHREG(ATU_CTRL), w16(pdev, MV_SWITCHREG(ATU_CTRL),
MV_ATUCTL_RESET | MV_ATUCTL_RESET |
MV_ATUCTL_ATU_1K | MV_ATUCTL_ATU_1K |
MV_ATUCTL_AGETIME(4080) /* maximum */ MV_ATUCTL_AGETIME(MV_ATUCTL_AGETIME_MIN) /* minimum without disabling ageing */
); );
i = 100; /* timeout */ i = 100; /* timeout */

View file

@ -114,6 +114,8 @@ enum {
}; };
enum { enum {
#define MV_ATUCTL_AGETIME_MIN 16
#define MV_ATUCTL_AGETIME_MAX 4080
#define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4) #define MV_ATUCTL_AGETIME(_n) ((((_n) / 16) & 0xff) << 4)
MV_ATUCTL_ATU_256 = (0 << 12), MV_ATUCTL_ATU_256 = (0 << 12),
MV_ATUCTL_ATU_512 = (1 << 12), MV_ATUCTL_ATU_512 = (1 << 12),