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()
1132 enum vxge_hw_status vxge_hw_ring_rxd_reserve(struct __vxge_hw_ring *ring, in vxge_hw_ring_rxd_reserve() argument
1138 channel = &ring->channel; in vxge_hw_ring_rxd_reserve()
1176 void vxge_hw_ring_rxd_free(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_free() argument
1180 channel = &ring->channel; in vxge_hw_ring_rxd_free()
1193 void vxge_hw_ring_rxd_pre_post(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_pre_post() argument
1197 channel = &ring->channel; in vxge_hw_ring_rxd_pre_post()
1209 void vxge_hw_ring_rxd_post_post(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_post_post() argument
1214 channel = &ring->channel; in vxge_hw_ring_rxd_post_post()
1218 if (ring->stats->common_stats.usage_cnt > 0) in vxge_hw_ring_rxd_post_post()
1219 ring->stats->common_stats.usage_cnt--; in vxge_hw_ring_rxd_post_post()
1232 void vxge_hw_ring_rxd_post(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_post() argument
1237 channel = &ring->channel; in vxge_hw_ring_rxd_post()
1244 if (ring->stats->common_stats.usage_cnt > 0) in vxge_hw_ring_rxd_post()
1245 ring->stats->common_stats.usage_cnt--; in vxge_hw_ring_rxd_post()
1255 void vxge_hw_ring_rxd_post_post_wmb(struct __vxge_hw_ring *ring, void *rxdh) in vxge_hw_ring_rxd_post_post_wmb() argument
1258 vxge_hw_ring_rxd_post_post(ring, rxdh); in vxge_hw_ring_rxd_post_post_wmb()
1295 struct __vxge_hw_ring *ring, void **rxdh, u8 *t_code) in vxge_hw_ring_rxd_next_completed() argument
1302 channel = &ring->channel; in vxge_hw_ring_rxd_next_completed()
1322 ++ring->cmpl_cnt; in vxge_hw_ring_rxd_next_completed()
1327 ring->stats->common_stats.usage_cnt++; in vxge_hw_ring_rxd_next_completed()
1328 if (ring->stats->common_stats.usage_max < in vxge_hw_ring_rxd_next_completed()
1329 ring->stats->common_stats.usage_cnt) in vxge_hw_ring_rxd_next_completed()
1330 ring->stats->common_stats.usage_max = in vxge_hw_ring_rxd_next_completed()
1331 ring->stats->common_stats.usage_cnt; in vxge_hw_ring_rxd_next_completed()
1360 struct __vxge_hw_ring *ring, void *rxdh, u8 t_code) in vxge_hw_ring_handle_tcode() argument
1365 channel = &ring->channel; in vxge_hw_ring_handle_tcode()
1383 ring->stats->rxd_t_code_err_cnt[t_code]++; in vxge_hw_ring_handle_tcode()
2402 enum vxge_hw_status vxge_hw_vpath_poll_rx(struct __vxge_hw_ring *ring) in vxge_hw_vpath_poll_rx() argument
2410 ring->cmpl_cnt = 0; in vxge_hw_vpath_poll_rx()
2412 status = vxge_hw_ring_rxd_next_completed(ring, &first_rxdh, &t_code); in vxge_hw_vpath_poll_rx()
2414 ring->callback(ring, first_rxdh, in vxge_hw_vpath_poll_rx()
2415 t_code, ring->channel.userdata); in vxge_hw_vpath_poll_rx()
2417 if (ring->cmpl_cnt != 0) { in vxge_hw_vpath_poll_rx()
2418 ring->doorbell_cnt += ring->cmpl_cnt; in vxge_hw_vpath_poll_rx()
2419 if (ring->doorbell_cnt >= ring->rxds_limit) { in vxge_hw_vpath_poll_rx()
2424 new_count = (ring->doorbell_cnt * 4); in vxge_hw_vpath_poll_rx()
2427 ring->total_db_cnt += ring->doorbell_cnt; in vxge_hw_vpath_poll_rx()
2428 if (ring->total_db_cnt >= ring->rxds_per_block) { in vxge_hw_vpath_poll_rx()
2431 ring->total_db_cnt %= ring->rxds_per_block; in vxge_hw_vpath_poll_rx()
2434 &ring->vp_reg->prc_rxd_doorbell); in vxge_hw_vpath_poll_rx()
2436 readl(&ring->common_reg->titan_general_int_status); in vxge_hw_vpath_poll_rx()
2437 ring->doorbell_cnt = 0; in vxge_hw_vpath_poll_rx()