> -----Original Message-----
> From: Marc Kleine-Budde <m...@pengutronix.de>
> Sent: 2020年9月16日 20:01
> To: Vladimir Oltean <olte...@gmail.com>
> Cc: w...@grandegger.com; Pankaj Bansal <pankaj.ban...@nxp.com>; Pankaj
> Bansal (OSS) <pankaj.ban...@oss.nxp.com>; linux-...@vger.kernel.org;
> Joakim Zhang <qiangqing.zh...@nxp.com>; linux-kernel@vger.kernel.org;
> Vladimir Oltean <vladimir.olt...@nxp.com>
> Subject: Re: canfdtest on flexcan loopback
> 
> On 9/16/20 1:45 PM, Vladimir Oltean wrote:
> > On Wed, Sep 16, 2020 at 01:32:49PM +0200, Marc Kleine-Budde wrote:
> >> Which driver are you using? The mainline driver only uses one TX buffer.
> >
> > Are there multiple flexcan drivers in circulation? Yes, the mainline
> > driver with a single priv->tx_mb.
> 
> I assume nxp has several patches on their kernels. Are you using the mainline
> kernel or the one that's provided by nxp?

Hi Marc, Vladimir,

Yes, Vladimir uses kernel provided by NXP, I also help try to look into this 
issue, but it can't be reproduced on i.MX platforms.

Our local flexcan driver is almost cherry-picked from linux-can-next/flexcan 
branch to implement CAN FD mode, which is a version that cleaned up by you 
before.
I confirm that we still use single TX mailbox to send frames, per my 
understanding, reorder should not occur here.

According to Vladimir's description, exactly it happens:
"I have added trace points to the end of the flexcan_start_xmit function, which 
print the entire skb, and the frames appear to be written to the TX message 
buffer in the correct order. They are seen, however, in the incorrect order on 
the wire."

Since Vladimir only test Classic mode, he can turn to 5.4 upstream kernel to 
see if this reorder issue also can be reproduced. @Vladimir Oltean, could you 
please have a try?
To easy the test, I think you only need replace below several files at local 
side, then use "fsl,ls1021ar2-flexcan" compatible string in dts.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/net/can/flexcan.c?h=v5.4.65
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/net/can/rx-offload.c?h=v5.4.65
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/linux/can/rx-offload.h?h=v5.4.65

If it can't work, suggest to use 5.4 upstream kernel to reproduce this issue.

Best Regards,
Joakim Zhang
> Marc
> 
> --
> Pengutronix e.K.                 | Marc Kleine-Budde           |
> Embedded Linux                   | https://www.pengutronix.de  |
> Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
> Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

Reply via email to