Commit Graph

470 Commits (d66295ee75c42a42119bb741676b5c77dbb4af6f)

Author SHA1 Message Date
Stephane Grosjean 4d0e6d5169 canfdtest: fix typo while waiting for tv_stop time
After a few complaint about 100% CPU usage of canfdtest over our PCI
-like boards, I have had a look to the source file, and think I have
found the issue in can_echo_dut().

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-11-21 11:37:01 +01:00
Oliver Hartkopp 73ae306a11 bcm: add support for CAN FD frames
Update bcm.h following Linux mainline commit 6f3b911d5f29b98752

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
2016-10-10 14:19:42 +02:00
Kurt Van Dijck 1ba4789904 Merge pull request #1 from linux-can/cross-compile-fixes
Cross compile fixes
2016-10-06 09:09:23 +02:00
Kurt Van Dijck 1637db7caa hide kickstart html guide 2016-10-06 09:00:37 +02:00
IOhannes m zmölnig ea6219b0b4 slcand: log to stdout when running in foreground
when slcand runs in daemon mode, it makes sense to output via syslog.
but when running in foreground, it is nicer to have all the info on the stdout.
2016-10-05 07:42:55 +02:00
Marc Kleine-Budde 3881e6f673 Makefile: add install stage
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-10-04 14:27:13 +02:00
Marc Kleine-Budde 0a1372cc22 userspace headers: import userspace headers to simplify compilation
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-10-04 14:26:48 +02:00
Marc Kleine-Budde 07daafc825 testj1939: fix warning on 32 bit systems
testj1939.c: In function 'main':
testj1939.c:201:3: warning: format '%li' expects argument of type 'long int', but argument 4 has type 'unsigned int' [-Wformat=]
   fprintf(stderr, "- bind(, %s, %li);\n", canaddr2str(&sockname), sizeof(sockname));
   ^
testj1939.c:210:4: warning: format '%li' expects argument of type 'long int', but argument 4 has type 'unsigned int' [-Wformat=]
    fprintf(stderr, "- connect(, %s, %li);\n", canaddr2str(&peername), sizeof(peername));
    ^
testj1939.c:228:5: warning: format '%li' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=]
     fprintf(stderr, "- sendto(, <dat>, %i, 0, %s, %li);\n", todo_send, canaddr2str(&peername), sizeof(peername));
     ^
testj1939.c:254:4: warning: format '%li' expects argument of type 'long int', but argument 3 has type 'unsigned int' [-Wformat=]
    fprintf(stderr, "- recvfrom(, <dat>, %li, 0, &<peername>, %li);\n", sizeof(peername), sizeof(peername));
    ^
testj1939.c:254:4: warning: format '%li' expects argument of type 'long int', but argument 4 has type 'unsigned int' [-Wformat=]

Use 'z' as correct modifier to print sizeof().

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-10-04 14:24:49 +02:00
Oliver Hartkopp cddb2612b1 candump: print correct interface names on stderr
The cmdlinename[i] output contains the filter definitions e.g.
'can0,300:700' but you want to see only 'can0' when printing on stderr.

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
2016-08-31 19:14:07 +02:00
Marc Kleine-Budde 8f74b1cc21 Merge pull request #28 from ajneu/no_exit_on_down
don't exit when device goes down
2016-08-31 10:19:56 +02:00
ajneu 7a9e10173a don't exit when device goes down 2016-08-30 20:04:39 +02:00
Ramesh Shanmugasundaram 42ee04ff64 cangen: reset frame flags at the start of iteration (#16)
This patch fixes a bug in cangen.c

Bug: When used with -m option, if a CAN FD frame with BRS option set is
sent, that flag never gets cleared for the subsequent frames.

Fix: Reset frame.flags at the start of iteration.

Signed-off-by: Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
2016-06-30 21:33:16 +02:00
Marc Kleine-Budde 8c5cd245f6 Merge pull request #24 from ajneu/master1
header-guard for lib.h
2016-06-13 11:00:34 +02:00
ajneu 3a33ee995c header-guard for lib.h 2016-06-13 10:52:41 +02:00
Marc Kleine-Budde 862e8ed178 Merge pull request #23 from ajneu/master1
pointer to const in lib
2016-06-13 10:35:26 +02:00
ajneu ef2ea8fa59 pointer to const in lib 2016-06-13 10:26:53 +02:00
Marc Kleine-Budde b70a76670d can-calc-bit-timing: fix getopt typo: p -> q
Reported-by: Jon Neal <reportingsjr@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-05-24 08:34:44 +02:00
Oliver Hartkopp d82ccd76ac slcand: added listen-only option
listen-only option (-l) has been added to slcan-attach in oct 2015.
It is now replicated in slcand

Signed-off-by: interlocuteur <gallard@mmic.net>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
2016-05-21 10:31:23 +02:00
Marc Kleine-Budde 2920d41731 can-calc-bit-timing: add name parameter to ref clock
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-15 12:05:56 +02:00
Marc Kleine-Budde 588a19c95d can-calc-bit-timing: make it possible to have several ref clocks per bit timing definition
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-15 12:04:43 +02:00
Marc Kleine-Budde 6265825182 can-calc-bit-timint: rename bitrate -> bitrate_nominal
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-15 12:03:28 +02:00
Marc Kleine-Budde 798afd077a can-calc-bit-timint: rename spt_target, sample_point -> spt_nominal
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-15 12:02:18 +02:00
Marc Kleine-Budde 44a2900bd8 can-calc-bit-timing: better sample point calculation
This patch tries to optimize the calculation of the sample point. To
understand what it does have a look at the original implementation.

If there is a combination of timing parameters where both the bitrate
and sample point error are 0 the current implementation will find it.

However if the reference clock doesn't allow an optimal bitrate (this
means the bitrate error is always != 0) there might be several timing
parameter combinations having the same bitrate error. The original
implementation will allways choose the one with the highest brp. The
actual sample point error isn't taken into account.

This patch changes the algorithm to minimize the sample point error,
too. Now a brp/tseg combination is accepted as better if one of these
condition are fulfilled:
1) the bit rate error must be smaller, or
2) the bit rate error must be equal and
   the sample point error must be equal or smaller

If a smaller bit rate error is found the sample point error is reset.
This ensures that we first optimize for small bit rate error and then
for small sample point errors.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde e36391c7d9 can-calc-bit-timing: introduce CAN_CALC_SYNC_SEG
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde 94e40d3c2d can-calc-bit-timing: fix checkpatch warnings
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde 197700d26e can-calc-bit-timing: import current can_calc_bittiming() from kernel
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde 95f62518d1 can-calc-bit-timing: import helper macros from kernel
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde 9ae9e7da02 can-calc-bit-timing: use "struct can_bittiming_const" from uapi headers
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:00 +02:00
Marc Kleine-Budde bc41784773 can-calc-bit-timing: make use of bool
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:12:16 +02:00
Marc Kleine-Budde a31b27f420 can-calc-bit-timing: fix checkpatch warnings
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:12:16 +02:00
Marc Kleine-Budde 8c703db361 can-calc-bit-timing: add support flexcan with 30MHz refclock
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:11:53 +02:00
Ramesh Shanmugasundaram c689803204 can-calc-bit-timing: add support for rcar_can
Signed-off-by: Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-02-29 11:27:05 +01:00
Kurt Van Dijck 0e3611464b use -w option for transport protocol examples 2016-02-23 11:01:38 +01:00
Kurt Van Dijck 1ffa9a16a4 testj1939: add -w option to keep program open 2016-02-23 09:51:16 +01:00
Kurt Van Dijck 215ca91d26 Makefile: remove .html's with make clean 2016-02-23 09:38:13 +01:00
Kurt Van Dijck 6d717b8a40 update for obsolete enable/disable using netlink 2016-02-23 09:37:46 +01:00
Kurt Van Dijck 047356608b update for dropped rtnetlink 2015-12-11 04:45:54 +01:00
Kurt Van Dijck 61b18e7ff1 fix link 2015-12-11 04:23:58 +01:00
Kurt Van Dijck bbb2f9af04 fix link 2015-12-11 04:23:18 +01:00
Kurt Van Dijck 7644a013cd split in Readme+Kickstart guide 2015-12-11 04:22:19 +01:00
Kurt Van Dijck 4f1026e9ff prepare for github 2015-12-11 04:16:41 +01:00
Kurt Van Dijck a79c16b1d2 Merge branch 'rtnetlink'
* rtnetlink:
  Revert "j1939.page: add relevant API calls"
  testj1939: print API calls
  j1939.page: add relevant API calls
  j1939.page: restructure
  testj1939: use send() when connect()ed
  testj1939: remember if peername was provided
  add .gitignore
  import sample program & help page
  initial
2015-12-11 04:12:18 +01:00
Kurt Van Dijck a14f4448ee Initial commit 2015-12-11 04:09:40 +01:00
Kurt Van Dijck 8e199945be Revert "j1939.page: add relevant API calls"
This reverts commit 234729507e.
2015-12-11 03:31:32 +01:00
Oliver Hartkopp cda61171f1 can: avoid using timeval for uapi
Upstream commit ba61a8d9d780980e8284355a0be750897e7af212

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=ba61a8d9d780980e8284355a0be750897e7af212

The can subsystem communicates with user space using a bcm_msg_head
header, which contains two timestamps. This is problematic for
multiple reasons:

a) The structure layout is currently incompatible between 64-bit
   user space and 32-bit user space, and cannot work in compat
   mode (other than x32).

b) The timeval structure layout will change in 32-bit user
   space when we fix the y2038 overflow problem by redefining
   time_t to 64-bit, making new 32-bit user space incompatible
   with the current kernel interface.
   Cars last a long time and often use old kernels, so the actual
   users of this code are the most likely ones to migrate to y2038
   safe user space.

This tries to work around part of the problem by changing the
publicly visible user interface in the header, but not the binary
interface. Fortunately, the values passed around in the structure
are relative times and do not actually suffer from the y2038
overflow, so 32-bit is enough here.

We replace the use of 'struct timeval' with a newly defined
'struct bcm_timeval' that uses the exact same binary layout
as before and that still suffers from problem a) but not problem
b).

The downside of this approach is that any user space program
that currently assigns a timeval structure to these members
rather than writing the tv_sec/tv_usec portions individually
will suffer a compile-time error when built with an updated
kernel header. Fixing this error makes it work fine with old
and new headers though.

We could address problem a) by using '__u32' or 'int' members
rather than 'long', but that would have a more significant
downside in also breaking support for all existing 64-bit user
binaries that might be using this interface, which is likely
not acceptable.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Cc: linux-can@vger.kernel.org
Cc: linux-api@vger.kernel.org
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
2015-11-05 21:36:42 +01:00
Maximilian Pachl c548eee04a slcan: added listen-only flag
Signed-off-by: Maximilian Pachl <m@ximilian.info>
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2015-10-15 10:18:15 +02:00
Sven Schmitt 4a154cf3c4 cangen: added -b switch enabling bitrate switch in canfd frames.
Signed-off-by: Sven Schmitt <sven.schmitt@gmx.net>
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2015-10-14 21:22:35 +02:00
Sven Schmitt 3f04e8a1fe cangen: fixed coding style
Signed-off-by: Sven Schmitt <sven.schmitt@gmx.net>
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2015-10-14 21:21:20 +02:00
Andrew Berezovskyi 0e3ff3b315 Create README.md
Signed-off-by: Andrew Berezovskyi <andrew@berezovskiy.me>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2015-09-04 11:16:17 +02:00
Yegor Yefremov 636ce43cd9 autotools: fix syntax error
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
2015-09-03 17:24:21 +02:00