Lines Matching +full:- +full:i
4 Copyright(c) 1999 - 2012 Intel Corporation.
17 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
23 e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
24 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
55 #define IXGBEVF_STAT(m, b, r) sizeof(((struct ixgbevf_adapter *)0)->m), \
98 struct ixgbe_hw *hw = &adapter->hw; in ixgbevf_get_settings()
102 ecmd->supported = SUPPORTED_10000baseT_Full; in ixgbevf_get_settings()
103 ecmd->autoneg = AUTONEG_DISABLE; in ixgbevf_get_settings()
104 ecmd->transceiver = XCVR_DUMMY1; in ixgbevf_get_settings()
105 ecmd->port = -1; in ixgbevf_get_settings()
107 hw->mac.ops.check_link(hw, &link_speed, &link_up, false); in ixgbevf_get_settings()
114 ecmd->duplex = DUPLEX_FULL; in ixgbevf_get_settings()
116 ethtool_cmd_speed_set(ecmd, -1); in ixgbevf_get_settings()
117 ecmd->duplex = -1; in ixgbevf_get_settings()
126 return adapter->msg_enable; in ixgbevf_get_msglevel()
132 adapter->msg_enable = data; in ixgbevf_set_msglevel()
135 #define IXGBE_GET_STAT(_A_, _R_) (_A_->stats._R_)
196 struct ixgbe_hw *hw = &adapter->hw; in ixgbevf_get_regs()
199 u8 i; in ixgbevf_get_regs() local
203 regs->version = (1 << 24) | hw->revision_id << 16 | hw->device_id; in ixgbevf_get_regs()
226 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
227 regs_buff[14 + i] = IXGBE_READ_REG(hw, IXGBE_VFRDBAL(i)); in ixgbevf_get_regs()
228 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
229 regs_buff[16 + i] = IXGBE_READ_REG(hw, IXGBE_VFRDBAH(i)); in ixgbevf_get_regs()
230 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
231 regs_buff[18 + i] = IXGBE_READ_REG(hw, IXGBE_VFRDLEN(i)); in ixgbevf_get_regs()
232 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
233 regs_buff[20 + i] = IXGBE_READ_REG(hw, IXGBE_VFRDH(i)); in ixgbevf_get_regs()
234 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
235 regs_buff[22 + i] = IXGBE_READ_REG(hw, IXGBE_VFRDT(i)); in ixgbevf_get_regs()
236 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
237 regs_buff[24 + i] = IXGBE_READ_REG(hw, IXGBE_VFRXDCTL(i)); in ixgbevf_get_regs()
238 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
239 regs_buff[26 + i] = IXGBE_READ_REG(hw, IXGBE_VFSRRCTL(i)); in ixgbevf_get_regs()
245 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
246 regs_buff[29 + i] = IXGBE_READ_REG(hw, IXGBE_VFTDBAL(i)); in ixgbevf_get_regs()
247 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
248 regs_buff[31 + i] = IXGBE_READ_REG(hw, IXGBE_VFTDBAH(i)); in ixgbevf_get_regs()
249 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
250 regs_buff[33 + i] = IXGBE_READ_REG(hw, IXGBE_VFTDLEN(i)); in ixgbevf_get_regs()
251 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
252 regs_buff[35 + i] = IXGBE_READ_REG(hw, IXGBE_VFTDH(i)); in ixgbevf_get_regs()
253 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
254 regs_buff[37 + i] = IXGBE_READ_REG(hw, IXGBE_VFTDT(i)); in ixgbevf_get_regs()
255 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
256 regs_buff[39 + i] = IXGBE_READ_REG(hw, IXGBE_VFTXDCTL(i)); in ixgbevf_get_regs()
257 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
258 regs_buff[41 + i] = IXGBE_READ_REG(hw, IXGBE_VFTDWBAL(i)); in ixgbevf_get_regs()
259 for (i = 0; i < 2; i++) in ixgbevf_get_regs()
260 regs_buff[43 + i] = IXGBE_READ_REG(hw, IXGBE_VFTDWBAH(i)); in ixgbevf_get_regs()
262 for (i = 0; i < ARRAY_SIZE(ixgbevf_reg_names); i++) in ixgbevf_get_regs()
263 hw_dbg(hw, "%s\t%8.8x\n", ixgbevf_reg_names[i], regs_buff[i]); in ixgbevf_get_regs()
271 strlcpy(drvinfo->driver, ixgbevf_driver_name, sizeof(drvinfo->driver)); in ixgbevf_get_drvinfo()
272 strlcpy(drvinfo->version, ixgbevf_driver_version, in ixgbevf_get_drvinfo()
273 sizeof(drvinfo->version)); in ixgbevf_get_drvinfo()
274 strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), in ixgbevf_get_drvinfo()
275 sizeof(drvinfo->bus_info)); in ixgbevf_get_drvinfo()
282 struct ixgbevf_ring *tx_ring = adapter->tx_ring; in ixgbevf_get_ringparam()
283 struct ixgbevf_ring *rx_ring = adapter->rx_ring; in ixgbevf_get_ringparam()
285 ring->rx_max_pending = IXGBEVF_MAX_RXD; in ixgbevf_get_ringparam()
286 ring->tx_max_pending = IXGBEVF_MAX_TXD; in ixgbevf_get_ringparam()
287 ring->rx_pending = rx_ring->count; in ixgbevf_get_ringparam()
288 ring->tx_pending = tx_ring->count; in ixgbevf_get_ringparam()
296 int i, err = 0; in ixgbevf_set_ringparam() local
299 if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) in ixgbevf_set_ringparam()
300 return -EINVAL; in ixgbevf_set_ringparam()
302 new_rx_count = max(ring->rx_pending, (u32)IXGBEVF_MIN_RXD); in ixgbevf_set_ringparam()
306 new_tx_count = max(ring->tx_pending, (u32)IXGBEVF_MIN_TXD); in ixgbevf_set_ringparam()
310 if ((new_tx_count == adapter->tx_ring->count) && in ixgbevf_set_ringparam()
311 (new_rx_count == adapter->rx_ring->count)) { in ixgbevf_set_ringparam()
316 while (test_and_set_bit(__IXGBEVF_RESETTING, &adapter->state)) in ixgbevf_set_ringparam()
323 if (!netif_running(adapter->netdev)) { in ixgbevf_set_ringparam()
324 for (i = 0; i < adapter->num_tx_queues; i++) in ixgbevf_set_ringparam()
325 adapter->tx_ring[i].count = new_tx_count; in ixgbevf_set_ringparam()
326 for (i = 0; i < adapter->num_rx_queues; i++) in ixgbevf_set_ringparam()
327 adapter->rx_ring[i].count = new_rx_count; in ixgbevf_set_ringparam()
328 adapter->tx_ring_count = new_tx_count; in ixgbevf_set_ringparam()
329 adapter->rx_ring_count = new_rx_count; in ixgbevf_set_ringparam()
333 tx_ring = kcalloc(adapter->num_tx_queues, in ixgbevf_set_ringparam()
336 err = -ENOMEM; in ixgbevf_set_ringparam()
340 rx_ring = kcalloc(adapter->num_rx_queues, in ixgbevf_set_ringparam()
343 err = -ENOMEM; in ixgbevf_set_ringparam()
349 memcpy(tx_ring, adapter->tx_ring, in ixgbevf_set_ringparam()
350 adapter->num_tx_queues * sizeof(struct ixgbevf_ring)); in ixgbevf_set_ringparam()
351 for (i = 0; i < adapter->num_tx_queues; i++) { in ixgbevf_set_ringparam()
352 tx_ring[i].count = new_tx_count; in ixgbevf_set_ringparam()
353 err = ixgbevf_setup_tx_resources(adapter, &tx_ring[i]); in ixgbevf_set_ringparam()
355 while (i) { in ixgbevf_set_ringparam()
356 i--; in ixgbevf_set_ringparam()
358 &tx_ring[i]); in ixgbevf_set_ringparam()
362 tx_ring[i].v_idx = adapter->tx_ring[i].v_idx; in ixgbevf_set_ringparam()
365 memcpy(rx_ring, adapter->rx_ring, in ixgbevf_set_ringparam()
366 adapter->num_rx_queues * sizeof(struct ixgbevf_ring)); in ixgbevf_set_ringparam()
367 for (i = 0; i < adapter->num_rx_queues; i++) { in ixgbevf_set_ringparam()
368 rx_ring[i].count = new_rx_count; in ixgbevf_set_ringparam()
369 err = ixgbevf_setup_rx_resources(adapter, &rx_ring[i]); in ixgbevf_set_ringparam()
371 while (i) { in ixgbevf_set_ringparam()
372 i--; in ixgbevf_set_ringparam()
374 &rx_ring[i]); in ixgbevf_set_ringparam()
378 rx_ring[i].v_idx = adapter->rx_ring[i].v_idx; in ixgbevf_set_ringparam()
385 kfree(adapter->tx_ring); in ixgbevf_set_ringparam()
386 adapter->tx_ring = tx_ring; in ixgbevf_set_ringparam()
387 adapter->tx_ring_count = new_tx_count; in ixgbevf_set_ringparam()
389 kfree(adapter->rx_ring); in ixgbevf_set_ringparam()
390 adapter->rx_ring = rx_ring; in ixgbevf_set_ringparam()
391 adapter->rx_ring_count = new_rx_count; in ixgbevf_set_ringparam()
399 for(i = 0; i < adapter->num_tx_queues; i++) in ixgbevf_set_ringparam()
400 ixgbevf_free_tx_resources(adapter, &tx_ring[i]); in ixgbevf_set_ringparam()
409 clear_bit(__IXGBEVF_RESETTING, &adapter->state); in ixgbevf_set_ringparam()
421 return -EINVAL; in ixgbevf_get_sset_count()
429 int i; in ixgbevf_get_ethtool_stats() local
432 for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) { in ixgbevf_get_ethtool_stats()
434 ixgbe_gstrings_stats[i].stat_offset; in ixgbevf_get_ethtool_stats()
436 ixgbe_gstrings_stats[i].base_stat_offset; in ixgbevf_get_ethtool_stats()
438 ixgbe_gstrings_stats[i].saved_reset_offset; in ixgbevf_get_ethtool_stats()
439 data[i] = ((ixgbe_gstrings_stats[i].sizeof_stat == in ixgbevf_get_ethtool_stats()
440 sizeof(u64)) ? *(u64 *)p : *(u32 *)p) - in ixgbevf_get_ethtool_stats()
441 ((ixgbe_gstrings_stats[i].sizeof_stat == in ixgbevf_get_ethtool_stats()
443 ((ixgbe_gstrings_stats[i].sizeof_stat == in ixgbevf_get_ethtool_stats()
452 int i; in ixgbevf_get_strings() local
460 for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) { in ixgbevf_get_strings()
461 memcpy(p, ixgbe_gstrings_stats[i].stat_string, in ixgbevf_get_strings()
471 struct ixgbe_hw *hw = &adapter->hw; in ixgbevf_link_test()
476 hw->mac.ops.check_link(hw, &link_speed, &link_up, true); in ixgbevf_link_test()
495 * as a single-element array) and special-case the tables.
499 * registers to be written without any read-back testing.
531 before = readl(adapter->hw.hw_addr + R); \
533 (adapter->hw.hw_addr + R)); \
534 val = readl(adapter->hw.hw_addr + R); \
536 hw_dbg(&adapter->hw, \
541 writel(before, adapter->hw.hw_addr + R); \
544 writel(before, adapter->hw.hw_addr + R); \
551 before = readl(adapter->hw.hw_addr + R); \
552 writel((W & M), (adapter->hw.hw_addr + R)); \
553 val = readl(adapter->hw.hw_addr + R); \
558 writel(before, (adapter->hw.hw_addr + R)); \
561 writel(before, (adapter->hw.hw_addr + R)); \
567 u32 i; in ixgbevf_reg_test() local
575 while (test->reg) { in ixgbevf_reg_test()
576 for (i = 0; i < test->array_len; i++) { in ixgbevf_reg_test()
577 switch (test->test_type) { in ixgbevf_reg_test()
579 REG_PATTERN_TEST(test->reg + (i * 0x40), in ixgbevf_reg_test()
580 test->mask, in ixgbevf_reg_test()
581 test->write); in ixgbevf_reg_test()
584 REG_SET_AND_CHECK(test->reg + (i * 0x40), in ixgbevf_reg_test()
585 test->mask, in ixgbevf_reg_test()
586 test->write); in ixgbevf_reg_test()
589 writel(test->write, in ixgbevf_reg_test()
590 (adapter->hw.hw_addr + test->reg) in ixgbevf_reg_test()
591 + (i * 0x40)); in ixgbevf_reg_test()
594 REG_PATTERN_TEST(test->reg + (i * 4), in ixgbevf_reg_test()
595 test->mask, in ixgbevf_reg_test()
596 test->write); in ixgbevf_reg_test()
599 REG_PATTERN_TEST(test->reg + (i * 8), in ixgbevf_reg_test()
600 test->mask, in ixgbevf_reg_test()
601 test->write); in ixgbevf_reg_test()
604 REG_PATTERN_TEST((test->reg + 4) + (i * 8), in ixgbevf_reg_test()
605 test->mask, in ixgbevf_reg_test()
606 test->write); in ixgbevf_reg_test()
623 set_bit(__IXGBEVF_TESTING, &adapter->state); in ixgbevf_diag_test()
624 if (eth_test->flags == ETH_TEST_FL_OFFLINE) { in ixgbevf_diag_test()
627 hw_dbg(&adapter->hw, "offline testing starting\n"); in ixgbevf_diag_test()
632 eth_test->flags |= ETH_TEST_FL_FAILED; in ixgbevf_diag_test()
640 hw_dbg(&adapter->hw, "register testing starting\n"); in ixgbevf_diag_test()
642 eth_test->flags |= ETH_TEST_FL_FAILED; in ixgbevf_diag_test()
646 clear_bit(__IXGBEVF_TESTING, &adapter->state); in ixgbevf_diag_test()
650 hw_dbg(&adapter->hw, "online testing starting\n"); in ixgbevf_diag_test()
653 eth_test->flags |= ETH_TEST_FL_FAILED; in ixgbevf_diag_test()
658 clear_bit(__IXGBEVF_TESTING, &adapter->state); in ixgbevf_diag_test()
668 if (!adapter->dev_closed) in ixgbevf_nway_reset()