Lines Matching refs:rb

6359 static inline bool dmub_rb_empty(struct dmub_rb *rb)  in dmub_rb_empty()  argument
6361 return (rb->wrpt == rb->rptr); in dmub_rb_empty()
6370 static inline uint32_t dmub_rb_num_outstanding(struct dmub_rb *rb) in dmub_rb_num_outstanding() argument
6374 if (rb->wrpt >= rb->rptr) in dmub_rb_num_outstanding()
6375 data_count = rb->wrpt - rb->rptr; in dmub_rb_num_outstanding()
6377 data_count = rb->capacity - (rb->rptr - rb->wrpt); in dmub_rb_num_outstanding()
6388 static inline uint32_t dmub_rb_num_free(struct dmub_rb *rb) in dmub_rb_num_free() argument
6392 if (rb->wrpt >= rb->rptr) in dmub_rb_num_free()
6393 data_count = rb->wrpt - rb->rptr; in dmub_rb_num_free()
6395 data_count = rb->capacity - (rb->rptr - rb->wrpt); in dmub_rb_num_free()
6400 return (rb->capacity - data_count) / DMUB_RB_CMD_SIZE; in dmub_rb_num_free()
6410 static inline bool dmub_rb_full(struct dmub_rb *rb) in dmub_rb_full() argument
6414 if (rb->wrpt >= rb->rptr) in dmub_rb_full()
6415 data_count = rb->wrpt - rb->rptr; in dmub_rb_full()
6417 data_count = rb->capacity - (rb->rptr - rb->wrpt); in dmub_rb_full()
6420 return (data_count == (rb->capacity - DMUB_RB_CMD_SIZE)); in dmub_rb_full()
6431 static inline bool dmub_rb_push_front(struct dmub_rb *rb, in dmub_rb_push_front() argument
6434 uint64_t volatile *dst = (uint64_t volatile *)((uint8_t *)(rb->base_address) + rb->wrpt); in dmub_rb_push_front()
6438 if (dmub_rb_full(rb)) in dmub_rb_push_front()
6445 rb->wrpt += DMUB_RB_CMD_SIZE; in dmub_rb_push_front()
6447 if (rb->wrpt >= rb->capacity) in dmub_rb_push_front()
6448 rb->wrpt %= rb->capacity; in dmub_rb_push_front()
6461 static inline bool dmub_rb_out_push_front(struct dmub_rb *rb, in dmub_rb_out_push_front() argument
6464 uint8_t *dst = (uint8_t *)(rb->base_address) + rb->wrpt; in dmub_rb_out_push_front()
6467 if (dmub_rb_full(rb)) in dmub_rb_out_push_front()
6472 rb->wrpt += DMUB_RB_CMD_SIZE; in dmub_rb_out_push_front()
6474 if (rb->wrpt >= rb->capacity) in dmub_rb_out_push_front()
6475 rb->wrpt %= rb->capacity; in dmub_rb_out_push_front()
6488 static inline bool dmub_rb_front(struct dmub_rb *rb, in dmub_rb_front() argument
6491 uint8_t *rb_cmd = (uint8_t *)(rb->base_address) + rb->rptr; in dmub_rb_front()
6493 if (dmub_rb_empty(rb)) in dmub_rb_front()
6508 static inline void dmub_rb_get_rptr_with_offset(struct dmub_rb *rb, in dmub_rb_get_rptr_with_offset() argument
6512 *next_rptr = rb->rptr + DMUB_RB_CMD_SIZE * num_cmds; in dmub_rb_get_rptr_with_offset()
6514 if (*next_rptr >= rb->capacity) in dmub_rb_get_rptr_with_offset()
6515 *next_rptr %= rb->capacity; in dmub_rb_get_rptr_with_offset()
6527 static inline bool dmub_rb_peek_offset(struct dmub_rb *rb, in dmub_rb_peek_offset() argument
6531 uint8_t *rb_cmd = (uint8_t *)(rb->base_address) + rptr; in dmub_rb_peek_offset()
6533 if (dmub_rb_empty(rb)) in dmub_rb_peek_offset()
6549 static inline bool dmub_rb_out_front(struct dmub_rb *rb, in dmub_rb_out_front() argument
6552 …const uint64_t volatile *src = (const uint64_t volatile *)((uint8_t *)(rb->base_address) + rb->rpt… in dmub_rb_out_front()
6556 if (dmub_rb_empty(rb)) in dmub_rb_out_front()
6573 static inline bool dmub_rb_pop_front(struct dmub_rb *rb) in dmub_rb_pop_front() argument
6575 if (dmub_rb_empty(rb)) in dmub_rb_pop_front()
6578 rb->rptr += DMUB_RB_CMD_SIZE; in dmub_rb_pop_front()
6580 if (rb->rptr >= rb->capacity) in dmub_rb_pop_front()
6581 rb->rptr %= rb->capacity; in dmub_rb_pop_front()
6594 static inline void dmub_rb_flush_pending(const struct dmub_rb *rb) in dmub_rb_flush_pending() argument
6596 uint32_t rptr = rb->rptr; in dmub_rb_flush_pending()
6597 uint32_t wptr = rb->wrpt; in dmub_rb_flush_pending()
6600 uint64_t *data = (uint64_t *)((uint8_t *)(rb->base_address) + rptr); in dmub_rb_flush_pending()
6607 if (rptr >= rb->capacity) in dmub_rb_flush_pending()
6608 rptr %= rb->capacity; in dmub_rb_flush_pending()
6618 static inline void dmub_rb_init(struct dmub_rb *rb, in dmub_rb_init() argument
6621 rb->base_address = init_params->base_address; in dmub_rb_init()
6622 rb->capacity = init_params->capacity; in dmub_rb_init()
6623 rb->rptr = init_params->read_ptr; in dmub_rb_init()
6624 rb->wrpt = init_params->write_ptr; in dmub_rb_init()
6633 static inline void dmub_rb_get_return_data(struct dmub_rb *rb, in dmub_rb_get_return_data() argument
6637 uint8_t *rd_ptr = (rb->rptr == 0) ? in dmub_rb_get_return_data()
6638 (uint8_t *)rb->base_address + rb->capacity - DMUB_RB_CMD_SIZE : in dmub_rb_get_return_data()
6639 (uint8_t *)rb->base_address + rb->rptr - DMUB_RB_CMD_SIZE; in dmub_rb_get_return_data()