From 59662a096cd5043db0fdc9540d96b1fd8f44345b Mon Sep 17 00:00:00 2001 From: Anton Vorontsov Date: Thu, 18 Dec 2008 08:23:22 +0000 Subject: [PATCH] --- yaml --- r: 122781 b: refs/heads/master c: b3431c647662a3647f3500a12ec85d65e3622759 h: refs/heads/master i: 122779: eee28f3a090b3922d024d9d59108f3f71b25f1f9 v: v3 --- [refs] | 2 +- trunk/drivers/net/ucc_geth.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index ea63c27cc504..ab79dea923d5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6086ebca13ddc9cfaaa25248ba8ebef35103fb74 +refs/heads/master: b3431c647662a3647f3500a12ec85d65e3622759 diff --git a/trunk/drivers/net/ucc_geth.c b/trunk/drivers/net/ucc_geth.c index 0a5b817fd7ac..fa25dc1fcdf1 100644 --- a/trunk/drivers/net/ucc_geth.c +++ b/trunk/drivers/net/ucc_geth.c @@ -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;