mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 15:40:29 +09:00
drivers: net: fsl_enetc_mdio: return with time-out if HW is stuck
On some boards MDIO may get stuck if it detects echo on the line. This is a know hardware issue, there is a board fix for it. In case we're running on a board that doesn't have the fix, we don't want to loop here forever and freeze U-Boot. Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
a931f78307
commit
6c96446859
@ -17,8 +17,13 @@
|
|||||||
|
|
||||||
static void enetc_mdio_wait_bsy(struct enetc_mdio_priv *priv)
|
static void enetc_mdio_wait_bsy(struct enetc_mdio_priv *priv)
|
||||||
{
|
{
|
||||||
while (enetc_read(priv, ENETC_MDIO_CFG) & ENETC_EMDIO_CFG_BSY)
|
int to = 10000;
|
||||||
|
|
||||||
|
while ((enetc_read(priv, ENETC_MDIO_CFG) & ENETC_EMDIO_CFG_BSY) &&
|
||||||
|
--to)
|
||||||
cpu_relax();
|
cpu_relax();
|
||||||
|
if (!to)
|
||||||
|
printf("T");
|
||||||
}
|
}
|
||||||
|
|
||||||
int enetc_mdio_read_priv(struct enetc_mdio_priv *priv, int addr, int devad,
|
int enetc_mdio_read_priv(struct enetc_mdio_priv *priv, int addr, int devad,
|
||||||
|
Loading…
Reference in New Issue
Block a user