This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 342400eba43 drivers/can: repair CTUCANFD socket driver flag error;
342400eba43 is described below

commit 342400eba432de110a0db8db5c9fe15c421bf924
Author: wangjinjing1 <[email protected]>
AuthorDate: Sun Sep 28 20:15:49 2025 +0800

    drivers/can: repair CTUCANFD socket driver flag error;
    
    Cherry-picked from open-vela/nuttx commit
    83a1fdad06ea938efa84fbbcb4d21243bd2dd2ed
    
(https://github.com/open-vela/nuttx/commit/83a1fdad06ea938efa84fbbcb4d21243bd2dd2ed).
    Adapted to upstream: keep fdf = 1 and the RX extended ID drop path;
    struct can_frame has no flags member.
    
    Signed-off-by: wangjinjing1 <[email protected]>
    Assisted-by: Claude:claude-opus-5-5
    Signed-off-by: raiden00pl <[email protected]>
---
 drivers/can/ctucanfd_pci.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/can/ctucanfd_pci.c b/drivers/can/ctucanfd_pci.c
index f13c592017e..80d515b8a62 100644
--- a/drivers/can/ctucanfd_pci.c
+++ b/drivers/can/ctucanfd_pci.c
@@ -1121,7 +1121,7 @@ static int ctucanfd_sock_transmit(FAR struct 
netdev_lowerhalf_s *dev,
 
       /* Set RTR bit */
 
-      fmt.s.rtr = (frame->can_id & CAN_RTR_FLAG);
+      fmt.s.rtr = (frame->can_id & CAN_RTR_FLAG) ? 1 : 0;
 
 #ifdef CONFIG_NET_CAN_EXTID
       if (frame->can_id & CAN_EFF_FLAG)
@@ -1165,9 +1165,9 @@ static int ctucanfd_sock_transmit(FAR struct 
netdev_lowerhalf_s *dev,
 
       /* Set flags */
 
-      fmt.s.rtr     = (frame->can_id & CAN_RTR_FLAG);
-      fmt.s.brs     = (frame->flags & CANFD_BRS);
-      fmt.s.esi_rsv = (frame->flags & CANFD_ESI);
+      fmt.s.rtr     = (frame->can_id & CAN_RTR_FLAG) ? 1 : 0;
+      fmt.s.brs     = (frame->flags & CANFD_BRS) ? 1 : 0;
+      fmt.s.esi_rsv = (frame->flags & CANFD_ESI) ? 1 : 0;
 
 #ifdef CONFIG_NET_CAN_EXTID
       if (frame->can_id & CAN_EFF_FLAG)
@@ -1460,7 +1460,7 @@ static FAR netpkt_t *ctucanfd_sock_error(FAR struct 
netdev_lowerhalf_s *dev)
 
   /* Copy frame */
 
-  frame->can_id  = errbits;
+  frame->can_id  = errbits | CAN_ERR_FLAG;
   frame->can_dlc = CAN_ERR_DLC;
 
   return pkt;

Reply via email to