Skip to contentSkip to conversation

can: mcp25xxfd: minor register definition fixes

PATCH In review Thomas Kopp 2 participants 3 messages Feb 11, 2020 CAN network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 can: mcp25xxfd: minor register definition fixes

---
Hi Marc,
I started testing your driver at https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git/log/drivers/net/can/spi/mcp25xxfd?h=v5.4/mcp25xxfd and noticed two small things in the register definitions. Overall TX seems to be working fine - one thing I noticed when testing with cangen can0 -b -g 0 and another external node periodically sending frames on the bus (with 2ms gaps) I'm eventually getting stuffing errors from which the driver never really recovers. As soon as the external node then stops sending messages, the MCP2518FD node stops sending as well and gets unresponsive (ssh isn't possible anymore etc.). When resuming the external CAN traffic the node becomes responsive again. The driver was compiled with Additional Debugging output and Logging enabled. Ifconfig doesn't s
how any RX/TX errors and shows plausible numbers for packets transmitted/received. Am I chasing ghosts here or have you encountered similar behaviour?
Best Regards,
Thomas

 drivers/net/can/spi/mcp25xxfd/mcp25xxfd.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/can/spi/mcp25xxfd/mcp25xxfd.h +2 -2
index 6bf211673d0e..13af06d7fd67 100644
@@ -94,7 +94,7 @@ static inline void __dump(const void *d, unsigned int len)
 #define MCP25XXFD_CAN_TDC 0x0c
 #define MCP25XXFD_CAN_TDC_EDGFLTEN BIT(25)
 #define MCP25XXFD_CAN_TDC_SID11EN BIT(24)
-#define MCP25XXFD_CAN_TDC_TDCMOD_MASK GENMASK(17, 6)
+#define MCP25XXFD_CAN_TDC_TDCMOD_MASK GENMASK(17, 16)
 #define MCP25XXFD_CAN_TDC_TDCMOD_AUTO 2
 #define MCP25XXFD_CAN_TDC_TDCMOD_MANUAL 1
 #define MCP25XXFD_CAN_TDC_TDCMOD_DISABLED 0
@@ -304,7 +304,7 @@ static inline void __dump(const void *d, unsigned int len)
 #define MCP25XXFD_CAN_FLTOBJ(x) (0x1f0 + 8 * (x))
 #define MCP25XXFD_CAN_FLTOBJ_EXIDE BIT(30)
 #define MCP25XXFD_CAN_FLTOBJ_SID11 BIT(29)
-#define MCP25XXFD_CAN_FLTOBJ_EID_MASK GENMASK(28. 11)
+#define MCP25XXFD_CAN_FLTOBJ_EID_MASK GENMASK(28, 11)
 #define MCP25XXFD_CAN_FLTOBJ_SID_MASK GENMASK(10, 0)
 
 #define MCP25XXFD_CAN_FLTMASK(x) (0x1f4 + 8 * (x))
Signature · 1 line
2.17.1
#1 lore raw
Quoted 1 line · Thomas Kopp

tnx, applied.

Marc

Signature · 4 lines
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 |
#2 lore raw
In reply to Thomas Kopp
Quoted 1 line · Thomas Kopp

I started testing your driver

yeay!

Quoted 2 lines

at
https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git/log/drivers/net/can/spi/mcp25xxfd?h=v5.4/mcp25xxfd

For testing use the lastest 5.4/mcp25xxfd-YYYYMMDD-X, they will not be rebased.

Quoted 1 line

and noticed two small things in the register definitions.

tnx, applied

Quoted 2 lines

Overall TX seems to be working fine - one thing I noticed when testing with cangen can0 -b -g 0 and another external node

                           ^^

I've not tested CAN-FD, yet.

Quoted 2 lines

periodically sending frames on the bus (with 2ms gaps) I'm eventually getting stuffing errors from which the driver never really recovers.

Con you describe the complete setup?
- which mcp25xxfd?
- exact "ip" command line to configure the mcp
- exact command line on the mcp
- which controller on the other side
- command line on the other side to generate frames

Quoted 3 lines

As soon as the external node then stops sending messages, the MCP2518FD node stops sending as well and gets unresponsive (ssh isn't possible anymore etc.).

Do you see anything in the kernel logs?

Quoted 5 lines

When resuming the external CAN traffic the node becomes responsive again. The driver was compiled with Additional Debugging output and Logging enabled. Ifconfig doesn't show any RX/TX errors and shows plausible numbers for packets transmitted/received. Am I chasing ghosts here or have you encountered similar behaviour?

With two mcp2518fd on the same machine connected to each other, CAN-2.0 mode, but no third station and a specific test I see errors as well. The controller finally not sending anymore, however the system keeps responsive. I've to debug this further.

Marc

Signature · 4 lines
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 |