diff options
author | Emilian Medve <Emilian.Medve@freescale.com> | 2007-01-30 16:14:50 -0600 |
---|---|---|
committer | Kim Phillips <kim.phillips@freescale.com> | 2007-03-02 11:05:53 -0600 |
commit | a28899c910024a0226331df07207b1038c300c93 (patch) | |
tree | 3934bc93d648d0a48a5ced4037ba2d2a994b0db6 /drivers | |
parent | 3e78a31cfe3d3022f46f67eb88e1281d5cc2eb89 (diff) | |
download | u-boot-imx-a28899c910024a0226331df07207b1038c300c93.zip u-boot-imx-a28899c910024a0226331df07207b1038c300c93.tar.gz u-boot-imx-a28899c910024a0226331df07207b1038c300c93.tar.bz2 |
mpc83xx: Fix alternating tx error / tx buffer not ready bug in QE UEC
The problem is not gcc4 but the code itself. The BD_STATUS() macro can't
be used for busy-waiting since it strips the 'volatile' property from
the bd variable. gcc3 was working by pure luck.
This is a follow on patch to "Fix the UEC driver bug of QE"
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/qe/uec.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c index aea455b..c416a67 100644 --- a/drivers/qe/uec.c +++ b/drivers/qe/uec.c @@ -1148,7 +1148,7 @@ static int uec_send(struct eth_device* dev, volatile void *buf, int len) /* Init TxBD */ BD_DATA_SET(bd, buf); BD_LENGTH_SET(bd, len); - status = BD_STATUS(bd); + status = bd->status; status &= BD_WRAP; status |= (TxBD_READY | TxBD_LAST); BD_STATUS_SET(bd, status); |