Lines Matching refs:queue

210 static inline void *hw_qeit_calc(struct hw_queue *queue, u64 q_offset)  in hw_qeit_calc()  argument
214 if (q_offset >= queue->queue_length) in hw_qeit_calc()
215 q_offset -= queue->queue_length; in hw_qeit_calc()
216 current_page = (queue->queue_pages)[q_offset >> EHEA_PAGESHIFT]; in hw_qeit_calc()
220 static inline void *hw_qeit_get(struct hw_queue *queue) in hw_qeit_get() argument
222 return hw_qeit_calc(queue, queue->current_q_offset); in hw_qeit_get()
225 static inline void hw_qeit_inc(struct hw_queue *queue) in hw_qeit_inc() argument
227 queue->current_q_offset += queue->qe_size; in hw_qeit_inc()
228 if (queue->current_q_offset >= queue->queue_length) { in hw_qeit_inc()
229 queue->current_q_offset = 0; in hw_qeit_inc()
231 queue->toggle_state = (~queue->toggle_state) & 1; in hw_qeit_inc()
235 static inline void *hw_qeit_get_inc(struct hw_queue *queue) in hw_qeit_get_inc() argument
237 void *retvalue = hw_qeit_get(queue); in hw_qeit_get_inc()
238 hw_qeit_inc(queue); in hw_qeit_get_inc()
242 static inline void *hw_qeit_get_inc_valid(struct hw_queue *queue) in hw_qeit_get_inc_valid() argument
244 struct ehea_cqe *retvalue = hw_qeit_get(queue); in hw_qeit_get_inc_valid()
248 if ((valid >> 7) == (queue->toggle_state & 1)) { in hw_qeit_get_inc_valid()
250 hw_qeit_inc(queue); in hw_qeit_get_inc_valid()
251 pref = hw_qeit_calc(queue, queue->current_q_offset); in hw_qeit_get_inc_valid()
259 static inline void *hw_qeit_get_valid(struct hw_queue *queue) in hw_qeit_get_valid() argument
261 struct ehea_cqe *retvalue = hw_qeit_get(queue); in hw_qeit_get_valid()
265 pref = hw_qeit_calc(queue, queue->current_q_offset); in hw_qeit_get_valid()
270 if (!((valid >> 7) == (queue->toggle_state & 1))) in hw_qeit_get_valid()
275 static inline void *hw_qeit_reset(struct hw_queue *queue) in hw_qeit_reset() argument
277 queue->current_q_offset = 0; in hw_qeit_reset()
278 return hw_qeit_get(queue); in hw_qeit_reset()
281 static inline void *hw_qeit_eq_get_inc(struct hw_queue *queue) in hw_qeit_eq_get_inc() argument
283 u64 last_entry_in_q = queue->queue_length - queue->qe_size; in hw_qeit_eq_get_inc()
286 retvalue = hw_qeit_get(queue); in hw_qeit_eq_get_inc()
287 queue->current_q_offset += queue->qe_size; in hw_qeit_eq_get_inc()
288 if (queue->current_q_offset > last_entry_in_q) { in hw_qeit_eq_get_inc()
289 queue->current_q_offset = 0; in hw_qeit_eq_get_inc()
290 queue->toggle_state = (~queue->toggle_state) & 1; in hw_qeit_eq_get_inc()
295 static inline void *hw_eqit_eq_get_inc_valid(struct hw_queue *queue) in hw_eqit_eq_get_inc_valid() argument
297 void *retvalue = hw_qeit_get(queue); in hw_eqit_eq_get_inc_valid()
299 if ((qe >> 7) == (queue->toggle_state & 1)) in hw_eqit_eq_get_inc_valid()
300 hw_qeit_eq_get_inc(queue); in hw_eqit_eq_get_inc_valid()
309 struct hw_queue *queue; in ehea_get_next_rwqe() local
312 queue = &qp->hw_rqueue1; in ehea_get_next_rwqe()
314 queue = &qp->hw_rqueue2; in ehea_get_next_rwqe()
316 queue = &qp->hw_rqueue3; in ehea_get_next_rwqe()
318 return hw_qeit_get_inc(queue); in ehea_get_next_rwqe()
324 struct hw_queue *queue = &my_qp->hw_squeue; in ehea_get_swqe() local
327 *wqe_index = (queue->current_q_offset) >> (7 + EHEA_SG_SQ); in ehea_get_swqe()
341 struct hw_queue *queue = &qp->hw_rqueue1; in ehea_poll_rq1() local
343 *wqe_index = (queue->current_q_offset) >> (7 + EHEA_SG_RQ1); in ehea_poll_rq1()
344 return hw_qeit_get_valid(queue); in ehea_poll_rq1()