cpc_canfd_msg struct is added, needed flags are given and the size of ems_cpc_msg is adjusted Signed-off-by: Gerhard Uttenthaler <uttenthaler@xxxxxxxxxxxxxxxx> --- drivers/net/can/usb/ems_usb.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/net/can/usb/ems_usb.c b/drivers/net/can/usb/ems_usb.c index a9819287e6a7..e75fdd457919 100644 --- a/drivers/net/can/usb/ems_usb.c +++ b/drivers/net/can/usb/ems_usb.c @@ -116,6 +116,27 @@ struct cpc_can_msg { u8 msg[8]; }; +/* CAN FD message representation in a CPC_MSG. + * Message object type is CPC_MSG_T_CANFD. + */ +struct __packed cpc_canfd_msg { + __le32 id; + u8 length; + u8 flags; + u8 msg[64]; +}; + +/* This defines are used with the flags variable + * within the struct cpc_canfd_msg. A cpc_canfd_msg + * can also be used to send a classic CAN frame including + * RTR frames when CPC_FDFLAG_NONCANFD_MSG is set. + */ +#define CPC_FDFLAG_ESI BIT(3) +#define CPC_FDFLAG_RTR BIT(4) +#define CPC_FDFLAG_NONCANFD_MSG BIT(5) +#define CPC_FDFLAG_BRS BIT(6) +#define CPC_FDFLAG_XTD BIT(7) + /* Representation of the CAN parameters for the SJA1000 controller */ struct cpc_sja1000_params { u8 mode; @@ -190,8 +211,9 @@ struct __packed ems_cpc_msg { __le32 ts_nsec; /* timestamp in nano seconds */ union { - u8 generic[64]; + u8 generic[70]; struct cpc_can_msg can_msg; + struct cpc_canfd_msg canfd_msg; struct cpc_can_params can_params; struct cpc_confirm confirmation; struct cpc_overrun overrun; -- 2.26.2 -- EMS Dr. Thomas Wuensche e.K. Sonnenhang 3 85304 Ilmmuenster HR Ingolstadt, HRA 170106 Phone: +49-8441-490260 Fax : +49-8441-81860 http://www.ems-wuensche.com