Lines Matching refs:frame
408 static void mcp251x_hw_tx(struct spi_device *spi, struct can_frame *frame, in mcp251x_hw_tx() argument
415 exide = (frame->can_id & CAN_EFF_FLAG) ? 1 : 0; /* Extended ID Enable */ in mcp251x_hw_tx()
417 sid = (frame->can_id & CAN_EFF_MASK) >> 18; in mcp251x_hw_tx()
419 sid = frame->can_id & CAN_SFF_MASK; /* Standard ID */ in mcp251x_hw_tx()
420 eid = frame->can_id & CAN_EFF_MASK; /* Extended ID */ in mcp251x_hw_tx()
421 rtr = (frame->can_id & CAN_RTR_FLAG) ? 1 : 0; /* Remote transmission */ in mcp251x_hw_tx()
430 buf[TXBDLC_OFF] = (rtr << DLC_RTR_SHIFT) | frame->can_dlc; in mcp251x_hw_tx()
431 memcpy(buf + TXBDAT_OFF, frame->data, frame->can_dlc); in mcp251x_hw_tx()
432 mcp251x_hw_tx_frame(spi, buf, frame->can_dlc, tx_buf_idx); in mcp251x_hw_tx()
464 struct can_frame *frame; in mcp251x_hw_rx() local
467 skb = alloc_can_skb(priv->net, &frame); in mcp251x_hw_rx()
477 frame->can_id = CAN_EFF_FLAG; in mcp251x_hw_rx()
478 frame->can_id |= in mcp251x_hw_rx()
488 frame->can_id |= CAN_RTR_FLAG; in mcp251x_hw_rx()
491 frame->can_id = in mcp251x_hw_rx()
495 frame->can_id |= CAN_RTR_FLAG; in mcp251x_hw_rx()
498 frame->can_dlc = get_can_dlc(buf[RXBDLC_OFF] & RXBDLC_LEN_MASK); in mcp251x_hw_rx()
499 memcpy(frame->data, buf + RXBDAT_OFF, frame->can_dlc); in mcp251x_hw_rx()
502 priv->net->stats.rx_bytes += frame->can_dlc; in mcp251x_hw_rx()
729 struct can_frame *frame; in mcp251x_error_skb() local
731 skb = alloc_can_err_skb(net, &frame); in mcp251x_error_skb()
733 frame->can_id |= can_id; in mcp251x_error_skb()
734 frame->data[1] = data1; in mcp251x_error_skb()
747 struct can_frame *frame; in mcp251x_tx_work_handler() local
754 frame = (struct can_frame *)priv->tx_skb->data; in mcp251x_tx_work_handler()
756 if (frame->can_dlc > CAN_FRAME_MAX_DATA_LEN) in mcp251x_tx_work_handler()
757 frame->can_dlc = CAN_FRAME_MAX_DATA_LEN; in mcp251x_tx_work_handler()
758 mcp251x_hw_tx(spi, frame, 0); in mcp251x_tx_work_handler()
759 priv->tx_len = 1 + frame->can_dlc; in mcp251x_tx_work_handler()