mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
can: dev: print bitrate error with two decimal digits
Increase the resolution when printing the bitrate error and round-up the value to 0.01% in the case the resolution would still provide values which would lead to 0.00%. Suggested-by: Vincent Mailhol <mailhol@kernel.org> Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net> Link: https://patch.msgid.link/20251126-canxl-v8-17-e7e3eb74f889@pengutronix.de Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
committed by
Marc Kleine-Budde
parent
1a620a7238
commit
b360a13d44
@@ -153,19 +153,22 @@ int can_calc_bittiming(const struct net_device *dev, struct can_bittiming *bt,
|
||||
}
|
||||
|
||||
if (best_bitrate_error) {
|
||||
/* Error in one-tenth of a percent */
|
||||
v64 = (u64)best_bitrate_error * 1000;
|
||||
/* Error in one-hundredth of a percent */
|
||||
v64 = (u64)best_bitrate_error * 10000;
|
||||
do_div(v64, bt->bitrate);
|
||||
bitrate_error = (u32)v64;
|
||||
/* print at least 0.01% if the error is smaller */
|
||||
bitrate_error = max(bitrate_error, 1U);
|
||||
if (bitrate_error > CAN_CALC_MAX_ERROR) {
|
||||
NL_SET_ERR_MSG_FMT(extack,
|
||||
"bitrate error: %u.%u%% too high",
|
||||
bitrate_error / 10, bitrate_error % 10);
|
||||
"bitrate error: %u.%02u%% too high",
|
||||
bitrate_error / 100,
|
||||
bitrate_error % 100);
|
||||
return -EINVAL;
|
||||
}
|
||||
NL_SET_ERR_MSG_FMT(extack,
|
||||
"bitrate error: %u.%u%%",
|
||||
bitrate_error / 10, bitrate_error % 10);
|
||||
"bitrate error: %u.%02u%%",
|
||||
bitrate_error / 100, bitrate_error % 100);
|
||||
}
|
||||
|
||||
/* real sample point */
|
||||
|
||||
Reference in New Issue
Block a user