Lines Matching refs:head

33 	fifo->head = 0;  in fm10k_fifo_init()
45 return fifo->tail - fifo->head; in fm10k_fifo_used()
56 return fifo->size + fifo->head - fifo->tail; in fm10k_fifo_unused()
67 return fifo->head == fifo->tail; in fm10k_fifo_empty()
79 return (fifo->head + offset) & (fifo->size - 1); in fm10k_fifo_head_offset()
102 u32 *head = fifo->buffer + fm10k_fifo_head_offset(fifo, 0); in fm10k_fifo_head_len() local
109 return FM10K_TLV_DWORD_LEN(*head); in fm10k_fifo_head_len()
123 fifo->head += len; in fm10k_fifo_head_drop()
137 fifo->head = fifo->tail; in fm10k_fifo_drop_all()
149 static u16 fm10k_mbx_index_len(struct fm10k_mbx_info *mbx, u16 head, u16 tail) in fm10k_mbx_index_len() argument
151 u16 len = tail - head; in fm10k_mbx_index_len()
202 u16 head = (mbx->head + offset + 1) & ((mbx->mbmem_len << 1) - 1); in fm10k_mbx_head_add() local
205 return (head > mbx->head) ? --head : ++head; in fm10k_mbx_head_add()
218 u16 head = (mbx->head - offset - 1) & ((mbx->mbmem_len << 1) - 1); in fm10k_mbx_head_sub() local
221 return (head < mbx->head) ? ++head : --head; in fm10k_mbx_head_sub()
350 u32 *head = fifo->buffer; in fm10k_mbx_write_copy() local
365 head += end; in fm10k_mbx_write_copy()
371 for (end = fifo->size - end; len; head = fifo->buffer) { in fm10k_mbx_write_copy()
379 fm10k_write_reg(hw, mbmem + tail++, *(head++)); in fm10k_mbx_write_copy()
396 struct fm10k_mbx_info *mbx, u16 head) in fm10k_mbx_pull_head() argument
398 u16 mbmem_len, len, ack = fm10k_mbx_index_len(mbx, head, mbx->tail); in fm10k_mbx_pull_head()
442 u16 end, len, head; in fm10k_mbx_read_copy() local
446 head = fm10k_mbx_head_sub(mbx, len); in fm10k_mbx_read_copy()
447 if (head >= mbx->mbmem_len) in fm10k_mbx_read_copy()
448 head++; in fm10k_mbx_read_copy()
458 head &= mbx->mbmem_len - 1; in fm10k_mbx_read_copy()
459 if (!head) in fm10k_mbx_read_copy()
460 head++; in fm10k_mbx_read_copy()
463 *(tail++) = fm10k_read_reg(hw, mbmem + head++); in fm10k_mbx_read_copy()
487 u16 len, seq = fm10k_mbx_index_len(mbx, mbx->head, tail); in fm10k_mbx_push_tail()
495 mbx->head = fm10k_mbx_head_add(mbx, len); in fm10k_mbx_push_tail()
628 static void fm10k_mbx_update_local_crc(struct fm10k_mbx_info *mbx, u16 head) in fm10k_mbx_update_local_crc() argument
630 u16 len = mbx->tail_len - fm10k_mbx_index_len(mbx, head, mbx->tail); in fm10k_mbx_update_local_crc()
633 head = fm10k_fifo_head_offset(&mbx->tx, mbx->pulled); in fm10k_mbx_update_local_crc()
636 mbx->local = fm10k_fifo_crc(&mbx->tx, head, len, mbx->local); in fm10k_mbx_update_local_crc()
722 err = fm10k_tlv_msg_parse(hw, fifo->buffer + fifo->head, in fm10k_mbx_dequeue_rx()
734 fifo->tail -= fifo->head; in fm10k_mbx_dequeue_rx()
735 fifo->head = 0; in fm10k_mbx_dequeue_rx()
852 FM10K_MSG_HDR_FIELD_SET(mbx->head, HEAD) | in fm10k_mbx_create_connect_hdr()
866 FM10K_MSG_HDR_FIELD_SET(mbx->head, HEAD); in fm10k_mbx_create_data_hdr()
892 FM10K_MSG_HDR_FIELD_SET(mbx->head, HEAD); in fm10k_mbx_create_disconnect_hdr()
929 FM10K_MSG_HDR_FIELD_SET(mbx->head, HEAD); in fm10k_mbx_create_error_msg()
943 u16 type, rsvd0, head, tail, size; in fm10k_mbx_validate_msg_hdr() local
949 head = FM10K_MSG_HDR_FIELD_GET(*hdr, HEAD); in fm10k_mbx_validate_msg_hdr()
958 if (tail != mbx->head) in fm10k_mbx_validate_msg_hdr()
964 if (!head || (head == FM10K_MSG_HDR_MASK(HEAD))) in fm10k_mbx_validate_msg_hdr()
966 if (fm10k_mbx_index_len(mbx, head, mbx->tail) > mbx->tail_len) in fm10k_mbx_validate_msg_hdr()
972 if (fm10k_mbx_index_len(mbx, mbx->head, tail) < mbx->mbmem_len) in fm10k_mbx_validate_msg_hdr()
983 if (!head || (head == FM10K_MSG_HDR_MASK(HEAD))) in fm10k_mbx_validate_msg_hdr()
1008 struct fm10k_mbx_info *mbx, u16 head) in fm10k_mbx_create_reply() argument
1014 fm10k_mbx_update_local_crc(mbx, head); in fm10k_mbx_create_reply()
1017 fm10k_mbx_pull_head(hw, mbx, head); in fm10k_mbx_create_reply()
1058 mbx->rx.head = 0; in fm10k_mbx_reset_work()
1124 u16 size, head; in fm10k_mbx_process_connect() local
1128 head = FM10K_MSG_HDR_FIELD_GET(*hdr, HEAD); in fm10k_mbx_process_connect()
1152 mbx->tail = head; in fm10k_mbx_process_connect()
1154 return fm10k_mbx_create_reply(hw, mbx, head); in fm10k_mbx_process_connect()
1169 u16 head, tail; in fm10k_mbx_process_data() local
1173 head = FM10K_MSG_HDR_FIELD_GET(*hdr, HEAD); in fm10k_mbx_process_data()
1178 mbx->tail = head; in fm10k_mbx_process_data()
1195 return fm10k_mbx_create_reply(hw, mbx, head); in fm10k_mbx_process_data()
1211 u16 head; in fm10k_mbx_process_disconnect() local
1215 head = FM10K_MSG_HDR_FIELD_GET(*hdr, HEAD); in fm10k_mbx_process_disconnect()
1237 if (head != mbx->tail) in fm10k_mbx_process_disconnect()
1247 return fm10k_mbx_create_reply(hw, mbx, head); in fm10k_mbx_process_disconnect()
1263 u16 head; in fm10k_mbx_process_error() local
1266 head = FM10K_MSG_HDR_FIELD_GET(*hdr, HEAD); in fm10k_mbx_process_error()
1283 mbx->tail = head; in fm10k_mbx_process_error()
1569 mbx->head = 1; in fm10k_pfvf_mbx_init()
1610 FM10K_MSG_HDR_FIELD_SET(mbx->head, SM_HEAD); in fm10k_sm_mbx_create_data_hdr()
1627 FM10K_MSG_HDR_FIELD_SET(mbx->head, SM_HEAD) | in fm10k_sm_mbx_create_connect_hdr()
1648 mbx->head = 1; in fm10k_sm_mbx_connect_reset()
1749 u16 tail, head, ver; in fm10k_sm_mbx_validate_fifo_hdr() local
1753 head = FM10K_MSG_HDR_FIELD_GET(*hdr, SM_HEAD); in fm10k_sm_mbx_validate_fifo_hdr()
1759 if (!head || head > FM10K_SM_MBX_FIFO_LEN) in fm10k_sm_mbx_validate_fifo_hdr()
1763 if (mbx->tail < head) in fm10k_sm_mbx_validate_fifo_hdr()
1764 head += mbx->mbmem_len - 1; in fm10k_sm_mbx_validate_fifo_hdr()
1765 if (tail < mbx->head) in fm10k_sm_mbx_validate_fifo_hdr()
1767 if (fm10k_mbx_index_len(mbx, head, mbx->tail) > mbx->tail_len) in fm10k_sm_mbx_validate_fifo_hdr()
1769 if (fm10k_mbx_index_len(mbx, mbx->head, tail) < mbx->mbmem_len) in fm10k_sm_mbx_validate_fifo_hdr()
1860 if (tail < mbx->head) in fm10k_sm_mbx_receive()
1872 mbx->head = fm10k_mbx_head_sub(mbx, mbx->pushed); in fm10k_sm_mbx_receive()
1876 if (mbx->head > mbmem_len) in fm10k_sm_mbx_receive()
1877 mbx->head -= mbmem_len; in fm10k_sm_mbx_receive()
1891 struct fm10k_mbx_info *mbx, u16 head) in fm10k_sm_mbx_transmit() argument
1900 if (mbx->tail < head) in fm10k_sm_mbx_transmit()
1901 head += mbmem_len; in fm10k_sm_mbx_transmit()
1903 fm10k_mbx_pull_head(hw, mbx, head); in fm10k_sm_mbx_transmit()
1934 struct fm10k_mbx_info *mbx, u16 head) in fm10k_sm_mbx_create_reply() argument
1940 fm10k_sm_mbx_transmit(hw, mbx, head); in fm10k_sm_mbx_create_reply()
2008 u16 head, tail; in fm10k_sm_mbx_process_version_1() local
2013 head = FM10K_MSG_HDR_FIELD_GET(*hdr, SM_HEAD); in fm10k_sm_mbx_process_version_1()
2035 fm10k_sm_mbx_create_reply(hw, mbx, head); in fm10k_sm_mbx_process_version_1()