From: Oliver Hartkopp Date: Thu, 22 Jan 2015 18:04:33 +0000 (+0100) Subject: can: Add support for CAN FD non-ISO feature X-Git-Tag: v3.19.0~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82a307e835a0b7431c0367737757522dedc606fe;p=thirdparty%2Fiproute2.git can: Add support for CAN FD non-ISO feature This patch makes CAN_CTRLMODE_FD_NON_ISO netlink feature configurable. During the CAN FD standardization process within the ISO it turned out that the failure detection capability has to be improved. The CAN in Automation organization (CiA) defined the already implemented CAN FD controllers as 'non-ISO' and the upcoming improved CAN FD controllers as 'ISO' compliant. See at http://www.can-cia.com/index.php?id=1937 Starting with the - currently non-ISO - driver for M_CAN v3.0.1 introduced in Linux 3.18 this bit needs to be propagated to userspace. In future drivers this bit will become configurable depending on the CAN FD controllers capabilities. Signed-off-by: Oliver Hartkopp --- diff --git a/ip/iplink_can.c b/ip/iplink_can.c index fb5033218..f1b089dfa 100644 --- a/ip/iplink_can.c +++ b/ip/iplink_can.c @@ -37,6 +37,7 @@ static void print_usage(FILE *f) "\t[ one-shot { on | off } ]\n" "\t[ berr-reporting { on | off } ]\n" "\t[ fd { on | off } ]\n" + "\t[ fd-non-iso { on | off } ]\n" "\t[ presume-ack { on | off } ]\n" "\n" "\t[ restart-ms TIME-MS ]\n" @@ -100,6 +101,7 @@ static void print_ctrlmode(FILE *f, __u32 cm) _PF(CAN_CTRLMODE_ONE_SHOT, "ONE-SHOT"); _PF(CAN_CTRLMODE_BERR_REPORTING, "BERR-REPORTING"); _PF(CAN_CTRLMODE_FD, "FD"); + _PF(CAN_CTRLMODE_FD_NON_ISO, "FD-NON-ISO"); _PF(CAN_CTRLMODE_PRESUME_ACK, "PRESUME-ACK"); #undef _PF if (cm) @@ -203,6 +205,10 @@ static int can_parse_opt(struct link_util *lu, int argc, char **argv, NEXT_ARG(); set_ctrlmode("fd", *argv, &cm, CAN_CTRLMODE_FD); + } else if (matches(*argv, "fd-non-iso") == 0) { + NEXT_ARG(); + set_ctrlmode("fd-non-iso", *argv, &cm, + CAN_CTRLMODE_FD_NON_ISO); } else if (matches(*argv, "presume-ack") == 0) { NEXT_ARG(); set_ctrlmode("presume-ack", *argv, &cm,