|
@@ -1647,6 +1647,7 @@ static int ugeth_graceful_stop_tx(struct ucc_geth_private *ugeth)
|
|
|
struct ucc_fast_private *uccf;
|
|
|
u32 cecr_subblock;
|
|
|
u32 temp;
|
|
|
+ int i = 10;
|
|
|
|
|
|
uccf = ugeth->uccf;
|
|
|
|
|
@@ -1664,8 +1665,9 @@ static int ugeth_graceful_stop_tx(struct ucc_geth_private *ugeth)
|
|
|
|
|
|
/* Wait for command to complete */
|
|
|
do {
|
|
|
+ msleep(10);
|
|
|
temp = in_be32(uccf->p_ucce);
|
|
|
- } while (!(temp & UCCE_GRA));
|
|
|
+ } while (!(temp & UCCE_GRA) && --i);
|
|
|
|
|
|
uccf->stopped_tx = 1;
|
|
|
|
|
@@ -1677,6 +1679,7 @@ static int ugeth_graceful_stop_rx(struct ucc_geth_private * ugeth)
|
|
|
struct ucc_fast_private *uccf;
|
|
|
u32 cecr_subblock;
|
|
|
u8 temp;
|
|
|
+ int i = 10;
|
|
|
|
|
|
uccf = ugeth->uccf;
|
|
|
|
|
@@ -1694,9 +1697,9 @@ static int ugeth_graceful_stop_rx(struct ucc_geth_private * ugeth)
|
|
|
ucc_num);
|
|
|
qe_issue_cmd(QE_GRACEFUL_STOP_RX, cecr_subblock,
|
|
|
QE_CR_PROTOCOL_ETHERNET, 0);
|
|
|
-
|
|
|
+ msleep(10);
|
|
|
temp = in_8(&ugeth->p_rx_glbl_pram->rxgstpack);
|
|
|
- } while (!(temp & GRACEFUL_STOP_ACKNOWLEDGE_RX));
|
|
|
+ } while (!(temp & GRACEFUL_STOP_ACKNOWLEDGE_RX) && --i);
|
|
|
|
|
|
uccf->stopped_rx = 1;
|
|
|
|