can-calc-bit-timing: add can_fixup_bittiming to alg
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>pull/372/head
parent
cfc3030080
commit
a7062893da
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue