On Wed, Jul 15, 2009 at 9:18 AM, Wolfgang Denk<w...@denx.de> wrote: > This patch adds error checking and prevents clobbering unrelated bits > (reserved bits or the DIS_PREAMBLE bit) when writing the MII_SPEED > register on MPC52xx systems. > > Signed-off-by: Wolfgang Denk <w...@denx.de> > Cc: Grant Likely <grant.lik...@secretlab.ca> > Cc: Kumar Gala <ga...@kernel.crashing.org> > Cc: <net...@vger.kernel.org>
As I mentioned in the other patch, I don't want the 5121 and 5200 FEC devices using common code for this. It is a tiny block of code and they are different devices. Just open code the needed calculation into this driver. g. > --- > drivers/net/fec_mpc52xx.c | 2 +- > drivers/net/fec_mpc52xx_phy.c | 6 ++++-- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c > index cc78633..b69d440 100644 > --- a/drivers/net/fec_mpc52xx.c > +++ b/drivers/net/fec_mpc52xx.c > @@ -639,7 +639,7 @@ static void mpc52xx_fec_hw_init(struct net_device *dev) > /* set phy speed. > * this can't be done in phy driver, since it needs to be called > * before fec stuff (even on resume) */ > - out_be32(&fec->mii_speed, priv->mdio_speed); > + clrsetbits_be32(&fec->mii_speed, 0x7E, priv->mdio_speed); > } > > /** > diff --git a/drivers/net/fec_mpc52xx_phy.c b/drivers/net/fec_mpc52xx_phy.c > index 31e6d62..f733d43 100644 > --- a/drivers/net/fec_mpc52xx_phy.c > +++ b/drivers/net/fec_mpc52xx_phy.c > @@ -105,8 +105,10 @@ static int mpc52xx_fec_mdio_probe(struct of_device *of, > dev_set_drvdata(dev, bus); > > /* set MII speed */ > - out_be32(&priv->regs->mii_speed, > - ((mpc5xxx_get_bus_frequency(of->node) >> 20) / 5) << 1); > + i = mpc5xxx_get_mii_speed(of); > + if (i<0) > + goto out_unmap; > + clrsetbits_be32(&priv->regs->mii_speed, 0x7E, i); > > err = of_mdiobus_register(bus, np); > if (err) > -- > 1.6.0.6 > > -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev