Lines Matching refs:frame
198 * frame)
637 static void mcp251x_hw_tx(struct spi_device *spi, struct can_frame *frame,
644 exide = (frame->can_id & CAN_EFF_FLAG) ? 1 : 0; /* Extended ID Enable */
646 sid = (frame->can_id & CAN_EFF_MASK) >> 18;
648 sid = frame->can_id & CAN_SFF_MASK; /* Standard ID */
649 eid = frame->can_id & CAN_EFF_MASK; /* Extended ID */
650 rtr = (frame->can_id & CAN_RTR_FLAG) ? 1 : 0; /* Remote transmission */
659 buf[TXBDLC_OFF] = (rtr << DLC_RTR_SHIFT) | frame->can_dlc;
660 memcpy(buf + TXBDAT_OFF, frame->data, frame->can_dlc);
661 mcp251x_hw_tx_frame(spi, buf, frame->can_dlc, tx_buf_idx);
663 /* use INSTRUCTION_RTS, to avoid "repeated frame problem" */
701 struct can_frame *frame;
704 skb = alloc_can_skb(priv->net, &frame);
714 frame->can_id = CAN_EFF_FLAG;
715 frame->can_id |=
725 frame->can_id |= CAN_RTR_FLAG;
728 frame->can_id =
732 frame->can_id |= CAN_RTR_FLAG;
735 frame->can_dlc = get_can_dlc(buf[RXBDLC_OFF] & RXBDLC_LEN_MASK);
736 memcpy(frame->data, buf + RXBDAT_OFF, frame->can_dlc);
739 priv->net->stats.rx_bytes += frame->can_dlc;
984 struct can_frame *frame;
986 skb = alloc_can_err_skb(net, &frame);
988 frame->can_id |= can_id;
989 frame->data[1] = data1;
1002 struct can_frame *frame;
1009 frame = (struct can_frame *)priv->tx_skb->data;
1011 if (frame->can_dlc > CAN_FRAME_MAX_DATA_LEN)
1012 frame->can_dlc = CAN_FRAME_MAX_DATA_LEN;
1013 mcp251x_hw_tx(spi, frame, 0);
1014 priv->tx_len = 1 + frame->can_dlc;