Skip to content
Snippets Groups Projects
Commit b0143577 authored by Felix Fietkau's avatar Felix Fietkau
Browse files

set marvell switch ATU ageing time to minimum instead of maximum - hopefully...

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

SVN-Revision: 11410
parent 62bef2bc
No related branches found
No related tags found
No related merge requests found
...@@ -246,7 +246,7 @@ mvswitch_config_init(struct phy_device *pdev) ...@@ -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 */
......
...@@ -114,6 +114,8 @@ enum { ...@@ -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),
......
...@@ -246,7 +246,7 @@ mvswitch_config_init(struct phy_device *pdev) ...@@ -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 */
......
...@@ -114,6 +114,8 @@ enum { ...@@ -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),
......
...@@ -246,7 +246,7 @@ mvswitch_config_init(struct phy_device *pdev) ...@@ -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 */
......
...@@ -114,6 +114,8 @@ enum { ...@@ -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),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment