Lines Matching refs:cf

515 static bool ctucan_insert_frame(struct ctucan_priv *priv, const struct canfd_frame *cf, u8 buf,  in ctucan_insert_frame()  argument
529 if (cf->len > CANFD_MAX_DLEN) in ctucan_insert_frame()
533 if (cf->can_id & CAN_RTR_FLAG) in ctucan_insert_frame()
536 if (cf->can_id & CAN_EFF_FLAG) in ctucan_insert_frame()
541 if (cf->flags & CANFD_BRS) in ctucan_insert_frame()
545 ffw |= FIELD_PREP(REG_FRAME_FORMAT_W_DLC, can_fd_len2dlc(cf->len)); in ctucan_insert_frame()
548 if (cf->can_id & CAN_EFF_FLAG) in ctucan_insert_frame()
549 idw = cf->can_id & CAN_EFF_MASK; in ctucan_insert_frame()
551 idw = FIELD_PREP(REG_IDENTIFIER_W_IDENTIFIER_BASE, cf->can_id & CAN_SFF_MASK); in ctucan_insert_frame()
559 if (!(cf->can_id & CAN_RTR_FLAG)) { in ctucan_insert_frame()
560 for (i = 0; i < cf->len; i += 4) { in ctucan_insert_frame()
561 u32 data = le32_to_cpu(*(__le32 *)(cf->data + i)); in ctucan_insert_frame()
598 struct canfd_frame *cf = (struct canfd_frame *)skb->data; in ctucan_start_xmit() local
614 ok = ctucan_insert_frame(priv, cf, txtb_id, can_is_canfd_skb(skb)); in ctucan_start_xmit()
646 static void ctucan_read_rx_frame(struct ctucan_priv *priv, struct canfd_frame *cf, u32 ffw) in ctucan_read_rx_frame() argument
655 cf->can_id = (idw & CAN_EFF_MASK) | CAN_EFF_FLAG; in ctucan_read_rx_frame()
657 cf->can_id = (idw >> 18) & CAN_SFF_MASK; in ctucan_read_rx_frame()
662 cf->flags |= CANFD_BRS; in ctucan_read_rx_frame()
664 cf->flags |= CANFD_ESI; in ctucan_read_rx_frame()
666 cf->can_id |= CAN_RTR_FLAG; in ctucan_read_rx_frame()
680 cf->len = len; in ctucan_read_rx_frame()
691 *(__le32 *)(cf->data + i) = cpu_to_le32(data); in ctucan_read_rx_frame()
713 struct canfd_frame *cf; in ctucan_rx() local
728 skb = alloc_canfd_skb(ndev, &cf); in ctucan_rx()
730 skb = alloc_can_skb(ndev, (struct can_frame **)&cf); in ctucan_rx()
738 ctucan_read_rx_frame(priv, cf, ffw); in ctucan_rx()
740 stats->rx_bytes += cf->len; in ctucan_rx()
804 struct can_frame *cf; in ctucan_err_interrupt() local
823 skb = alloc_can_err_skb(ndev, &cf); in ctucan_err_interrupt()
845 cf->can_id |= CAN_ERR_BUSOFF; in ctucan_err_interrupt()
850 cf->can_id |= CAN_ERR_CRTL | CAN_ERR_CNT; in ctucan_err_interrupt()
851 cf->data[1] = (bec.rxerr > 127) ? in ctucan_err_interrupt()
854 cf->data[6] = bec.txerr; in ctucan_err_interrupt()
855 cf->data[7] = bec.rxerr; in ctucan_err_interrupt()
861 cf->can_id |= CAN_ERR_CRTL | CAN_ERR_CNT; in ctucan_err_interrupt()
862 cf->data[1] |= (bec.txerr > bec.rxerr) ? in ctucan_err_interrupt()
865 cf->data[6] = bec.txerr; in ctucan_err_interrupt()
866 cf->data[7] = bec.rxerr; in ctucan_err_interrupt()
870 cf->can_id |= CAN_ERR_CNT; in ctucan_err_interrupt()
871 cf->data[1] = CAN_ERR_CRTL_ACTIVE; in ctucan_err_interrupt()
872 cf->data[6] = bec.txerr; in ctucan_err_interrupt()
873 cf->data[7] = bec.rxerr; in ctucan_err_interrupt()
888 cf->can_id |= CAN_ERR_LOSTARB; in ctucan_err_interrupt()
889 cf->data[0] = CAN_ERR_LOSTARB_UNSPEC; in ctucan_err_interrupt()
899 cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR; in ctucan_err_interrupt()
900 cf->data[2] = CAN_ERR_PROT_UNSPEC; in ctucan_err_interrupt()
901 cf->data[3] = CAN_ERR_PROT_LOC_UNSPEC; in ctucan_err_interrupt()
907 stats->rx_bytes += cf->can_dlc; in ctucan_err_interrupt()
941 struct can_frame *cf; in ctucan_rx_poll() local
947 skb = alloc_can_err_skb(ndev, &cf); in ctucan_rx_poll()
949 cf->can_id |= CAN_ERR_CRTL; in ctucan_rx_poll()
950 cf->data[1] |= CAN_ERR_CRTL_RX_OVERFLOW; in ctucan_rx_poll()
952 stats->rx_bytes += cf->can_dlc; in ctucan_rx_poll()