Lines Matching +full:auto +full:- +full:range
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright(c) 1999 - 2006 Intel Corporation. */
12 #define OPTION_UNSET -1
30 * Valid Range: 80-256 for 82542 and 82543 gigabit ethernet controllers
31 * Valid Range: 80-4096 for 82544 and newer
39 * Valid Range: 80-256 for 82542 and 82543 gigabit ethernet controllers
40 * Valid Range: 80-4096 for 82544 and newer
48 * Valid Range: 0, 10, 100, 1000
49 * - 0 - auto-negotiate at all supported speeds
50 * - 10 - only link at 10 Mbps
51 * - 100 - only link at 100 Mbps
52 * - 1000 - only link at 1000 Mbps
60 * Valid Range: 0-2
61 * - 0 - auto-negotiate for duplex
62 * - 1 - only link at half duplex
63 * - 2 - only link at full duplex
69 /* Auto-negotiation Advertisement Override
71 * Valid Range: 0x01-0x0F, 0x20-0x2F (copper); 0x20 (fiber)
74 * combinations should be advertised during auto-negotiation.
83 E1000_PARAM(AutoNeg, "Advertised auto-negotiation setting");
88 * Valid Range: 0-3
89 * - 0 - No Flow Control
90 * - 1 - Rx only, respond to PAUSE frames but do not generate them
91 * - 2 - Tx only, generate PAUSE frames but ignore them on receive
92 * - 3 - Full Flow Control Support
98 /* XsumRX - Receive Checksum Offload Enable/Disable
100 * Valid Range: 0, 1
101 * - 0 - disables all checksum offload
102 * - 1 - enables receive IP/TCP/UDP checksum offload
103 * on 82543 and newer -based NICs
112 * Valid Range: 0-65535
121 * Valid Range: 0-65535
131 * Valid Range: 0-65535
140 * Valid Range: 0-65535
149 * Valid Range: 100-100000 (0=off, 1=dynamic, 3=dynamic conservative)
158 * Valid Range: 0, 1
186 *value = opt->def; in e1000_validate_option()
190 switch (opt->type) { in e1000_validate_option()
194 e_dev_info("%s Enabled\n", opt->name); in e1000_validate_option()
197 e_dev_info("%s Disabled\n", opt->name); in e1000_validate_option()
202 if (*value >= opt->arg.r.min && *value <= opt->arg.r.max) { in e1000_validate_option()
203 e_dev_info("%s set to %i\n", opt->name, *value); in e1000_validate_option()
211 for (i = 0; i < opt->arg.l.nr; i++) { in e1000_validate_option()
212 ent = &opt->arg.l.p[i]; in e1000_validate_option()
213 if (*value == ent->i) { in e1000_validate_option()
214 if (ent->str[0] != '\0') in e1000_validate_option()
215 e_dev_info("%s\n", ent->str); in e1000_validate_option()
226 opt->name, *value, opt->err); in e1000_validate_option()
227 *value = opt->def; in e1000_validate_option()
228 return -1; in e1000_validate_option()
235 * e1000_check_options - Range Checking for Command Line Parameters
246 int bd = adapter->bd_number; in e1000_check_options()
254 struct e1000_tx_ring *tx_ring = adapter->tx_ring; in e1000_check_options()
256 e1000_mac_type mac_type = adapter->hw.mac_type; in e1000_check_options()
271 tx_ring->count = TxDescriptors[bd]; in e1000_check_options()
272 e1000_validate_option(&tx_ring->count, &opt, adapter); in e1000_check_options()
273 tx_ring->count = ALIGN(tx_ring->count, in e1000_check_options()
276 tx_ring->count = opt.def; in e1000_check_options()
278 for (i = 0; i < adapter->num_tx_queues; i++) in e1000_check_options()
279 tx_ring[i].count = tx_ring->count; in e1000_check_options()
282 struct e1000_rx_ring *rx_ring = adapter->rx_ring; in e1000_check_options()
284 e1000_mac_type mac_type = adapter->hw.mac_type; in e1000_check_options()
300 rx_ring->count = RxDescriptors[bd]; in e1000_check_options()
301 e1000_validate_option(&rx_ring->count, &opt, adapter); in e1000_check_options()
302 rx_ring->count = ALIGN(rx_ring->count, in e1000_check_options()
305 rx_ring->count = opt.def; in e1000_check_options()
307 for (i = 0; i < adapter->num_rx_queues; i++) in e1000_check_options()
308 rx_ring[i].count = rx_ring->count; in e1000_check_options()
321 adapter->rx_csum = rx_csum; in e1000_check_options()
323 adapter->rx_csum = opt.def; in e1000_check_options()
348 adapter->hw.fc = adapter->hw.original_fc = fc; in e1000_check_options()
350 adapter->hw.fc = adapter->hw.original_fc = opt.def; in e1000_check_options()
364 adapter->tx_int_delay = TxIntDelay[bd]; in e1000_check_options()
365 e1000_validate_option(&adapter->tx_int_delay, &opt, in e1000_check_options()
368 adapter->tx_int_delay = opt.def; in e1000_check_options()
382 adapter->tx_abs_int_delay = TxAbsIntDelay[bd]; in e1000_check_options()
383 e1000_validate_option(&adapter->tx_abs_int_delay, &opt, in e1000_check_options()
386 adapter->tx_abs_int_delay = opt.def; in e1000_check_options()
400 adapter->rx_int_delay = RxIntDelay[bd]; in e1000_check_options()
401 e1000_validate_option(&adapter->rx_int_delay, &opt, in e1000_check_options()
404 adapter->rx_int_delay = opt.def; in e1000_check_options()
418 adapter->rx_abs_int_delay = RxAbsIntDelay[bd]; in e1000_check_options()
419 e1000_validate_option(&adapter->rx_abs_int_delay, &opt, in e1000_check_options()
422 adapter->rx_abs_int_delay = opt.def; in e1000_check_options()
436 adapter->itr = InterruptThrottleRate[bd]; in e1000_check_options()
437 switch (adapter->itr) { in e1000_check_options()
444 adapter->itr_setting = adapter->itr; in e1000_check_options()
445 adapter->itr = 20000; in e1000_check_options()
450 adapter->itr_setting = adapter->itr; in e1000_check_options()
451 adapter->itr = 20000; in e1000_check_options()
455 "(2000-8000) ints mode\n", opt.name); in e1000_check_options()
456 adapter->itr_setting = adapter->itr; in e1000_check_options()
459 e1000_validate_option(&adapter->itr, &opt, in e1000_check_options()
466 adapter->itr_setting = adapter->itr & ~3; in e1000_check_options()
470 adapter->itr_setting = opt.def; in e1000_check_options()
471 adapter->itr = 20000; in e1000_check_options()
485 adapter->smart_power_down = spd; in e1000_check_options()
487 adapter->smart_power_down = opt.def; in e1000_check_options()
491 switch (adapter->hw.media_type) { in e1000_check_options()
505 * e1000_check_fiber_options - Range Checking for Link Options, Fiber Version
512 int bd = adapter->bd_number; in e1000_check_fiber_options()
530 * e1000_check_copper_options - Range Checking for Link Options, Copper Version
539 int bd = adapter->bd_number; in e1000_check_copper_options()
590 adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT; in e1000_check_copper_options()
641 adapter->hw.autoneg_advertised = an; in e1000_check_copper_options()
646 adapter->hw.autoneg = adapter->fc_autoneg = 1; in e1000_check_copper_options()
654 adapter->hw.autoneg = adapter->fc_autoneg = 1; in e1000_check_copper_options()
655 adapter->hw.autoneg_advertised = ADVERTISE_10_HALF | in e1000_check_copper_options()
661 adapter->hw.autoneg = adapter->fc_autoneg = 1; in e1000_check_copper_options()
662 adapter->hw.autoneg_advertised = ADVERTISE_10_FULL | in e1000_check_copper_options()
669 adapter->hw.autoneg = adapter->fc_autoneg = 1; in e1000_check_copper_options()
670 adapter->hw.autoneg_advertised = ADVERTISE_10_HALF | in e1000_check_copper_options()
675 adapter->hw.autoneg = adapter->fc_autoneg = 0; in e1000_check_copper_options()
676 adapter->hw.forced_speed_duplex = e1000_10_half; in e1000_check_copper_options()
677 adapter->hw.autoneg_advertised = 0; in e1000_check_copper_options()
681 adapter->hw.autoneg = adapter->fc_autoneg = 0; in e1000_check_copper_options()
682 adapter->hw.forced_speed_duplex = e1000_10_full; in e1000_check_copper_options()
683 adapter->hw.autoneg_advertised = 0; in e1000_check_copper_options()
688 adapter->hw.autoneg = adapter->fc_autoneg = 1; in e1000_check_copper_options()
689 adapter->hw.autoneg_advertised = ADVERTISE_100_HALF | in e1000_check_copper_options()
694 adapter->hw.autoneg = adapter->fc_autoneg = 0; in e1000_check_copper_options()
695 adapter->hw.forced_speed_duplex = e1000_100_half; in e1000_check_copper_options()
696 adapter->hw.autoneg_advertised = 0; in e1000_check_copper_options()
700 adapter->hw.autoneg = adapter->fc_autoneg = 0; in e1000_check_copper_options()
701 adapter->hw.forced_speed_duplex = e1000_100_full; in e1000_check_copper_options()
702 adapter->hw.autoneg_advertised = 0; in e1000_check_copper_options()
714 adapter->hw.autoneg = adapter->fc_autoneg = 1; in e1000_check_copper_options()
715 adapter->hw.autoneg_advertised = ADVERTISE_1000_FULL; in e1000_check_copper_options()
721 /* Speed, AutoNeg and MDI/MDI-X must all play nice */ in e1000_check_copper_options()
722 if (e1000_validate_mdi_setting(&(adapter->hw)) < 0) { in e1000_check_copper_options()
723 e_dev_info("Speed, AutoNeg and MDI-X specs are incompatible. " in e1000_check_copper_options()
724 "Setting MDI-X to a compatible value.\n"); in e1000_check_copper_options()