Add delay to Octeon MDIO access routines.
Prevent saturattion of the bus by constant polling which in extreme cases can cause interface lockup. This makes FreeBSD match similar case in the executive.
This commit is contained in:
parent
5f36980b65
commit
fff5c2c5e1
@ -71,6 +71,7 @@ int cvm_oct_mdio_read(struct ifnet *ifp, int phy_id, int location)
|
||||
cvmx_write_csr(CVMX_SMI_CMD, smi_cmd.u64);
|
||||
|
||||
do {
|
||||
cvmx_wait(1000);
|
||||
smi_rd.u64 = cvmx_read_csr(CVMX_SMI_RD_DAT);
|
||||
} while (smi_rd.s.pending);
|
||||
|
||||
@ -108,6 +109,7 @@ void cvm_oct_mdio_write(struct ifnet *ifp, int phy_id, int location, int val)
|
||||
cvmx_write_csr(CVMX_SMI_CMD, smi_cmd.u64);
|
||||
|
||||
do {
|
||||
cvmx_wait(1000);
|
||||
smi_wr.u64 = cvmx_read_csr(CVMX_SMI_WR_DAT);
|
||||
} while (smi_wr.s.pending);
|
||||
MDIO_UNLOCK();
|
||||
|
Loading…
x
Reference in New Issue
Block a user