Lines Matching refs:ring
243 void vxge_hw_vpath_dynamic_rti_ci_set(struct __vxge_hw_ring *ring) in vxge_hw_vpath_dynamic_rti_ci_set() argument
245 u64 val64 = ring->tim_rti_cfg1_saved; in vxge_hw_vpath_dynamic_rti_ci_set()
248 ring->tim_rti_cfg1_saved = val64; in vxge_hw_vpath_dynamic_rti_ci_set()
249 writeq(val64, &ring->vp_reg->tim_cfg1_int_num[VXGE_HW_VPATH_INTR_RX]); in vxge_hw_vpath_dynamic_rti_ci_set()
268 void vxge_hw_vpath_dynamic_rti_rtimer_set(struct __vxge_hw_ring *ring) in vxge_hw_vpath_dynamic_rti_rtimer_set() argument
270 u64 val64 = ring->tim_rti_cfg3_saved; in vxge_hw_vpath_dynamic_rti_rtimer_set()
271 u64 timer = (ring->rtimer * 1000) / 272; in vxge_hw_vpath_dynamic_rti_rtimer_set()
278 writeq(val64, &ring->vp_reg->tim_cfg3_int_num[VXGE_HW_VPATH_INTR_RX]); in vxge_hw_vpath_dynamic_rti_rtimer_set()
1137 enum vxge_hw_status vxge_hw_ring_rxd_reserve(struct __vxge_hw_ring *ring, in vxge_hw_ring_rxd_reserve() argument
1143 channel = &ring->channel; in vxge_hw_ring_rxd_reserve()
1181 void vxge_hw_ring_rxd_free(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_free() argument
1185 channel = &ring->channel; in vxge_hw_ring_rxd_free()
1198 void vxge_hw_ring_rxd_pre_post(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_pre_post() argument
1202 channel = &ring->channel; in vxge_hw_ring_rxd_pre_post()
1214 void vxge_hw_ring_rxd_post_post(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_post_post() argument
1219 channel = &ring->channel; in vxge_hw_ring_rxd_post_post()
1223 if (ring->stats->common_stats.usage_cnt > 0) in vxge_hw_ring_rxd_post_post()
1224 ring->stats->common_stats.usage_cnt--; in vxge_hw_ring_rxd_post_post()
1237 void vxge_hw_ring_rxd_post(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_post() argument
1242 channel = &ring->channel; in vxge_hw_ring_rxd_post()
1249 if (ring->stats->common_stats.usage_cnt > 0) in vxge_hw_ring_rxd_post()
1250 ring->stats->common_stats.usage_cnt--; in vxge_hw_ring_rxd_post()
1260 void vxge_hw_ring_rxd_post_post_wmb(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_post_post_wmb() argument
1263 vxge_hw_ring_rxd_post_post(ring, rxdh); in vxge_hw_ring_rxd_post_post_wmb()
1300 struct __vxge_hw_ring *ring, void **rxdh, u8 *t_code) in vxge_hw_ring_rxd_next_completed() argument
1307 channel = &ring->channel; in vxge_hw_ring_rxd_next_completed()
1327 ++ring->cmpl_cnt; in vxge_hw_ring_rxd_next_completed()
1332 ring->stats->common_stats.usage_cnt++; in vxge_hw_ring_rxd_next_completed()
1333 if (ring->stats->common_stats.usage_max < in vxge_hw_ring_rxd_next_completed()
1334 ring->stats->common_stats.usage_cnt) in vxge_hw_ring_rxd_next_completed()
1335 ring->stats->common_stats.usage_max = in vxge_hw_ring_rxd_next_completed()
1336 ring->stats->common_stats.usage_cnt; in vxge_hw_ring_rxd_next_completed()
1365 struct __vxge_hw_ring *ring, void *rxdh, u8 t_code) in vxge_hw_ring_handle_tcode() argument
1370 channel = &ring->channel; in vxge_hw_ring_handle_tcode()
1388 ring->stats->rxd_t_code_err_cnt[t_code]++; in vxge_hw_ring_handle_tcode()
2407 enum vxge_hw_status vxge_hw_vpath_poll_rx(struct __vxge_hw_ring *ring) in vxge_hw_vpath_poll_rx() argument
2415 ring->cmpl_cnt = 0; in vxge_hw_vpath_poll_rx()
2417 status = vxge_hw_ring_rxd_next_completed(ring, &first_rxdh, &t_code); in vxge_hw_vpath_poll_rx()
2419 ring->callback(ring, first_rxdh, in vxge_hw_vpath_poll_rx()
2420 t_code, ring->channel.userdata); in vxge_hw_vpath_poll_rx()
2422 if (ring->cmpl_cnt != 0) { in vxge_hw_vpath_poll_rx()
2423 ring->doorbell_cnt += ring->cmpl_cnt; in vxge_hw_vpath_poll_rx()
2424 if (ring->doorbell_cnt >= ring->rxds_limit) { in vxge_hw_vpath_poll_rx()
2429 new_count = (ring->doorbell_cnt * 4); in vxge_hw_vpath_poll_rx()
2432 ring->total_db_cnt += ring->doorbell_cnt; in vxge_hw_vpath_poll_rx()
2433 if (ring->total_db_cnt >= ring->rxds_per_block) { in vxge_hw_vpath_poll_rx()
2436 ring->total_db_cnt %= ring->rxds_per_block; in vxge_hw_vpath_poll_rx()
2439 &ring->vp_reg->prc_rxd_doorbell); in vxge_hw_vpath_poll_rx()
2441 readl(&ring->common_reg->titan_general_int_status); in vxge_hw_vpath_poll_rx()
2442 ring->doorbell_cnt = 0; in vxge_hw_vpath_poll_rx()