Lines Matching refs:bt

125 static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt,  in can_calc_bittiming()  argument
141 if (bt->sample_point) { in can_calc_bittiming()
142 sample_point_nominal = bt->sample_point; in can_calc_bittiming()
144 if (bt->bitrate > 800000) in can_calc_bittiming()
146 else if (bt->bitrate > 500000) in can_calc_bittiming()
158 brp = priv->clock.freq / (tsegall * bt->bitrate) + tseg % 2; in can_calc_bittiming()
166 bitrate_error = abs(bt->bitrate - bitrate); in can_calc_bittiming()
192 do_div(v64, bt->bitrate); in can_calc_bittiming()
205 bt->sample_point = can_update_sample_point(btc, sample_point_nominal, best_tseg, in can_calc_bittiming()
210 bt->tq = (u32)v64; in can_calc_bittiming()
211 bt->prop_seg = tseg1 / 2; in can_calc_bittiming()
212 bt->phase_seg1 = tseg1 - bt->prop_seg; in can_calc_bittiming()
213 bt->phase_seg2 = tseg2; in can_calc_bittiming()
216 if (!bt->sjw || !btc->sjw_max) { in can_calc_bittiming()
217 bt->sjw = 1; in can_calc_bittiming()
220 if (bt->sjw > btc->sjw_max) in can_calc_bittiming()
221 bt->sjw = btc->sjw_max; in can_calc_bittiming()
223 if (tseg2 < bt->sjw) in can_calc_bittiming()
224 bt->sjw = tseg2; in can_calc_bittiming()
227 bt->brp = best_brp; in can_calc_bittiming()
230 bt->bitrate = priv->clock.freq / (bt->brp * (CAN_CALC_SYNC_SEG + tseg1 + tseg2)); in can_calc_bittiming()
235 static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt, in can_calc_bittiming() argument
249 static int can_fixup_bittiming(struct net_device *dev, struct can_bittiming *bt, in can_fixup_bittiming() argument
256 tseg1 = bt->prop_seg + bt->phase_seg1; in can_fixup_bittiming()
257 if (!bt->sjw) in can_fixup_bittiming()
258 bt->sjw = 1; in can_fixup_bittiming()
259 if (bt->sjw > btc->sjw_max || in can_fixup_bittiming()
261 bt->phase_seg2 < btc->tseg2_min || bt->phase_seg2 > btc->tseg2_max) in can_fixup_bittiming()
264 brp64 = (u64)priv->clock.freq * (u64)bt->tq; in can_fixup_bittiming()
271 bt->brp = (u32)brp64; in can_fixup_bittiming()
273 if (bt->brp < btc->brp_min || bt->brp > btc->brp_max) in can_fixup_bittiming()
276 alltseg = bt->prop_seg + bt->phase_seg1 + bt->phase_seg2 + 1; in can_fixup_bittiming()
277 bt->bitrate = priv->clock.freq / (bt->brp * alltseg); in can_fixup_bittiming()
278 bt->sample_point = ((tseg1 + 1) * 1000) / alltseg; in can_fixup_bittiming()
284 static int can_validate_bitrate(struct net_device *dev, struct can_bittiming *bt, in can_validate_bitrate() argument
292 if (bt->bitrate == bitrate_const[i]) in can_validate_bitrate()
302 static int can_get_bittiming(struct net_device *dev, struct can_bittiming *bt, in can_get_bittiming() argument
315 if (!bt->tq && bt->bitrate && btc) in can_get_bittiming()
316 err = can_calc_bittiming(dev, bt, btc); in can_get_bittiming()
317 else if (bt->tq && !bt->bitrate && btc) in can_get_bittiming()
318 err = can_fixup_bittiming(dev, bt, btc); in can_get_bittiming()
319 else if (!bt->tq && bt->bitrate && bitrate_const) in can_get_bittiming()
320 err = can_validate_bitrate(dev, bt, bitrate_const, in can_get_bittiming()
919 struct can_bittiming bt; in can_changelink() local
933 memcpy(&bt, nla_data(data[IFLA_CAN_BITTIMING]), sizeof(bt)); in can_changelink()
934 err = can_get_bittiming(dev, &bt, in can_changelink()
941 if (priv->bitrate_max && bt.bitrate > priv->bitrate_max) { in can_changelink()
947 memcpy(&priv->bittiming, &bt, sizeof(bt)); in can_changelink()