From a7062893da9877c2f7cb8ab947e638fc0fed469f Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Mon, 21 Feb 2022 23:17:34 +0100 Subject: [PATCH] can-calc-bit-timing: add can_fixup_bittiming to alg Signed-off-by: Marc Kleine-Budde --- calc-bit-timing/can-calc-bit-timing.c | 28 +++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/calc-bit-timing/can-calc-bit-timing.c b/calc-bit-timing/can-calc-bit-timing.c index 5c82c91..4b56fa1 100644 --- a/calc-bit-timing/can-calc-bit-timing.c +++ b/calc-bit-timing/can-calc-bit-timing.c @@ -143,6 +143,8 @@ struct calc_bittiming_const { struct alg { int (*calc_bittiming)(struct net_device *dev, struct can_bittiming *bt, const struct can_bittiming_const *btc); + int (*fixup_bittiming)(struct net_device *dev, struct can_bittiming *bt, + const struct can_bittiming_const *btc); const char *name; }; @@ -1472,17 +1474,6 @@ static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt, #undef can_calc_bittiming #undef can_update_spt -static const struct alg alg_list[] = { - /* 1st will be default */ - { - .calc_bittiming = can_calc_bittiming_v4_8, - .name = "v4.8", - }, { - .calc_bittiming = can_calc_bittiming_v3_18, - .name = "v3.18", - }, -}; - static int can_fixup_bittiming(struct net_device *dev, struct can_bittiming *bt, const struct can_bittiming_const *btc) { @@ -1523,6 +1514,19 @@ static int can_fixup_bittiming(struct net_device *dev, struct can_bittiming *bt, return 0; } +static const struct alg alg_list[] = { + /* 1st will be default */ + { + .calc_bittiming = can_calc_bittiming_v4_8, + .fixup_bittiming = can_fixup_bittiming, + .name = "v4.8", + }, { + .calc_bittiming = can_calc_bittiming_v3_18, + .fixup_bittiming = can_fixup_bittiming, + .name = "v3.18", + }, +}; + static __u32 get_cia_sample_point(__u32 bitrate) { __u32 sampl_pt; @@ -1575,7 +1579,7 @@ static void print_bittiming_one(const struct alg *alg, if (ref_bt) { bt = *ref_bt; - if (can_fixup_bittiming(&dev, &bt, bittiming_const)) { + if (alg->fixup_bittiming(&dev, &bt, bittiming_const)) { printf("%8d ***parameters exceed controller's range***\n", bitrate_nominal); return; }