Lines Matching +full:max +full:- +full:bitrate
2 * Copyright (C) 2005 Marc Kleine-Budde, Pengutronix
4 * Copyright (C) 2008-2009 Wolfgang Grandegger <wg@grandegger.com>
51 static const u8 len2dlc[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, /* 0 - 8 */
52 9, 9, 9, 9, /* 9 - 12 */
53 10, 10, 10, 10, /* 13 - 16 */
54 11, 11, 11, 11, /* 17 - 20 */
55 12, 12, 12, 12, /* 21 - 24 */
56 13, 13, 13, 13, 13, 13, 13, 13, /* 25 - 32 */
57 14, 14, 14, 14, 14, 14, 14, 14, /* 33 - 40 */
58 14, 14, 14, 14, 14, 14, 14, 14, /* 41 - 48 */
59 15, 15, 15, 15, 15, 15, 15, 15, /* 49 - 56 */
60 15, 15, 15, 15, 15, 15, 15, 15}; /* 57 - 64 */
73 #define CAN_CALC_MAX_ERROR 50 /* in one-tenth of a percent */
77 * Bit-timing calculation derived from:
80 * Copyright 2004-2006 Pavel Pisa - DCE FELK CVUT cz
84 * Calculates proper bit-timing parameters for a specified bit-rate
85 * and sample-point, which can then be used to set the bit-timing
100 tseg2 = tseg + CAN_CALC_SYNC_SEG - (sample_point_nominal * (tseg + CAN_CALC_SYNC_SEG)) / 1000 - i; in can_update_sample_point()
101 tseg2 = clamp(tseg2, btc->tseg2_min, btc->tseg2_max); in can_update_sample_point()
102 tseg1 = tseg - tseg2; in can_update_sample_point()
103 if (tseg1 > btc->tseg1_max) { in can_update_sample_point()
104 tseg1 = btc->tseg1_max; in can_update_sample_point()
105 tseg2 = tseg - tseg1; in can_update_sample_point()
108 sample_point = 1000 * (tseg + CAN_CALC_SYNC_SEG - tseg2) / (tseg + CAN_CALC_SYNC_SEG); in can_update_sample_point()
109 sample_point_error = abs(sample_point_nominal - sample_point); in can_update_sample_point()
129 unsigned int bitrate; /* current bitrate */ in can_calc_bittiming() local
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()
153 for (tseg = (btc->tseg1_max + btc->tseg2_max) * 2 + 1; in can_calc_bittiming()
154 tseg >= (btc->tseg1_min + btc->tseg2_min) * 2; tseg--) { in can_calc_bittiming()
158 brp = priv->clock.freq / (tsegall * bt->bitrate) + tseg % 2; in can_calc_bittiming()
161 brp = (brp / btc->brp_inc) * btc->brp_inc; in can_calc_bittiming()
162 if ((brp < btc->brp_min) || (brp > btc->brp_max)) in can_calc_bittiming()
165 bitrate = priv->clock.freq / (brp * tsegall); in can_calc_bittiming()
166 bitrate_error = abs(bt->bitrate - bitrate); in can_calc_bittiming()
172 /* reset sample point error if we have a better bitrate */ in can_calc_bittiming()
190 /* Error in one-tenth of a percent */ in can_calc_bittiming()
192 do_div(v64, bt->bitrate); in can_calc_bittiming()
196 "bitrate error %d.%d%% too high\n", in can_calc_bittiming()
198 return -EDOM; in can_calc_bittiming()
200 netdev_warn(dev, "bitrate error %d.%d%%\n", in can_calc_bittiming()
205 bt->sample_point = can_update_sample_point(btc, sample_point_nominal, best_tseg, in can_calc_bittiming()
209 do_div(v64, priv->clock.freq); 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()
219 /* bt->sjw is at least 1 -> sanitize upper bound to sjw_max */ 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()
222 /* bt->sjw must not be higher than tseg2 */ 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()
229 /* real bitrate */ in can_calc_bittiming()
230 bt->bitrate = priv->clock.freq / (bt->brp * (CAN_CALC_SYNC_SEG + tseg1 + tseg2)); in can_calc_bittiming()
238 netdev_err(dev, "bit-timing calculation not available\n"); in can_calc_bittiming()
239 return -EINVAL; in can_calc_bittiming()
244 * Checks the validity of the specified bit-timing parameters prop_seg,
245 * phase_seg1, phase_seg2 and sjw and tries to determine the bitrate
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()
260 tseg1 < btc->tseg1_min || tseg1 > btc->tseg1_max || in can_fixup_bittiming()
261 bt->phase_seg2 < btc->tseg2_min || bt->phase_seg2 > btc->tseg2_max) in can_fixup_bittiming()
262 return -ERANGE; in can_fixup_bittiming()
264 brp64 = (u64)priv->clock.freq * (u64)bt->tq; in can_fixup_bittiming()
265 if (btc->brp_inc > 1) in can_fixup_bittiming()
266 do_div(brp64, btc->brp_inc); in can_fixup_bittiming()
267 brp64 += 500000000UL - 1; in can_fixup_bittiming()
269 if (btc->brp_inc > 1) in can_fixup_bittiming()
270 brp64 *= btc->brp_inc; 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()
274 return -EINVAL; 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()
283 /* Checks the validity of predefined bitrate settings */
292 if (bt->bitrate == bitrate_const[i]) in can_validate_bitrate()
296 if (i >= priv->bitrate_const_cnt) in can_validate_bitrate()
297 return -EINVAL; in can_validate_bitrate()
311 * timing parameters are calculated based on the provided bitrate OR in can_get_bittiming()
315 if (!bt->tq && bt->bitrate && btc) in can_get_bittiming()
317 else if (bt->tq && !bt->bitrate && btc) in can_get_bittiming()
319 else if (!bt->tq && bt->bitrate && bitrate_const) in can_get_bittiming()
323 err = -EINVAL; in can_get_bittiming()
333 if (new_state <= priv->state) in can_update_state_error_stats()
338 priv->can_stats.error_warning++; in can_update_state_error_stats()
341 priv->can_stats.error_passive++; in can_update_state_error_stats()
344 priv->can_stats.bus_off++; in can_update_state_error_stats()
383 enum can_state new_state = max(tx_state, rx_state); in can_change_state()
385 if (unlikely(new_state == priv->state)) { in can_change_state()
393 priv->state = new_state; in can_change_state()
399 cf->can_id |= CAN_ERR_BUSOFF; in can_change_state()
403 cf->can_id |= CAN_ERR_CRTL; in can_change_state()
404 cf->data[1] |= tx_state >= rx_state ? in can_change_state()
406 cf->data[1] |= tx_state <= rx_state ? in can_change_state()
418 * the IFF_ECHO remains clear in dev->flags. This causes the PF_CAN core
424 struct net_device_stats *stats = &dev->stats; in can_flush_echo_skb()
427 for (i = 0; i < priv->echo_skb_max; i++) { in can_flush_echo_skb()
428 if (priv->echo_skb[i]) { in can_flush_echo_skb()
429 kfree_skb(priv->echo_skb[i]); in can_flush_echo_skb()
430 priv->echo_skb[i] = NULL; in can_flush_echo_skb()
431 stats->tx_dropped++; in can_flush_echo_skb()
432 stats->tx_aborted_errors++; in can_flush_echo_skb()
442 * priv->echo_skb, if necessary.
449 BUG_ON(idx >= priv->echo_skb_max); in can_put_echo_skb()
452 if (!(dev->flags & IFF_ECHO) || skb->pkt_type != PACKET_LOOPBACK || in can_put_echo_skb()
453 (skb->protocol != htons(ETH_P_CAN) && in can_put_echo_skb()
454 skb->protocol != htons(ETH_P_CANFD))) { in can_put_echo_skb()
459 if (!priv->echo_skb[idx]) { in can_put_echo_skb()
466 skb->pkt_type = PACKET_BROADCAST; in can_put_echo_skb()
467 skb->ip_summed = CHECKSUM_UNNECESSARY; in can_put_echo_skb()
468 skb->dev = dev; in can_put_echo_skb()
471 priv->echo_skb[idx] = skb; in can_put_echo_skb()
484 if (idx >= priv->echo_skb_max) { in __can_get_echo_skb()
485 netdev_err(dev, "%s: BUG! Trying to access can_priv::echo_skb out of bounds (%u/max %u)\n", in __can_get_echo_skb()
486 __func__, idx, priv->echo_skb_max); in __can_get_echo_skb()
490 if (priv->echo_skb[idx]) { in __can_get_echo_skb()
494 struct sk_buff *skb = priv->echo_skb[idx]; in __can_get_echo_skb()
495 struct canfd_frame *cf = (struct canfd_frame *)skb->data; in __can_get_echo_skb()
496 u8 len = cf->len; in __can_get_echo_skb()
499 priv->echo_skb[idx] = NULL; in __can_get_echo_skb()
512 * access to priv->echo_skb, if necessary.
538 BUG_ON(idx >= priv->echo_skb_max); in can_free_echo_skb()
540 if (priv->echo_skb[idx]) { in can_free_echo_skb()
541 dev_kfree_skb_any(priv->echo_skb[idx]); in can_free_echo_skb()
542 priv->echo_skb[idx] = NULL; in can_free_echo_skb()
548 * CAN device restart for bus-off recovery
553 struct net_device_stats *stats = &dev->stats; in can_restart()
561 * No synchronization needed because the device is bus-off and in can_restart()
569 err = -ENOMEM; in can_restart()
572 cf->can_id |= CAN_ERR_RESTARTED; in can_restart()
576 stats->rx_packets++; in can_restart()
577 stats->rx_bytes += cf->can_dlc; in can_restart()
581 priv->can_stats.restarts++; in can_restart()
584 err = priv->do_set_mode(dev, CAN_MODE_START); in can_restart()
596 can_restart(priv->dev); in can_restart_work()
605 * disabled and the device is in the bus-off state in can_restart_now()
607 if (priv->restart_ms) in can_restart_now()
608 return -EINVAL; in can_restart_now()
609 if (priv->state != CAN_STATE_BUS_OFF) in can_restart_now()
610 return -EBUSY; in can_restart_now()
612 cancel_delayed_work_sync(&priv->restart_work); in can_restart_now()
619 * CAN bus-off
621 * This functions should be called when the device goes bus-off to
623 * If enabled, a timer is started to trigger bus-off recovery.
629 netdev_info(dev, "bus-off\n"); in can_bus_off()
633 if (priv->restart_ms) in can_bus_off()
634 schedule_delayed_work(&priv->restart_work, in can_bus_off()
635 msecs_to_jiffies(priv->restart_ms)); in can_bus_off()
641 dev->type = ARPHRD_CAN; in can_setup()
642 dev->mtu = CAN_MTU; in can_setup()
643 dev->hard_header_len = 0; in can_setup()
644 dev->addr_len = 0; in can_setup()
645 dev->tx_queue_len = 10; in can_setup()
647 /* New-style flags. */ in can_setup()
648 dev->flags = IFF_NOARP; in can_setup()
649 dev->features = NETIF_F_HW_CSUM; in can_setup()
661 skb->protocol = htons(ETH_P_CAN); in alloc_can_skb()
662 skb->pkt_type = PACKET_BROADCAST; in alloc_can_skb()
663 skb->ip_summed = CHECKSUM_UNNECESSARY; in alloc_can_skb()
670 can_skb_prv(skb)->ifindex = dev->ifindex; in alloc_can_skb()
671 can_skb_prv(skb)->skbcnt = 0; in alloc_can_skb()
689 skb->protocol = htons(ETH_P_CANFD); in alloc_canfd_skb()
690 skb->pkt_type = PACKET_BROADCAST; in alloc_canfd_skb()
691 skb->ip_summed = CHECKSUM_UNNECESSARY; in alloc_canfd_skb()
698 can_skb_prv(skb)->ifindex = dev->ifindex; in alloc_canfd_skb()
699 can_skb_prv(skb)->skbcnt = 0; in alloc_canfd_skb()
715 (*cf)->can_id = CAN_ERR_FLAG; in alloc_can_err_skb()
716 (*cf)->can_dlc = CAN_ERR_DLC; in alloc_can_err_skb()
744 priv->dev = dev; in alloc_candev_mqs()
747 priv->echo_skb_max = echo_skb_max; in alloc_candev_mqs()
748 priv->echo_skb = (void *)priv + in alloc_candev_mqs()
752 priv->state = CAN_STATE_STOPPED; in alloc_candev_mqs()
754 INIT_DELAYED_WORK(&priv->restart_work, can_restart_work); in alloc_candev_mqs()
777 if (dev->flags & IFF_UP) in can_change_mtu()
778 return -EBUSY; in can_change_mtu()
783 /* 'CANFD-only' controllers can not switch to CAN_MTU */ in can_change_mtu()
784 if (priv->ctrlmode_static & CAN_CTRLMODE_FD) in can_change_mtu()
785 return -EINVAL; in can_change_mtu()
787 priv->ctrlmode &= ~CAN_CTRLMODE_FD; in can_change_mtu()
792 if (!(priv->ctrlmode_supported & CAN_CTRLMODE_FD) && in can_change_mtu()
793 !(priv->ctrlmode_static & CAN_CTRLMODE_FD)) in can_change_mtu()
794 return -EINVAL; in can_change_mtu()
796 priv->ctrlmode |= CAN_CTRLMODE_FD; in can_change_mtu()
800 return -EINVAL; in can_change_mtu()
803 dev->mtu = new_mtu; in can_change_mtu()
818 if (!priv->bittiming.bitrate) { in open_candev()
819 netdev_err(dev, "bit-timing not yet defined\n"); in open_candev()
820 return -EINVAL; in open_candev()
823 /* For CAN FD the data bitrate has to be >= the arbitration bitrate */ in open_candev()
824 if ((priv->ctrlmode & CAN_CTRLMODE_FD) && in open_candev()
825 (!priv->data_bittiming.bitrate || in open_candev()
826 (priv->data_bittiming.bitrate < priv->bittiming.bitrate))) { in open_candev()
827 netdev_err(dev, "incorrect/missing data bit-timing\n"); in open_candev()
828 return -EINVAL; in open_candev()
831 /* Switch carrier on if device was stopped while in bus-off state */ in open_candev()
848 struct device_node *np = dev->dev.parent->of_node; in of_can_transceiver()
851 dn = of_get_child_by_name(np, "can-transceiver"); in of_can_transceiver()
855 ret = of_property_read_u32(dn, "max-bitrate", &priv->bitrate_max); in of_can_transceiver()
857 if ((ret && ret != -EINVAL) || (!ret && !priv->bitrate_max)) in of_can_transceiver()
858 netdev_warn(dev, "Invalid value for transceiver max bitrate. Ignoring bitrate limit.\n"); in of_can_transceiver()
873 cancel_delayed_work_sync(&priv->restart_work); in close_candev()
904 * - nominal/arbitration bittiming in can_validate()
905 * - data bittiming in can_validate()
906 * - control mode with CAN_CTRLMODE_FD set in can_validate()
915 is_can_fd = cm->flags & cm->mask & CAN_CTRLMODE_FD; in can_validate()
920 return -EOPNOTSUPP; in can_validate()
925 return -EOPNOTSUPP; in can_validate()
938 /* We need synchronization with dev->stop() */ in can_changelink()
945 if (dev->flags & IFF_UP) in can_changelink()
946 return -EBUSY; in can_changelink()
949 * bittiming_const if set, otherwise pass bitrate in can_changelink()
953 if (!priv->bittiming_const && !priv->do_set_bittiming) in can_changelink()
954 return -EOPNOTSUPP; in can_changelink()
958 priv->bittiming_const, in can_changelink()
959 priv->bitrate_const, in can_changelink()
960 priv->bitrate_const_cnt); in can_changelink()
964 if (priv->bitrate_max && bt.bitrate > priv->bitrate_max) { in can_changelink()
965 netdev_err(dev, "arbitration bitrate surpasses transceiver capabilities of %d bps\n", in can_changelink()
966 priv->bitrate_max); in can_changelink()
967 return -EINVAL; in can_changelink()
970 memcpy(&priv->bittiming, &bt, sizeof(bt)); in can_changelink()
972 if (priv->do_set_bittiming) { in can_changelink()
973 /* Finally, set the bit-timing registers */ in can_changelink()
974 err = priv->do_set_bittiming(dev); in can_changelink()
986 if (dev->flags & IFF_UP) in can_changelink()
987 return -EBUSY; in can_changelink()
989 ctrlstatic = priv->ctrlmode_static; in can_changelink()
990 maskedflags = cm->flags & cm->mask; in can_changelink()
993 if (cm->mask & ~(priv->ctrlmode_supported | ctrlstatic)) in can_changelink()
994 return -EOPNOTSUPP; in can_changelink()
996 /* do not check for static fd-non-iso if 'fd' is disabled */ in can_changelink()
1002 return -EOPNOTSUPP; in can_changelink()
1005 priv->ctrlmode &= ~cm->mask; in can_changelink()
1006 priv->ctrlmode |= maskedflags; in can_changelink()
1009 if (priv->ctrlmode & CAN_CTRLMODE_FD) in can_changelink()
1010 dev->mtu = CANFD_MTU; in can_changelink()
1012 dev->mtu = CAN_MTU; in can_changelink()
1017 if (dev->flags & IFF_UP) in can_changelink()
1018 return -EBUSY; in can_changelink()
1019 priv->restart_ms = nla_get_u32(data[IFLA_CAN_RESTART_MS]); in can_changelink()
1024 if (!(dev->flags & IFF_UP)) in can_changelink()
1025 return -EINVAL; in can_changelink()
1035 if (dev->flags & IFF_UP) in can_changelink()
1036 return -EBUSY; in can_changelink()
1039 * data_bittiming_const if set, otherwise pass bitrate in can_changelink()
1043 if (!priv->data_bittiming_const && !priv->do_set_data_bittiming) in can_changelink()
1044 return -EOPNOTSUPP; in can_changelink()
1049 priv->data_bittiming_const, in can_changelink()
1050 priv->data_bitrate_const, in can_changelink()
1051 priv->data_bitrate_const_cnt); in can_changelink()
1055 if (priv->bitrate_max && dbt.bitrate > priv->bitrate_max) { in can_changelink()
1056 netdev_err(dev, "canfd data bitrate surpasses transceiver capabilities of %d bps\n", in can_changelink()
1057 priv->bitrate_max); in can_changelink()
1058 return -EINVAL; in can_changelink()
1061 memcpy(&priv->data_bittiming, &dbt, sizeof(dbt)); in can_changelink()
1063 if (priv->do_set_data_bittiming) { in can_changelink()
1064 /* Finally, set the bit-timing registers */ in can_changelink()
1065 err = priv->do_set_data_bittiming(dev); in can_changelink()
1073 const unsigned int num_term = priv->termination_const_cnt; in can_changelink()
1076 if (!priv->do_set_termination) in can_changelink()
1077 return -EOPNOTSUPP; in can_changelink()
1081 if (termval == priv->termination_const[i]) in can_changelink()
1085 return -EINVAL; in can_changelink()
1088 err = priv->do_set_termination(dev, termval); in can_changelink()
1092 priv->termination = termval; in can_changelink()
1103 if (priv->bittiming.bitrate) /* IFLA_CAN_BITTIMING */ in can_get_size()
1105 if (priv->bittiming_const) /* IFLA_CAN_BITTIMING_CONST */ in can_get_size()
1111 if (priv->do_get_berr_counter) /* IFLA_CAN_BERR_COUNTER */ in can_get_size()
1113 if (priv->data_bittiming.bitrate) /* IFLA_CAN_DATA_BITTIMING */ in can_get_size()
1115 if (priv->data_bittiming_const) /* IFLA_CAN_DATA_BITTIMING_CONST */ in can_get_size()
1117 if (priv->termination_const) { in can_get_size()
1118 size += nla_total_size(sizeof(priv->termination)); /* IFLA_CAN_TERMINATION */ in can_get_size()
1119 size += nla_total_size(sizeof(*priv->termination_const) * /* IFLA_CAN_TERMINATION_CONST */ in can_get_size()
1120 priv->termination_const_cnt); in can_get_size()
1122 if (priv->bitrate_const) /* IFLA_CAN_BITRATE_CONST */ in can_get_size()
1123 size += nla_total_size(sizeof(*priv->bitrate_const) * in can_get_size()
1124 priv->bitrate_const_cnt); in can_get_size()
1125 if (priv->data_bitrate_const) /* IFLA_CAN_DATA_BITRATE_CONST */ in can_get_size()
1126 size += nla_total_size(sizeof(*priv->data_bitrate_const) * in can_get_size()
1127 priv->data_bitrate_const_cnt); in can_get_size()
1128 size += sizeof(priv->bitrate_max); /* IFLA_CAN_BITRATE_MAX */ in can_get_size()
1136 struct can_ctrlmode cm = {.flags = priv->ctrlmode}; in can_fill_info()
1138 enum can_state state = priv->state; in can_fill_info()
1140 if (priv->do_get_state) in can_fill_info()
1141 priv->do_get_state(dev, &state); in can_fill_info()
1143 if ((priv->bittiming.bitrate && in can_fill_info()
1145 sizeof(priv->bittiming), &priv->bittiming)) || in can_fill_info()
1147 (priv->bittiming_const && in can_fill_info()
1149 sizeof(*priv->bittiming_const), priv->bittiming_const)) || in can_fill_info()
1151 nla_put(skb, IFLA_CAN_CLOCK, sizeof(priv->clock), &priv->clock) || in can_fill_info()
1154 nla_put_u32(skb, IFLA_CAN_RESTART_MS, priv->restart_ms) || in can_fill_info()
1156 (priv->do_get_berr_counter && in can_fill_info()
1157 !priv->do_get_berr_counter(dev, &bec) && in can_fill_info()
1160 (priv->data_bittiming.bitrate && in can_fill_info()
1162 sizeof(priv->data_bittiming), &priv->data_bittiming)) || in can_fill_info()
1164 (priv->data_bittiming_const && in can_fill_info()
1166 sizeof(*priv->data_bittiming_const), in can_fill_info()
1167 priv->data_bittiming_const)) || in can_fill_info()
1169 (priv->termination_const && in can_fill_info()
1170 (nla_put_u16(skb, IFLA_CAN_TERMINATION, priv->termination) || in can_fill_info()
1172 sizeof(*priv->termination_const) * in can_fill_info()
1173 priv->termination_const_cnt, in can_fill_info()
1174 priv->termination_const))) || in can_fill_info()
1176 (priv->bitrate_const && in can_fill_info()
1178 sizeof(*priv->bitrate_const) * in can_fill_info()
1179 priv->bitrate_const_cnt, in can_fill_info()
1180 priv->bitrate_const)) || in can_fill_info()
1182 (priv->data_bitrate_const && in can_fill_info()
1184 sizeof(*priv->data_bitrate_const) * in can_fill_info()
1185 priv->data_bitrate_const_cnt, in can_fill_info()
1186 priv->data_bitrate_const)) || in can_fill_info()
1189 sizeof(priv->bitrate_max), in can_fill_info()
1190 &priv->bitrate_max)) in can_fill_info()
1193 return -EMSGSIZE; in can_fill_info()
1208 sizeof(priv->can_stats), &priv->can_stats)) in can_fill_xstats()
1213 return -EMSGSIZE; in can_fill_xstats()
1220 return -EOPNOTSUPP; in can_newlink()
1254 if ((!priv->termination_const != !priv->termination_const_cnt) || in register_candev()
1255 (!priv->termination_const != !priv->do_set_termination)) in register_candev()
1256 return -EINVAL; in register_candev()
1258 if (!priv->bitrate_const != !priv->bitrate_const_cnt) in register_candev()
1259 return -EINVAL; in register_candev()
1261 if (!priv->data_bitrate_const != !priv->data_bitrate_const_cnt) in register_candev()
1262 return -EINVAL; in register_candev()
1264 dev->rtnl_link_ops = &can_link_ops; in register_candev()
1286 if ((dev->type != ARPHRD_CAN) || (dev->rtnl_link_ops != &can_link_ops)) in safe_candev_priv()