Lines Matching refs:cf
505 * @cf: Pointer to CAN frame to be inserted
516 static bool ctucan_insert_frame(struct ctucan_priv *priv, const struct canfd_frame *cf, u8 buf,
530 if (cf->len > CANFD_MAX_DLEN)
534 if (cf->can_id & CAN_RTR_FLAG)
537 if (cf->can_id & CAN_EFF_FLAG)
542 if (cf->flags & CANFD_BRS)
546 ffw |= FIELD_PREP(REG_FRAME_FORMAT_W_DLC, can_fd_len2dlc(cf->len));
549 if (cf->can_id & CAN_EFF_FLAG)
550 idw = cf->can_id & CAN_EFF_MASK;
552 idw = FIELD_PREP(REG_IDENTIFIER_W_IDENTIFIER_BASE, cf->can_id & CAN_SFF_MASK);
560 if (!(cf->can_id & CAN_RTR_FLAG)) {
561 for (i = 0; i < cf->len; i += 4) {
562 u32 data = le32_to_cpu(*(__le32 *)(cf->data + i));
599 struct canfd_frame *cf = (struct canfd_frame *)skb->data;
615 ok = ctucan_insert_frame(priv, cf, txtb_id, can_is_canfd_skb(skb));
642 * @cf: Pointer to CAN frame struct
647 static void ctucan_read_rx_frame(struct ctucan_priv *priv, struct canfd_frame *cf, u32 ffw)
656 cf->can_id = (idw & CAN_EFF_MASK) | CAN_EFF_FLAG;
658 cf->can_id = (idw >> 18) & CAN_SFF_MASK;
663 cf->flags |= CANFD_BRS;
665 cf->flags |= CANFD_ESI;
667 cf->can_id |= CAN_RTR_FLAG;
681 cf->len = len;
692 *(__le32 *)(cf->data + i) = cpu_to_le32(data);
714 struct canfd_frame *cf;
729 skb = alloc_canfd_skb(ndev, &cf);
731 skb = alloc_can_skb(ndev, (struct can_frame **)&cf);
739 ctucan_read_rx_frame(priv, cf, ffw);
741 stats->rx_bytes += cf->len;
805 struct can_frame *cf;
824 skb = alloc_can_err_skb(ndev, &cf);
846 cf->can_id |= CAN_ERR_BUSOFF;
851 cf->can_id |= CAN_ERR_CRTL | CAN_ERR_CNT;
852 cf->data[1] = (bec.rxerr > 127) ?
855 cf->data[6] = bec.txerr;
856 cf->data[7] = bec.rxerr;
862 cf->can_id |= CAN_ERR_CRTL | CAN_ERR_CNT;
863 cf->data[1] |= (bec.txerr > bec.rxerr) ?
866 cf->data[6] = bec.txerr;
867 cf->data[7] = bec.rxerr;
872 cf->can_id |= CAN_ERR_CNT;
873 cf->data[1] = CAN_ERR_CRTL_ACTIVE;
874 cf->data[6] = bec.txerr;
875 cf->data[7] = bec.rxerr;
891 cf->can_id |= CAN_ERR_LOSTARB;
892 cf->data[0] = CAN_ERR_LOSTARB_UNSPEC;
902 cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR;
903 cf->data[2] = CAN_ERR_PROT_UNSPEC;
904 cf->data[3] = CAN_ERR_PROT_LOC_UNSPEC;
910 stats->rx_bytes += cf->can_dlc;
944 struct can_frame *cf;
950 skb = alloc_can_err_skb(ndev, &cf);
952 cf->can_id |= CAN_ERR_CRTL;
953 cf->data[1] |= CAN_ERR_CRTL_RX_OVERFLOW;
955 stats->rx_bytes += cf->can_dlc;