Re: [U-Boot] [PATCH 3/6] net: phy: realtek: Use generic genphy_parse_link() for RTL8211E

2016-02-22 Thread Michal Simek
On 13.2.2016 11:39, Michal Simek wrote:
> The problem with current implementation is that SPDDONE bit is 1
> but link bit is zero. That's why phydev->link is setup to 0
> which ending up in driver failure that link is not up.
> 
> Log:
> Zynq> dhcp
> ethernet@e000b000 Waiting for PHY auto negotiation to complete...
> done
> ethernet@e000b000: No link.
> 
> There is at least 1ms delay between spddone bit and link up.
> 
> Use genphy_read_status() instead of realtek implemenation which is
> working with page 11. Linux driver is also using generic implementation.
> 
> Signed-off-by: Michal Simek 
> ---
> 
>  drivers/net/phy/realtek.c | 10 +-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
> index bba48da4099f..259a87fcc59e 100644
> --- a/drivers/net/phy/realtek.c
> +++ b/drivers/net/phy/realtek.c
> @@ -203,6 +203,14 @@ static int rtl8211x_startup(struct phy_device *phydev)
>   return 0;
>  }
>  
> +static int rtl8211e_startup(struct phy_device *phydev)
> +{
> + genphy_update_link(phydev);
> + genphy_parse_link(phydev);
> +
> + return 0;
> +}
> +
>  static int rtl8211f_startup(struct phy_device *phydev)
>  {
>   /* Read the Status (2x to make sure link is right) */
> @@ -230,7 +238,7 @@ static struct phy_driver RTL8211E_driver = {
>   .mask = 0xff,
>   .features = PHY_GBIT_FEATURES,
>   .config = _config,
> - .startup = _startup,
> + .startup = _startup,
>   .shutdown = _shutdown,
>  };
>  

Applied to zynq repo.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform




signature.asc
Description: OpenPGP digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 3/6] net: phy: realtek: Use generic genphy_parse_link() for RTL8211E

2016-02-13 Thread Michal Simek
The problem with current implementation is that SPDDONE bit is 1
but link bit is zero. That's why phydev->link is setup to 0
which ending up in driver failure that link is not up.

Log:
Zynq> dhcp
ethernet@e000b000 Waiting for PHY auto negotiation to complete...
done
ethernet@e000b000: No link.

There is at least 1ms delay between spddone bit and link up.

Use genphy_read_status() instead of realtek implemenation which is
working with page 11. Linux driver is also using generic implementation.

Signed-off-by: Michal Simek 
---

 drivers/net/phy/realtek.c | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
index bba48da4099f..259a87fcc59e 100644
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -203,6 +203,14 @@ static int rtl8211x_startup(struct phy_device *phydev)
return 0;
 }
 
+static int rtl8211e_startup(struct phy_device *phydev)
+{
+   genphy_update_link(phydev);
+   genphy_parse_link(phydev);
+
+   return 0;
+}
+
 static int rtl8211f_startup(struct phy_device *phydev)
 {
/* Read the Status (2x to make sure link is right) */
@@ -230,7 +238,7 @@ static struct phy_driver RTL8211E_driver = {
.mask = 0xff,
.features = PHY_GBIT_FEATURES,
.config = _config,
-   .startup = _startup,
+   .startup = _startup,
.shutdown = _shutdown,
 };
 
-- 
1.9.1

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