From: socketcan@hartkopp.net (Oliver Hartkopp)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V1 4/4] can: m_can: allow to send std frame on CAN FD mode
Date: Wed, 05 Nov 2014 12:08:21 +0100 [thread overview]
Message-ID: <545A0525.107@hartkopp.net> (raw)
In-Reply-To: <5459FEDE.9050405@pengutronix.de>
On 05.11.2014 11:41, Marc Kleine-Budde wrote:
> On 11/05/2014 08:58 AM, Dong Aisheng wrote:
>> The current code sends all CAN frames on CAN FD format(with BRS or not)
>> if CAN_CTRLMODE_FD is enabled.
>> However, even CAN_CTRLMODE_FD is enabled, the can tool may still
>> send normal frames.
>> e.g.
>> ip link set can0 up type can bitrate 1000000 dbitrate 1000000 fd on
>> cansend can0 123#112233
>>
>> Therefore sending normal CAN frame on FD format seems not reasonable
>> and the CAN FD incapable device may not be able to receive it correctly.
>>
>> The patch switches the M_CAN operation mode to ISO11898-1 instead of
>> staying on CAN FD operation mode by writing "11" to CMR bit if find
>> we're sending a normal can skb.
>
> With this patch applied and Olivre's version of 3/4, how does the
> application send CAN-FD frames?
This patch becomes obsolete when we do it like in my answer of [3/4].
> 1. witch on CAN-FD via "ip fd on"
With
ip link set can0 type can fd on
the netdevice switches to the MTU of CAN FD (72) instead of 16.
This means that this netdevice can handle CAN frames (MTU 16) and CAN FD
frames (MTU 72).
When you send a standard CAN frame, e.g.
cansend can0 123#112233
you would get a CAN 2.0 frame (dlc = 3) on the bus.
When you send a CAN FD frame, e.g.
cansend can0 123##0112233
you would get a CAN FD frame (dlc = 3) on the bus.
With
cansend can0 123##1112233
you would get a CAN FD frame (dlc = 3) with BRS on the bus.
Whether it is CAN or CAN FD is given by checking skb->len for CAN_MTU of
CANFD_MTU in the driver.
Regards,
Oliver
> 2. write a struct canfd_frame
>
> Correct?
>
> What happens if:
> 3. write a struct can_frame
>
> A CAN frame is send?
>
> Oliver are you okay with this behaviour?
>
> Marc
>
next prev parent reply other threads:[~2014-11-05 11:08 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-05 7:58 [PATCH V2 1/4] can: m_can: update to support CAN FD features Dong Aisheng
2014-11-05 7:58 ` [PATCH V2 2/4] can: m_can: workaround for transmit data less than 4 bytes Dong Aisheng
2014-11-05 10:17 ` Marc Kleine-Budde
2014-11-05 10:33 ` Dong Aisheng
2014-11-05 11:32 ` Marc Kleine-Budde
2014-11-05 11:32 ` Dong Aisheng
2014-11-05 7:58 ` [PATCH V1 3/4] can: add can_is_canfd_skb() API Dong Aisheng
2014-11-05 9:39 ` Oliver Hartkopp
2014-11-05 7:58 ` [PATCH V1 4/4] can: m_can: allow to send std frame on CAN FD mode Dong Aisheng
2014-11-05 10:41 ` Marc Kleine-Budde
2014-11-05 11:08 ` Oliver Hartkopp [this message]
2014-11-05 10:12 ` [PATCH V2 1/4] can: m_can: update to support CAN FD features Oliver Hartkopp
2014-11-05 11:26 ` Dong Aisheng
2014-11-05 13:10 ` Oliver Hartkopp
2014-11-05 12:47 ` Dong Aisheng
2014-11-05 13:15 ` Oliver Hartkopp
2014-11-05 12:47 ` Dong Aisheng
2014-11-05 13:19 ` Marc Kleine-Budde
2014-11-05 13:46 ` Dong Aisheng
2014-11-05 14:35 ` Oliver Hartkopp
2014-11-05 11:35 ` Varka Bhadram
2014-11-05 11:36 ` Dong Aisheng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=545A0525.107@hartkopp.net \
--to=socketcan@hartkopp.net \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).