OSDN Git Service

can: bittiming: add CAN_KBPS, CAN_MBPS and CAN_MHZ macros
authorVincent Mailhol <mailhol.vincent@wanadoo.fr>
Sat, 6 Mar 2021 05:40:40 +0000 (14:40 +0900)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 30 Mar 2021 09:14:45 +0000 (11:14 +0200)
Add three macro to simplify the readability of big bit timing numbers:
  - CAN_KBPS: kilobits per second (one thousand)
  - CAN_MBPS: megabits per second (one million)
  - CAN_MHZ: megahertz per second (one million)

Example:
u32 bitrate_max = 8 * CAN_MBPS;
struct can_clock clock = {.freq = 80 * CAN_MHZ};
instead of:
u32 bitrate_max = 8000000;
struct can_clock clock = {.freq = 80000000};

Apply the new macro to driver/net/can/dev/bittiming.c.

Link: https://lore.kernel.org/r/20210306054040.76483-1-mailhol.vincent@wanadoo.fr
Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/dev/bittiming.c
include/linux/can/bittiming.h

index 2907e60..f49170e 100644 (file)
@@ -81,9 +81,9 @@ int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt,
        if (bt->sample_point) {
                sample_point_nominal = bt->sample_point;
        } else {
-               if (bt->bitrate > 800000)
+               if (bt->bitrate > 800 * CAN_KBPS)
                        sample_point_nominal = 750;
-               else if (bt->bitrate > 500000)
+               else if (bt->bitrate > 500 * CAN_KBPS)
                        sample_point_nominal = 800;
                else
                        sample_point_nominal = 875;
index 3c4cad7..ae7a341 100644 (file)
 
 #define CAN_SYNC_SEG 1
 
+
+/* Kilobits and Megabits per second */
+#define CAN_KBPS 1000UL
+#define CAN_MBPS 1000000UL
+
+/* Megahertz */
+#define CAN_MHZ 1000000UL
+
 /*
  * struct can_tdc - CAN FD Transmission Delay Compensation parameters
  *