mpc83xx: add a workaround for erratum eTSEC27 in earlier mpc8313 chip revs
[openwrt-10.03/.git] / target / linux / mpc83xx / patches-2.6.32 / 110-etsec27_war.patch
1 --- a/drivers/net/gianfar.c
2 +++ b/drivers/net/gianfar.c
3 @@ -334,7 +334,14 @@ static int gfar_probe(struct of_device *
4         /* We need to delay at least 3 TX clocks */
5         udelay(2);
6  
7 -       tempval = (MACCFG1_TX_FLOW | MACCFG1_RX_FLOW);
8 +       /*
9 +        * Do not enable flow control on chips earlier than rev 1.1,
10 +        * because of the eTSEC27 erratum
11 +        */
12 +       tempval = 0;
13 +       if (mfspr(SPRN_SVR) & 0xffff >= 0x0011)
14 +               tempval = (MACCFG1_TX_FLOW | MACCFG1_RX_FLOW);
15 +
16         gfar_write(&priv->regs->maccfg1, tempval);
17  
18         /* Initialize MACCFG2. */