net: macb: Not all the GEM are gigabit capable
PATCH v3 1/1 net: macb: Not all the GEM are gigabit capable
During the initialization of PHY the gigabit bit capable is set if the controller is a GEM. However, for sama5d2 and sama5d4, the GEM is configured to support only 10/100.
Improperly setting the GBE capability leads to an unresponsive MAC controller. This patch fixes this behavior allowing using the gmac with these SoCs.
---
Hi,
in this v3, I fixed the sama5d2 typo and the missing brace.
I also took care of the cpu_is_* symbols which may not be defined depending of the choice of the SoC.
Gregory
drivers/net/macb.c | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
drivers/net/macb.c +19 -2
@@ -109,6 +109,23 @@ static int macb_is_gem(struct macb_device *macb)return MACB_BFEXT (IDNUM ,macb_readl (macb,MID )) ==0x2 ; } +#ifndef cpu_is_sama5d2 +#define cpu_is_sama5d2 () 0 +#endif + +#ifndef cpu_is_sama5d4 +#define cpu_is_sama5d4 () 0 +#endif + +static int gem_is_gigabit_capable (struct macb_device *macb) +{ +/* +* The GEM controllers embeded in SAMA5D2 and SAMA5D4 are +* configured to support only 10/100. +*/ +return macb_is_gem (macb) && !cpu_is_sama5d2 () && !cpu_is_sama5d4 (); +} +static void macb_mdio_write (struct macb_device *macb,u8 reg,u16 value) {unsigned long netctl;
@@ -480,8 +497,8 @@ static int macb_phy_init(struct macb_device *macb)return 0 ; } -/* First check for GMAC */ -if (macb_is_gem (macb)) { +/* First check for GMAC and that it is GiB capable */ +if (gem_is_gigabit_capable (macb)){ lpa =macb_mdio_read (macb,MII_STAT1000 );if (lpa & (LPA_1000FULL |LPA_1000HALF )) {
Signature · 1 line
2.5.0
PATCH v3 1/1 net: macb: Not all the GEM are gigabit capable
Le 16/12/2015 14:50, Gregory CLEMENT a ?crit :
Quoted 10 lines
During the initialization of PHY the gigabit bit capable is set if the controller is a GEM. However, for sama5d2 and sama5d4, the GEM is configured to support only 10/100.
Improperly setting the GBE capability leads to an unresponsive MAC controller. This patch fixes this behavior allowing using the gmac with these SoCs.
Suggested-by Nicolas Ferre <[email protected]>Signed-off-by Gregory CLEMENT <[email protected]>
Thanks,
Quoted 53 lines
---
Hi,in this v3, I fixed the sama5d2 typo and the missing brace.
I also took care of the cpu_is_* symbols which may not be defined depending of the choice of the SoC.
Gregory
drivers/net/macb.c| 21 +++++++++++++++++++--1 file changed, 19 insertions(+), 2 deletions(-)drivers/net/macb.c +19
-2@@ -109,6 +109,23 @@ static int macb_is_gem(struct macb_device *macb)return MACB_BFEXT (IDNUM ,macb_readl (macb,MID )) ==0x2 ; } +#ifndef cpu_is_sama5d2 +#define cpu_is_sama5d2 () 0 +#endif + +#ifndef cpu_is_sama5d4 +#define cpu_is_sama5d4 () 0 +#endif + +static int gem_is_gigabit_capable (struct macb_device *macb) +{ +/* +* The GEM controllers embeded in SAMA5D2 and SAMA5D4 are +* configured to support only 10/100. +*/ +return macb_is_gem (macb) && !cpu_is_sama5d2 () && !cpu_is_sama5d4 (); +} +static void macb_mdio_write (struct macb_device *macb,u8 reg,u16 value) {unsigned long netctl;@@ -480,8 +497,8 @@ static int macb_phy_init(struct macb_device *macb)return 0 ; } -/* First check for GMAC */ -if (macb_is_gem (macb)) { +/* First check for GMAC and that it is GiB capable */ +if (gem_is_gigabit_capable (macb)){ lpa =macb_mdio_read (macb,MII_STAT1000 );if (lpa & (LPA_1000FULL |LPA_1000HALF )) {
Signature · 1 line
Nicolas Ferre
PATCH v3 1/1 net: macb: Not all the GEM are gigabit capable
In reply to Gregory CLEMENTQuoted 10 lines · Gregory CLEMENT
During the initialization of PHY the gigabit bit capable is set if the controller is a GEM. However, for sama5d2 and sama5d4, the GEM is configured to support only 10/100.
Improperly setting the GBE capability leads to an unresponsive MAC controller. This patch fixes this behavior allowing using the gmac with these SoCs.
Suggested-by Nicolas Ferre <[email protected]>Signed-off-by Gregory CLEMENT <[email protected]>
It's a shame we are forced to have this PID hack, but I guess this will do until we discover some other sustainable way.
PATCH v3 1/1 net: macb: Not all the GEM are gigabit capable
In reply to Gregory CLEMENTQuoted 10 lines · Gregory CLEMENT
During the initialization of PHY the gigabit bit capable is set if the controller is a GEM. However, for sama5d2 and sama5d4, the GEM is configured to support only 10/100.
Improperly setting the GBE capability leads to an unresponsive MAC controller. This patch fixes this behavior allowing using the gmac with these SoCs.
Suggested-by Nicolas Ferre <[email protected]>Signed-off-by Gregory CLEMENT <[email protected]>
Quoted 53 lines
---
Hi,in this v3, I fixed the sama5d2 typo and the missing brace.
I also took care of the cpu_is_* symbols which may not be defined depending of the choice of the SoC.
Gregory
drivers/net/macb.c| 21 +++++++++++++++++++--1 file changed, 19 insertions(+), 2 deletions(-)drivers/net/macb.c +19
-2@@ -109,6 +109,23 @@ static int macb_is_gem(struct macb_device *macb)return MACB_BFEXT (IDNUM ,macb_readl (macb,MID )) ==0x2 ; } +#ifndef cpu_is_sama5d2 +#define cpu_is_sama5d2 () 0 +#endif + +#ifndef cpu_is_sama5d4 +#define cpu_is_sama5d4 () 0 +#endif + +static int gem_is_gigabit_capable (struct macb_device *macb) +{ +/* +* The GEM controllers embeded in SAMA5D2 and SAMA5D4 are +* configured to support only 10/100. +*/ +return macb_is_gem (macb) && !cpu_is_sama5d2 () && !cpu_is_sama5d4 (); +} +static void macb_mdio_write (struct macb_device *macb,u8 reg,u16 value) {unsigned long netctl;@@ -480,8 +497,8 @@ static int macb_phy_init(struct macb_device *macb)return 0 ; } -/* First check for GMAC */ -if (macb_is_gem (macb)) { +/* First check for GMAC and that it is GiB capable */ +if (gem_is_gigabit_capable (macb)){ lpa =macb_mdio_read (macb,MII_STAT1000 );if (lpa & (LPA_1000FULL |LPA_1000HALF )) {
PATCH v3 1/1 net: macb: Not all the GEM are gigabit capable
In reply to Gregory CLEMENTDear Gregory CLEMENT,
Quoted 20 lines · Gregory CLEMENT
During the initialization of PHY the gigabit bit capable is set if the controller is a GEM. However, for sama5d2 and sama5d4, the GEM is configured to support only 10/100.
Improperly setting the GBE capability leads to an unresponsive MAC controller. This patch fixes this behavior allowing using the gmac with these SoCs.
Suggested-by Nicolas Ferre <[email protected]>Signed-off-by Gregory CLEMENT <[email protected]>Acked-by Nicolas Ferre <[email protected]>Acked-by Joe Hershberger <[email protected]>Reviewed-by Andreas Bie?mann <[email protected]>[fixed minor checkpatch warning]Signed-off-by Andreas Bie?mann <[email protected]>---
Hi,in this v3, I fixed the sama5d2 typo and the missing brace.
Quoted 7 lines
I also took care of the cpu_is_* symbols which may not be defined depending of the choice of the SoC.
Gregory
drivers/net/macb.c| 21 +++++++++++++++++++--1 file changed, 19 insertions(+), 2 deletions(-)
applied to u-boot-atmel/master, thanks!
Best regards,
Andreas Bie?mann