Lines Matching refs:len
120 u16 len = fm10k_fifo_head_len(fifo); in fm10k_fifo_head_drop() local
123 fifo->head += len; in fm10k_fifo_head_drop()
125 return len; in fm10k_fifo_head_drop()
151 u16 len = tail - head; in fm10k_mbx_index_len() local
154 if (len > tail) in fm10k_mbx_index_len()
155 len -= 2; in fm10k_mbx_index_len()
157 return len & ((mbx->mbmem_len << 1) - 1); in fm10k_mbx_index_len()
254 const u32 *msg, u16 tail_offset, u16 len) in fm10k_fifo_write_copy() argument
263 if (end < len) in fm10k_fifo_write_copy()
264 memcpy(fifo->buffer, msg + end, (len - end) << 2); in fm10k_fifo_write_copy()
266 end = len; in fm10k_fifo_write_copy()
283 u16 len = FM10K_TLV_DWORD_LEN(*msg); in fm10k_fifo_enqueue() local
286 if (len > fifo->size) in fm10k_fifo_enqueue()
290 if (len > fm10k_fifo_unused(fifo)) in fm10k_fifo_enqueue()
294 fm10k_fifo_write_copy(fifo, msg, 0, len); in fm10k_fifo_enqueue()
300 fifo->tail += len; in fm10k_fifo_enqueue()
313 static u16 fm10k_mbx_validate_msg_size(struct fm10k_mbx_info *mbx, u16 len) in fm10k_mbx_validate_msg_size() argument
320 len += mbx->pushed; in fm10k_mbx_validate_msg_size()
327 } while (total_len < len); in fm10k_mbx_validate_msg_size()
330 if ((len < total_len) && (msg_len <= mbx->max_size)) in fm10k_mbx_validate_msg_size()
334 return (len < total_len) ? len : (len - total_len); in fm10k_mbx_validate_msg_size()
351 u16 end, len, tail, mask; in fm10k_mbx_write_copy() local
358 len = mbx->tail_len; in fm10k_mbx_write_copy()
359 tail = fm10k_mbx_tail_sub(mbx, len); in fm10k_mbx_write_copy()
371 for (end = fifo->size - end; len; head = fifo->buffer) { in fm10k_mbx_write_copy()
380 } while (--len && --end); in fm10k_mbx_write_copy()
398 u16 mbmem_len, len, ack = fm10k_mbx_index_len(mbx, head, mbx->tail); in fm10k_mbx_pull_head() local
406 len = fm10k_fifo_used(fifo) - mbx->pulled; in fm10k_mbx_pull_head()
407 if (len > mbmem_len) in fm10k_mbx_pull_head()
408 len = mbmem_len; in fm10k_mbx_pull_head()
411 mbx->tail = fm10k_mbx_tail_add(mbx, len - ack); in fm10k_mbx_pull_head()
412 mbx->tail_len = len; in fm10k_mbx_pull_head()
415 for (len = fm10k_fifo_head_len(fifo); in fm10k_mbx_pull_head()
416 len && (mbx->pulled >= len); in fm10k_mbx_pull_head()
417 len = fm10k_fifo_head_len(fifo)) { in fm10k_mbx_pull_head()
420 mbx->tx_dwords += len; in fm10k_mbx_pull_head()
442 u16 end, len, head; in fm10k_mbx_read_copy() local
445 len = mbx->head_len; in fm10k_mbx_read_copy()
446 head = fm10k_mbx_head_sub(mbx, len); in fm10k_mbx_read_copy()
455 for (end = fifo->size - end; len; tail = fifo->buffer) { in fm10k_mbx_read_copy()
464 } while (--len && --end); in fm10k_mbx_read_copy()
487 u16 len, seq = fm10k_mbx_index_len(mbx, mbx->head, tail); in fm10k_mbx_push_tail() local
490 len = fm10k_fifo_unused(fifo) - mbx->pushed; in fm10k_mbx_push_tail()
491 if (len > seq) in fm10k_mbx_push_tail()
492 len = seq; in fm10k_mbx_push_tail()
495 mbx->head = fm10k_mbx_head_add(mbx, len); in fm10k_mbx_push_tail()
496 mbx->head_len = len; in fm10k_mbx_push_tail()
499 if (!len) in fm10k_mbx_push_tail()
506 if (fm10k_mbx_validate_msg_size(mbx, len)) in fm10k_mbx_push_tail()
510 mbx->pushed += len; in fm10k_mbx_push_tail()
513 for (len = fm10k_mbx_pushed_tail_len(mbx); in fm10k_mbx_push_tail()
514 len && (mbx->pushed >= len); in fm10k_mbx_push_tail()
515 len = fm10k_mbx_pushed_tail_len(mbx)) { in fm10k_mbx_push_tail()
516 fifo->tail += len; in fm10k_mbx_push_tail()
517 mbx->pushed -= len; in fm10k_mbx_push_tail()
519 mbx->rx_dwords += len; in fm10k_mbx_push_tail()
571 static u16 fm10k_crc_16b(const u32 *data, u16 seed, u16 len) in fm10k_crc_16b() argument
575 while (len--) { in fm10k_crc_16b()
580 if (!(len--)) in fm10k_crc_16b()
600 u16 len, u16 seed) in fm10k_fifo_crc() argument
608 if (offset < len) { in fm10k_fifo_crc()
611 len -= offset; in fm10k_fifo_crc()
615 return fm10k_crc_16b(data, seed, len * 2); in fm10k_fifo_crc()
630 u16 len = mbx->tail_len - fm10k_mbx_index_len(mbx, head, mbx->tail); in fm10k_mbx_update_local_crc() local
636 mbx->local = fm10k_fifo_crc(&mbx->tx, head, len, mbx->local); in fm10k_mbx_update_local_crc()
652 u16 len = mbx->head_len; in fm10k_mbx_verify_remote_crc() local
653 u16 offset = fm10k_fifo_tail_offset(fifo, mbx->pushed) - len; in fm10k_mbx_verify_remote_crc()
657 if (len) in fm10k_mbx_verify_remote_crc()
658 mbx->remote = fm10k_fifo_crc(fifo, offset, len, mbx->remote); in fm10k_mbx_verify_remote_crc()
687 static bool fm10k_mbx_tx_ready(struct fm10k_mbx_info *mbx, u16 len) in fm10k_mbx_tx_ready() argument
691 return (mbx->state == FM10K_STATE_OPEN) && (fifo_unused >= len); in fm10k_mbx_tx_ready()
1070 u16 len, head, ack; in fm10k_mbx_reset_work() local
1082 len = fm10k_fifo_head_drop(&mbx->tx); in fm10k_mbx_reset_work()
1084 if (mbx->pulled >= len) in fm10k_mbx_reset_work()
1085 mbx->pulled -= len; in fm10k_mbx_reset_work()
1112 u16 len; in fm10k_mbx_update_max_size() local
1117 for (len = fm10k_fifo_head_len(&mbx->tx); in fm10k_mbx_update_max_size()
1118 len > size; in fm10k_mbx_update_max_size()
1119 len = fm10k_fifo_head_len(&mbx->tx)) { in fm10k_mbx_update_max_size()
1931 u16 tail_len, len = 0; in fm10k_sm_mbx_transmit() local
1942 msg = fifo->buffer + fm10k_fifo_head_offset(fifo, len); in fm10k_sm_mbx_transmit()
1943 tail_len = len; in fm10k_sm_mbx_transmit()
1944 len += FM10K_TLV_DWORD_LEN(*msg); in fm10k_sm_mbx_transmit()
1945 } while ((len <= mbx->tail_len) && (len < mbmem_len)); in fm10k_sm_mbx_transmit()
2044 s32 len; in fm10k_sm_mbx_process_version_1() local
2062 len = fm10k_sm_mbx_receive(hw, mbx, tail); in fm10k_sm_mbx_process_version_1()
2063 if (len < 0) in fm10k_sm_mbx_process_version_1()
2064 return len; in fm10k_sm_mbx_process_version_1()
2067 } while (len); in fm10k_sm_mbx_process_version_1()