• Home
  • Raw
  • Download

Lines Matching refs:bt

103 static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt)  in can_calc_bittiming()  argument
118 if (bt->sample_point) { in can_calc_bittiming()
119 sampl_pt = bt->sample_point; in can_calc_bittiming()
121 if (bt->bitrate > 800000) in can_calc_bittiming()
123 else if (bt->bitrate > 500000) in can_calc_bittiming()
134 brp = priv->clock.freq / (tsegall * bt->bitrate) + tseg % 2; in can_calc_bittiming()
140 error = bt->bitrate - rate; in can_calc_bittiming()
166 error = (best_error * 1000) / bt->bitrate; in can_calc_bittiming()
179 bt->sample_point = can_update_spt(btc, sampl_pt, best_tseg, in can_calc_bittiming()
184 bt->tq = (u32)v64; in can_calc_bittiming()
185 bt->prop_seg = tseg1 / 2; in can_calc_bittiming()
186 bt->phase_seg1 = tseg1 - bt->prop_seg; in can_calc_bittiming()
187 bt->phase_seg2 = tseg2; in can_calc_bittiming()
190 if (!bt->sjw || !btc->sjw_max) in can_calc_bittiming()
191 bt->sjw = 1; in can_calc_bittiming()
194 if (bt->sjw > btc->sjw_max) in can_calc_bittiming()
195 bt->sjw = btc->sjw_max; in can_calc_bittiming()
197 if (tseg2 < bt->sjw) in can_calc_bittiming()
198 bt->sjw = tseg2; in can_calc_bittiming()
201 bt->brp = best_brp; in can_calc_bittiming()
203 bt->bitrate = priv->clock.freq / (bt->brp * (tseg1 + tseg2 + 1)); in can_calc_bittiming()
208 static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt) in can_calc_bittiming() argument
221 static int can_fixup_bittiming(struct net_device *dev, struct can_bittiming *bt) in can_fixup_bittiming() argument
231 tseg1 = bt->prop_seg + bt->phase_seg1; in can_fixup_bittiming()
232 if (!bt->sjw) in can_fixup_bittiming()
233 bt->sjw = 1; in can_fixup_bittiming()
234 if (bt->sjw > btc->sjw_max || in can_fixup_bittiming()
236 bt->phase_seg2 < btc->tseg2_min || bt->phase_seg2 > btc->tseg2_max) in can_fixup_bittiming()
239 brp64 = (u64)priv->clock.freq * (u64)bt->tq; in can_fixup_bittiming()
246 bt->brp = (u32)brp64; in can_fixup_bittiming()
248 if (bt->brp < btc->brp_min || bt->brp > btc->brp_max) in can_fixup_bittiming()
251 alltseg = bt->prop_seg + bt->phase_seg1 + bt->phase_seg2 + 1; in can_fixup_bittiming()
252 bt->bitrate = priv->clock.freq / (bt->brp * alltseg); in can_fixup_bittiming()
253 bt->sample_point = ((tseg1 + 1) * 1000) / alltseg; in can_fixup_bittiming()
258 static int can_get_bittiming(struct net_device *dev, struct can_bittiming *bt) in can_get_bittiming() argument
267 if (!bt->tq) in can_get_bittiming()
269 err = can_calc_bittiming(dev, bt); in can_get_bittiming()
272 err = can_fixup_bittiming(dev, bt); in can_get_bittiming()
662 struct can_bittiming bt; in can_changelink() local
667 memcpy(&bt, nla_data(data[IFLA_CAN_BITTIMING]), sizeof(bt)); in can_changelink()
668 if ((!bt.bitrate && !bt.tq) || (bt.bitrate && bt.tq)) in can_changelink()
670 err = can_get_bittiming(dev, &bt); in can_changelink()
673 memcpy(&priv->bittiming, &bt, sizeof(bt)); in can_changelink()