Lines Matching refs:frame
199 struct can_frame *frame = (struct can_frame *)skb->data; in mscan_start_xmit() local
237 rtr = frame->can_id & CAN_RTR_FLAG; in mscan_start_xmit()
240 if (frame->can_id & CAN_EFF_FLAG) { in mscan_start_xmit()
241 can_id = (frame->can_id & CAN_EFF_MASK) in mscan_start_xmit()
252 can_id = (frame->can_id & CAN_SFF_MASK) in mscan_start_xmit()
261 u16 *payload = (u16 *)frame->data; in mscan_start_xmit()
263 for (i = 0; i < frame->can_dlc / 2; i++) { in mscan_start_xmit()
268 if (frame->can_dlc & 1) in mscan_start_xmit()
269 out_8(data, frame->data[frame->can_dlc - 1]); in mscan_start_xmit()
272 out_8(®s->tx.dlr, frame->can_dlc); in mscan_start_xmit()
303 static void mscan_get_rx_frame(struct net_device *dev, struct can_frame *frame) in mscan_get_rx_frame() argument
312 frame->can_id = CAN_EFF_FLAG; in mscan_get_rx_frame()
318 frame->can_id = 0; in mscan_get_rx_frame()
321 frame->can_id |= can_id >> 1; in mscan_get_rx_frame()
323 frame->can_id |= CAN_RTR_FLAG; in mscan_get_rx_frame()
325 frame->can_dlc = get_can_dlc(in_8(®s->rx.dlr) & 0xf); in mscan_get_rx_frame()
327 if (!(frame->can_id & CAN_RTR_FLAG)) { in mscan_get_rx_frame()
329 u16 *payload = (u16 *)frame->data; in mscan_get_rx_frame()
331 for (i = 0; i < frame->can_dlc / 2; i++) { in mscan_get_rx_frame()
336 if (frame->can_dlc & 1) in mscan_get_rx_frame()
337 frame->data[frame->can_dlc - 1] = in_8(data); in mscan_get_rx_frame()
343 static void mscan_get_err_frame(struct net_device *dev, struct can_frame *frame, in mscan_get_err_frame() argument
352 frame->can_id = CAN_ERR_FLAG; in mscan_get_err_frame()
355 frame->can_id |= CAN_ERR_CRTL; in mscan_get_err_frame()
356 frame->data[1] = CAN_ERR_CRTL_RX_OVERFLOW; in mscan_get_err_frame()
360 frame->data[1] = 0; in mscan_get_err_frame()
365 can_change_state(dev, frame, in mscan_get_err_frame()
385 frame->can_dlc = CAN_ERR_DLC; in mscan_get_err_frame()
398 struct can_frame *frame; in mscan_rx_poll() local
406 skb = alloc_can_skb(dev, &frame); in mscan_rx_poll()
416 mscan_get_rx_frame(dev, frame); in mscan_rx_poll()
418 mscan_get_err_frame(dev, frame, canrflg); in mscan_rx_poll()
421 stats->rx_bytes += frame->can_dlc; in mscan_rx_poll()