Lines Matching refs:frame
188 struct can_frame *frame = (struct can_frame *)skb->data; in mscan_start_xmit() local
226 rtr = frame->can_id & CAN_RTR_FLAG; in mscan_start_xmit()
229 if (frame->can_id & CAN_EFF_FLAG) { in mscan_start_xmit()
230 can_id = (frame->can_id & CAN_EFF_MASK) in mscan_start_xmit()
241 can_id = (frame->can_id & CAN_SFF_MASK) in mscan_start_xmit()
250 u16 *payload = (u16 *)frame->data; in mscan_start_xmit()
252 for (i = 0; i < frame->can_dlc / 2; i++) { in mscan_start_xmit()
257 if (frame->can_dlc & 1) in mscan_start_xmit()
258 out_8(data, frame->data[frame->can_dlc - 1]); in mscan_start_xmit()
261 out_8(®s->tx.dlr, frame->can_dlc); in mscan_start_xmit()
292 static void mscan_get_rx_frame(struct net_device *dev, struct can_frame *frame) in mscan_get_rx_frame() argument
301 frame->can_id = CAN_EFF_FLAG; in mscan_get_rx_frame()
307 frame->can_id = 0; in mscan_get_rx_frame()
310 frame->can_id |= can_id >> 1; in mscan_get_rx_frame()
312 frame->can_id |= CAN_RTR_FLAG; in mscan_get_rx_frame()
314 frame->can_dlc = get_can_dlc(in_8(®s->rx.dlr) & 0xf); in mscan_get_rx_frame()
316 if (!(frame->can_id & CAN_RTR_FLAG)) { in mscan_get_rx_frame()
318 u16 *payload = (u16 *)frame->data; in mscan_get_rx_frame()
320 for (i = 0; i < frame->can_dlc / 2; i++) { in mscan_get_rx_frame()
325 if (frame->can_dlc & 1) in mscan_get_rx_frame()
326 frame->data[frame->can_dlc - 1] = in_8(data); in mscan_get_rx_frame()
332 static void mscan_get_err_frame(struct net_device *dev, struct can_frame *frame, in mscan_get_err_frame() argument
341 frame->can_id = CAN_ERR_FLAG; in mscan_get_err_frame()
344 frame->can_id |= CAN_ERR_CRTL; in mscan_get_err_frame()
345 frame->data[1] = CAN_ERR_CRTL_RX_OVERFLOW; in mscan_get_err_frame()
349 frame->data[1] = 0; in mscan_get_err_frame()
354 can_change_state(dev, frame, in mscan_get_err_frame()
374 frame->can_dlc = CAN_ERR_DLC; in mscan_get_err_frame()
386 struct can_frame *frame; in mscan_rx_poll() local
394 skb = alloc_can_skb(dev, &frame); in mscan_rx_poll()
404 mscan_get_rx_frame(dev, frame); in mscan_rx_poll()
406 mscan_get_err_frame(dev, frame, canrflg); in mscan_rx_poll()
409 stats->rx_bytes += frame->can_dlc; in mscan_rx_poll()