Lines Matching +full:0 +full:- +full:indexed
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright(c) 1999 - 2018 Intel Corporation. */
10 * ixgbe_dcb_config_rx_arbiter_82599 - Config Rx Data arbiter
14 * @bwg_id: bandwidth grouping indexed by traffic class
15 * @prio_type: priority type indexed by traffic class
16 * @prio_tc: priority to tc assignments indexed by priority
27 u32 reg = 0; in ixgbe_dcb_config_rx_arbiter_82599()
28 u32 credit_refill = 0; in ixgbe_dcb_config_rx_arbiter_82599()
29 u32 credit_max = 0; in ixgbe_dcb_config_rx_arbiter_82599()
30 u8 i = 0; in ixgbe_dcb_config_rx_arbiter_82599()
40 reg = 0; in ixgbe_dcb_config_rx_arbiter_82599()
41 for (i = 0; i < MAX_USER_PRIORITY; i++) in ixgbe_dcb_config_rx_arbiter_82599()
46 for (i = 0; i < MAX_TRAFFIC_CLASS; i++) { in ixgbe_dcb_config_rx_arbiter_82599()
66 return 0; in ixgbe_dcb_config_rx_arbiter_82599()
70 * ixgbe_dcb_config_tx_desc_arbiter_82599 - Config Tx Desc. arbiter
74 * @bwg_id: bandwidth grouping indexed by traffic class
75 * @prio_type: priority type indexed by traffic class
88 /* Clear the per-Tx queue credits; we use per-TC instead */ in ixgbe_dcb_config_tx_desc_arbiter_82599()
89 for (i = 0; i < 128; i++) { in ixgbe_dcb_config_tx_desc_arbiter_82599()
91 IXGBE_WRITE_REG(hw, IXGBE_RTTDT1C, 0); in ixgbe_dcb_config_tx_desc_arbiter_82599()
95 for (i = 0; i < MAX_TRAFFIC_CLASS; i++) { in ixgbe_dcb_config_tx_desc_arbiter_82599()
117 return 0; in ixgbe_dcb_config_tx_desc_arbiter_82599()
121 * ixgbe_dcb_config_tx_data_arbiter_82599 - Config Tx Data arbiter
125 * @bwg_id: bandwidth grouping indexed by traffic class
126 * @prio_type: priority type indexed by traffic class
127 * @prio_tc: priority to tc assignments indexed by priority
151 reg = 0; in ixgbe_dcb_config_tx_data_arbiter_82599()
152 for (i = 0; i < MAX_USER_PRIORITY; i++) in ixgbe_dcb_config_tx_data_arbiter_82599()
157 for (i = 0; i < MAX_TRAFFIC_CLASS; i++) { in ixgbe_dcb_config_tx_data_arbiter_82599()
179 return 0; in ixgbe_dcb_config_tx_data_arbiter_82599()
183 * ixgbe_dcb_config_pfc_82599 - Configure priority flow control
186 * @prio_tc: priority to tc assignments indexed by priority
193 u8 max_tc = 0; in ixgbe_dcb_config_pfc_82599()
209 if (hw->mac.type >= ixgbe_mac_X540) in ixgbe_dcb_config_pfc_82599()
217 for (i = 0; i < MAX_USER_PRIORITY; i++) { in ixgbe_dcb_config_pfc_82599()
224 for (i = 0; i <= max_tc; i++) { in ixgbe_dcb_config_pfc_82599()
225 int enabled = 0; in ixgbe_dcb_config_pfc_82599()
227 for (j = 0; j < MAX_USER_PRIORITY; j++) { in ixgbe_dcb_config_pfc_82599()
235 reg = (hw->fc.high_water[i] << 10) | IXGBE_FCRTH_FCEN; in ixgbe_dcb_config_pfc_82599()
236 fcrtl = (hw->fc.low_water[i] << 10) | IXGBE_FCRTL_XONE; in ixgbe_dcb_config_pfc_82599()
241 * to the Rx packet buffer size - 24KB. This allows in ixgbe_dcb_config_pfc_82599()
245 reg = IXGBE_READ_REG(hw, IXGBE_RXPBSIZE(i)) - 24576; in ixgbe_dcb_config_pfc_82599()
246 IXGBE_WRITE_REG(hw, IXGBE_FCRTL_82599(i), 0); in ixgbe_dcb_config_pfc_82599()
253 IXGBE_WRITE_REG(hw, IXGBE_FCRTL_82599(i), 0); in ixgbe_dcb_config_pfc_82599()
254 IXGBE_WRITE_REG(hw, IXGBE_FCRTH_82599(i), 0); in ixgbe_dcb_config_pfc_82599()
258 reg = hw->fc.pause_time * 0x00010001; in ixgbe_dcb_config_pfc_82599()
259 for (i = 0; i < (MAX_TRAFFIC_CLASS / 2); i++) in ixgbe_dcb_config_pfc_82599()
263 IXGBE_WRITE_REG(hw, IXGBE_FCRTV, hw->fc.pause_time / 2); in ixgbe_dcb_config_pfc_82599()
265 return 0; in ixgbe_dcb_config_pfc_82599()
269 * ixgbe_dcb_config_tc_stats_82599 - Config traffic class statistics
277 u32 reg = 0; in ixgbe_dcb_config_tc_stats_82599()
278 u8 i = 0; in ixgbe_dcb_config_tc_stats_82599()
286 for (i = 0; i < 32; i++) { in ixgbe_dcb_config_tc_stats_82599()
287 reg = 0x01010101 * (i / 4); in ixgbe_dcb_config_tc_stats_82599()
295 * Tx queues are allocated non-uniformly to TCs: in ixgbe_dcb_config_tc_stats_82599()
298 for (i = 0; i < 32; i++) { in ixgbe_dcb_config_tc_stats_82599()
300 reg = 0x00000000; in ixgbe_dcb_config_tc_stats_82599()
302 reg = 0x01010101; in ixgbe_dcb_config_tc_stats_82599()
304 reg = 0x02020202; in ixgbe_dcb_config_tc_stats_82599()
306 reg = 0x03030303; in ixgbe_dcb_config_tc_stats_82599()
308 reg = 0x04040404; in ixgbe_dcb_config_tc_stats_82599()
310 reg = 0x05050505; in ixgbe_dcb_config_tc_stats_82599()
312 reg = 0x06060606; in ixgbe_dcb_config_tc_stats_82599()
314 reg = 0x07070707; in ixgbe_dcb_config_tc_stats_82599()
318 return 0; in ixgbe_dcb_config_tc_stats_82599()
322 * ixgbe_dcb_hw_config_82599 - Configure and enable DCB
327 * @bwg_id: bandwidth grouping indexed by traffic class
328 * @prio_type: priority type indexed by traffic class
329 * @prio_tc: priority to tc assignments indexed by priority
345 return 0; in ixgbe_dcb_hw_config_82599()