Marc Kleine-Budde says: ==================== pull-request: can-next 2019-08-14 this is a pull request for net-next/master consisting of 41 patches. The first two patches are for the kvaser_pciefd driver: Christer Beskow removes unnecessary code in the kvaser_pciefd_pwm_stop() function, YueHaibing removes the unused including of <linux/version.h>. In the next patch YueHaibing also removes the unused including of <linux/version.h> in the f81601 driver. In the ti_hecc driver the next 6 patches are by me and fix checkpatch warnings. YueHaibing's patch removes an unused variable in the ti_hecc_mailbox_read() function. The next 6 patches all target the xilinx_can driver. Anssi Hannula's patch fixes a chip start failure with an invalid bus. The patch by Venkatesh Yadav Abbarapu skips an error message in case of a deferred probe. The 3 patches by Appana Durga Kedareswara rao fix the RX and TX path for CAN-FD frames. Srinivas Neeli's patch fixes the bit timing calculations for CAN-FD. The next 12 patches are by me and several checkpatch warnings in the af_can, raw and bcm components. Thomas Gleixner provides a patch for the bcm, which switches the timer to HRTIMER_MODE_SOFT and removes the hrtimer_tasklet. Then 6 more patches by me for the gw component, which fix checkpatch warnings, followed by 2 patches by Oliver Hartkopp to add CAN-FD support. The vcan driver gets 3 patches by me, fixing checkpatch warnings. And finally a patch by Andre Hartmann to fix typos in CAN's netlink header. ====================
Showing the changes to include/uapi/linux (2 of 12 files). Show all
Unified · Split
| @@ -80,6 +80,10 @@ enum { · 79 unmodified lines | |||
| 80 | CGW_DELETED, /* number of deleted CAN frames (see max_hops param) */ | 80 | CGW_DELETED, /* number of deleted CAN frames (see max_hops param) */ |
| 81 | CGW_LIM_HOPS, /* limit the number of hops of this specific rule */ | 81 | CGW_LIM_HOPS, /* limit the number of hops of this specific rule */ |
| 82 | CGW_MOD_UID, /* user defined identifier for modification updates */ | 82 | CGW_MOD_UID, /* user defined identifier for modification updates */ |
| 83 | CGW_FDMOD_AND, /* CAN FD frame modification binary AND */ | ||
| 84 | CGW_FDMOD_OR, /* CAN FD frame modification binary OR */ | ||
| 85 | CGW_FDMOD_XOR, /* CAN FD frame modification binary XOR */ | ||
| 86 | CGW_FDMOD_SET, /* CAN FD frame modification set alternate values */ | ||
| 83 | __CGW_MAX | 87 | __CGW_MAX |
| 84 | }; | 88 | }; |
| 85 | 89 | ||
| @@ -88,15 +92,18 @@ enum { · 2 unmodified lines | |||
| 88 | #define CGW_FLAGS_CAN_ECHO 0x01 | 92 | #define CGW_FLAGS_CAN_ECHO 0x01 |
| 89 | #define CGW_FLAGS_CAN_SRC_TSTAMP 0x02 | 93 | #define CGW_FLAGS_CAN_SRC_TSTAMP 0x02 |
| 90 | #define CGW_FLAGS_CAN_IIF_TX_OK 0x04 | 94 | #define CGW_FLAGS_CAN_IIF_TX_OK 0x04 |
| 95 | #define CGW_FLAGS_CAN_FD 0x08 | ||
| 91 | 96 | ||
| 92 | #define CGW_MOD_FUNCS 4 /* AND OR XOR SET */ | 97 | #define CGW_MOD_FUNCS 4 /* AND OR XOR SET */ |
| 93 | 98 | ||
| 94 | /* CAN frame elements that are affected by curr. 3 CAN frame modifications */ | 99 | /* CAN frame elements that are affected by curr. 3 CAN frame modifications */ |
| 95 | #define CGW_MOD_ID 0x01 | 100 | #define CGW_MOD_ID 0x01 |
| 96 | #define CGW_MOD_DLC 0x02 | 101 | #define CGW_MOD_DLC 0x02 /* contains the data length in bytes */ |
| 102 | #define CGW_MOD_LEN CGW_MOD_DLC /* CAN FD length representation */ | ||
| 97 | #define CGW_MOD_DATA 0x04 | 103 | #define CGW_MOD_DATA 0x04 |
| 104 | #define CGW_MOD_FLAGS 0x08 /* CAN FD flags */ | ||
| 98 | 105 | ||
| 99 | #define CGW_FRAME_MODS 3 /* ID DLC DATA */ | 106 | #define CGW_FRAME_MODS 4 /* ID DLC/LEN DATA FLAGS */ |
| 100 | 107 | ||
| 101 | #define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS) | 108 | #define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS) |
| 102 | 109 | ||
| @@ -105,7 +112,13 @@ struct cgw_frame_mod { · 2 unmodified lines | |||
| 105 | __u8 modtype; | 112 | __u8 modtype; |
| 106 | } __attribute__((packed)); | 113 | } __attribute__((packed)); |
| 107 | 114 | ||
| 115 | struct cgw_fdframe_mod { | ||
| 116 | struct canfd_frame cf; | ||
| 117 | __u8 modtype; | ||
| 118 | } __attribute__((packed)); | ||
| 119 | |||
| 108 | #define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod) | 120 | #define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod) |
| 121 | #define CGW_FDMODATTR_LEN sizeof(struct cgw_fdframe_mod) | ||
| 109 | 122 | ||
| 110 | struct cgw_csum_xor { | 123 | struct cgw_csum_xor { |
| 111 | __s8 from_idx; | 124 | __s8 from_idx; |
| @@ -40,15 +40,15 @@ struct can_bittiming { · 39 unmodified lines | |||
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | /* | 42 | /* |
| 43 | * CAN harware-dependent bit-timing constant | 43 | * CAN hardware-dependent bit-timing constant |
| 44 | * | 44 | * |
| 45 | * Used for calculating and checking bit-timing parameters | 45 | * Used for calculating and checking bit-timing parameters |
| 46 | */ | 46 | */ |
| 47 | struct can_bittiming_const { | 47 | struct can_bittiming_const { |
| 48 | char name[16]; /* Name of the CAN controller hardware */ | 48 | char name[16]; /* Name of the CAN controller hardware */ |
| 49 | __u32 tseg1_min; /* Time segement 1 = prop_seg + phase_seg1 */ | 49 | __u32 tseg1_min; /* Time segment 1 = prop_seg + phase_seg1 */ |
| 50 | __u32 tseg1_max; | 50 | __u32 tseg1_max; |
| 51 | __u32 tseg2_min; /* Time segement 2 = phase_seg2 */ | 51 | __u32 tseg2_min; /* Time segment 2 = phase_seg2 */ |
| 52 | __u32 tseg2_max; | 52 | __u32 tseg2_max; |
| 53 | __u32 sjw_max; /* Synchronisation jump width */ | 53 | __u32 sjw_max; /* Synchronisation jump width */ |
| 54 | __u32 brp_min; /* Bit-rate prescaler */ | 54 | __u32 brp_min; /* Bit-rate prescaler */ |