On 11/24/2010 01:22 PM, Tomoya MORINAGA wrote: > Fix bit timing calculation issue > Modify like use calculated value directly passed by CAN core module. > > Signed-off-by: Tomoya MORINAGA <[email protected]>
Acked-by: Marc Kleine-Budde <[email protected]> > --- > drivers/net/can/pch_can.c | 6 ++---- > 1 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/can/pch_can.c b/drivers/net/can/pch_can.c > index 7342030..466f011 100644 > --- a/drivers/net/can/pch_can.c > +++ b/drivers/net/can/pch_can.c > @@ -800,17 +800,15 @@ static int pch_set_bittiming(struct net_device *ndev) > const struct can_bittiming *bt = &priv->can.bittiming; > u32 canbit; > u32 bepe; > - u32 brp; > > /* Setting the CCE bit for accessing the Can Timing register. */ > pch_can_bit_set(&priv->regs->cont, PCH_CTRL_CCE); > > - brp = (bt->tq) / (1000000000/PCH_CAN_CLK) - 1; > - canbit = brp & PCH_MSK_BITT_BRP; > + canbit = (bt->brp - 1) & PCH_MSK_BITT_BRP; Masking here shouldn't be necessary but won't hurt, better play safe. > canbit |= (bt->sjw - 1) << PCH_BIT_SJW_SHIFT; > canbit |= (bt->phase_seg1 + bt->prop_seg - 1) << PCH_BIT_TSEG1_SHIFT; > canbit |= (bt->phase_seg2 - 1) << PCH_BIT_TSEG2_SHIFT; > - bepe = (brp & PCH_MSK_BRPE_BRPE) >> PCH_BIT_BRPE_BRPE_SHIFT; > + bepe = ((bt->brp - 1) & PCH_MSK_BRPE_BRPE) >> PCH_BIT_BRPE_BRPE_SHIFT; dito > iowrite32(canbit, &priv->regs->bitt); > iowrite32(bepe, &priv->regs->brpe); > pch_can_bit_clear(&priv->regs->cont, PCH_CTRL_CCE); cheers, Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Socketcan-core mailing list [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-core
