[U-Boot] [PATCH] net: phy: Fix networking regression on some mx6 boards

2013-07-18 Thread Fabio Estevam
From: Fabio Estevam 

Since commit de1d786edf (add support for Xilinx 1000BASE-X phy (GTX))
we are no longer able to use tftp transfers on some mx6 boards
like mx6qsabresd and wandboard, which use AR8031 Ethernet phy.

Revert the commit as a proper fix is still not available.

Reported-by: Sascha Silbe 
Signed-off-by: Fabio Estevam 
---
 drivers/net/phy/phy.c   | 21 -
 include/linux/ethtool.h |  4 
 include/linux/mii.h |  2 --
 3 files changed, 27 deletions(-)

diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 7c0eaec..77d19c6 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -75,10 +75,6 @@ static int genphy_config_advert(struct phy_device *phydev)
adv |= ADVERTISE_PAUSE_CAP;
if (advertise & ADVERTISED_Asym_Pause)
adv |= ADVERTISE_PAUSE_ASYM;
-   if (advertise & ADVERTISED_1000baseX_Half)
-   adv |= ADVERTISE_1000XHALF;
-   if (advertise & ADVERTISED_1000baseX_Full)
-   adv |= ADVERTISE_1000XFULL;
 
if (adv != oldadv) {
err = phy_write(phydev, MDIO_DEVAD_NONE, MII_ADVERTISE, adv);
@@ -292,7 +288,6 @@ int genphy_parse_link(struct phy_device *phydev)
if (mii_reg & BMSR_ANEGCAPABLE) {
u32 lpa = 0;
u32 gblpa = 0;
-   u32 estatus = 0;
 
/* Check for gigabit capability */
if (mii_reg & BMSR_ERCAP) {
@@ -332,18 +327,6 @@ int genphy_parse_link(struct phy_device *phydev)
 
} else if (lpa & LPA_10FULL)
phydev->duplex = DUPLEX_FULL;
-
-   if (mii_reg & BMSR_ESTATEN)
-   estatus = phy_read(phydev, MDIO_DEVAD_NONE,
-  MII_ESTATUS);
-
-   if (estatus & (ESTATUS_1000_XFULL | ESTATUS_1000_XHALF |
-   ESTATUS_1000_TFULL | ESTATUS_1000_THALF)) {
-   phydev->speed = SPEED_1000;
-   if (estatus & (ESTATUS_1000_XFULL | ESTATUS_1000_TFULL))
-   phydev->duplex = DUPLEX_FULL;
-   }
-
} else {
u32 bmcr = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
 
@@ -401,10 +384,6 @@ int genphy_config(struct phy_device *phydev)
features |= SUPPORTED_1000baseT_Full;
if (val & ESTATUS_1000_THALF)
features |= SUPPORTED_1000baseT_Half;
-   if (val & ESTATUS_1000_XFULL)
-   features |= SUPPORTED_1000baseX_Full;
-   if (val & ESTATUS_1000_XHALF)
-   features |= SUPPORTED_1000baseX_Full;
}
 
phydev->supported = features;
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index f6dbdb0..fcb20fe 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -580,8 +580,6 @@ enum ethtool_sfeatures_retval_bits {
 #define SUPPORTED_1baseKX4_Full(1 << 18)
 #define SUPPORTED_1baseKR_Full (1 << 19)
 #define SUPPORTED_1baseR_FEC   (1 << 20)
-#define SUPPORTED_1000baseX_Half   (1 << 21)
-#define SUPPORTED_1000baseX_Full   (1 << 22)
 
 /* Indicates what features are advertised by the interface. */
 #define ADVERTISED_10baseT_Half(1 << 0)
@@ -605,8 +603,6 @@ enum ethtool_sfeatures_retval_bits {
 #define ADVERTISED_1baseKX4_Full   (1 << 18)
 #define ADVERTISED_1baseKR_Full(1 << 19)
 #define ADVERTISED_1baseR_FEC  (1 << 20)
-#define ADVERTISED_1000baseX_Half  (1 << 21)
-#define ADVERTISED_1000baseX_Full  (1 << 22)
 
 /* The following are all involved in forcing a particular link
  * mode for the device for setting things.  When getting the
diff --git a/include/linux/mii.h b/include/linux/mii.h
index 66b83d8..8b92692 100644
--- a/include/linux/mii.h
+++ b/include/linux/mii.h
@@ -115,8 +115,6 @@
 #define EXPANSION_MFAULTS  0x0010  /* Multiple faults detected*/
 #define EXPANSION_RESV 0xffe0  /* Unused...   */
 
-#define ESTATUS_1000_XFULL 0x8000  /* Can do 1000BX Full */
-#define ESTATUS_1000_XHALF 0x4000  /* Can do 1000BX Half */
 #define ESTATUS_1000_TFULL 0x2000  /* Can do 1000BT Full */
 #define ESTATUS_1000_THALF 0x1000  /* Can do 1000BT Half */
 
-- 
1.8.1.2

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH] net: phy: Fix networking regression on some mx6 boards

2013-07-18 Thread Fabio Estevam
From: Fabio Estevam 

Since commit de1d786edf (add support for Xilinx 1000BASE-X phy (GTX))
we are no longer able to use tftp transfers on some mx6 boards
like mx6qsabresd and wandboard, which use AR8031 Ethernet phy.

Revert the commit as a proper fix is still not available.

Reported-by: Sascha Silbe 
Signed-off-by: Fabio Estevam 
---
 drivers/net/phy/phy.c   | 21 -
 include/linux/ethtool.h |  4 
 include/linux/mii.h |  2 --
 3 files changed, 27 deletions(-)

diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 7c0eaec..77d19c6 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -75,10 +75,6 @@ static int genphy_config_advert(struct phy_device *phydev)
adv |= ADVERTISE_PAUSE_CAP;
if (advertise & ADVERTISED_Asym_Pause)
adv |= ADVERTISE_PAUSE_ASYM;
-   if (advertise & ADVERTISED_1000baseX_Half)
-   adv |= ADVERTISE_1000XHALF;
-   if (advertise & ADVERTISED_1000baseX_Full)
-   adv |= ADVERTISE_1000XFULL;
 
if (adv != oldadv) {
err = phy_write(phydev, MDIO_DEVAD_NONE, MII_ADVERTISE, adv);
@@ -292,7 +288,6 @@ int genphy_parse_link(struct phy_device *phydev)
if (mii_reg & BMSR_ANEGCAPABLE) {
u32 lpa = 0;
u32 gblpa = 0;
-   u32 estatus = 0;
 
/* Check for gigabit capability */
if (mii_reg & BMSR_ERCAP) {
@@ -332,18 +327,6 @@ int genphy_parse_link(struct phy_device *phydev)
 
} else if (lpa & LPA_10FULL)
phydev->duplex = DUPLEX_FULL;
-
-   if (mii_reg & BMSR_ESTATEN)
-   estatus = phy_read(phydev, MDIO_DEVAD_NONE,
-  MII_ESTATUS);
-
-   if (estatus & (ESTATUS_1000_XFULL | ESTATUS_1000_XHALF |
-   ESTATUS_1000_TFULL | ESTATUS_1000_THALF)) {
-   phydev->speed = SPEED_1000;
-   if (estatus & (ESTATUS_1000_XFULL | ESTATUS_1000_TFULL))
-   phydev->duplex = DUPLEX_FULL;
-   }
-
} else {
u32 bmcr = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
 
@@ -401,10 +384,6 @@ int genphy_config(struct phy_device *phydev)
features |= SUPPORTED_1000baseT_Full;
if (val & ESTATUS_1000_THALF)
features |= SUPPORTED_1000baseT_Half;
-   if (val & ESTATUS_1000_XFULL)
-   features |= SUPPORTED_1000baseX_Full;
-   if (val & ESTATUS_1000_XHALF)
-   features |= SUPPORTED_1000baseX_Full;
}
 
phydev->supported = features;
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index f6dbdb0..fcb20fe 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -580,8 +580,6 @@ enum ethtool_sfeatures_retval_bits {
 #define SUPPORTED_1baseKX4_Full(1 << 18)
 #define SUPPORTED_1baseKR_Full (1 << 19)
 #define SUPPORTED_1baseR_FEC   (1 << 20)
-#define SUPPORTED_1000baseX_Half   (1 << 21)
-#define SUPPORTED_1000baseX_Full   (1 << 22)
 
 /* Indicates what features are advertised by the interface. */
 #define ADVERTISED_10baseT_Half(1 << 0)
@@ -605,8 +603,6 @@ enum ethtool_sfeatures_retval_bits {
 #define ADVERTISED_1baseKX4_Full   (1 << 18)
 #define ADVERTISED_1baseKR_Full(1 << 19)
 #define ADVERTISED_1baseR_FEC  (1 << 20)
-#define ADVERTISED_1000baseX_Half  (1 << 21)
-#define ADVERTISED_1000baseX_Full  (1 << 22)
 
 /* The following are all involved in forcing a particular link
  * mode for the device for setting things.  When getting the
diff --git a/include/linux/mii.h b/include/linux/mii.h
index 66b83d8..8b92692 100644
--- a/include/linux/mii.h
+++ b/include/linux/mii.h
@@ -115,8 +115,6 @@
 #define EXPANSION_MFAULTS  0x0010  /* Multiple faults detected*/
 #define EXPANSION_RESV 0xffe0  /* Unused...   */
 
-#define ESTATUS_1000_XFULL 0x8000  /* Can do 1000BX Full */
-#define ESTATUS_1000_XHALF 0x4000  /* Can do 1000BX Half */
 #define ESTATUS_1000_TFULL 0x2000  /* Can do 1000BT Full */
 #define ESTATUS_1000_THALF 0x1000  /* Can do 1000BT Half */
 
-- 
1.8.1.2

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] net: phy: Fix networking regression on some mx6 boards

2013-07-18 Thread Otavio Salvador
On Thu, Jul 18, 2013 at 6:04 PM, Fabio Estevam  wrote:
> From: Fabio Estevam 
>
> Since commit de1d786edf (add support for Xilinx 1000BASE-X phy (GTX))
> we are no longer able to use tftp transfers on some mx6 boards
> like mx6qsabresd and wandboard, which use AR8031 Ethernet phy.
>
> Revert the commit as a proper fix is still not available.
>
> Reported-by: Sascha Silbe 
> Signed-off-by: Fabio Estevam 

This is indeed the best option that late in the release I think.

Acked-by: Otavio Salvador 

--
Otavio Salvador O.S. Systems
http://www.ossystems.com.brhttp://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854Mobile: +1 (347) 903-9750
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot