diff options
Diffstat (limited to 'drivers/net/e1000/e1000_param.c')
| -rw-r--r-- | drivers/net/e1000/e1000_param.c | 104 |
1 files changed, 48 insertions, 56 deletions
diff --git a/drivers/net/e1000/e1000_param.c b/drivers/net/e1000/e1000_param.c index 38d2741ccae9..9fbb562dc964 100644 --- a/drivers/net/e1000/e1000_param.c +++ b/drivers/net/e1000/e1000_param.c | |||
| @@ -226,17 +226,16 @@ static int __devinit e1000_validate_option(unsigned int *value, | |||
| 226 | case enable_option: | 226 | case enable_option: |
| 227 | switch (*value) { | 227 | switch (*value) { |
| 228 | case OPTION_ENABLED: | 228 | case OPTION_ENABLED: |
| 229 | DPRINTK(PROBE, INFO, "%s Enabled\n", opt->name); | 229 | e_dev_info("%s Enabled\n", opt->name); |
| 230 | return 0; | 230 | return 0; |
| 231 | case OPTION_DISABLED: | 231 | case OPTION_DISABLED: |
| 232 | DPRINTK(PROBE, INFO, "%s Disabled\n", opt->name); | 232 | e_dev_info("%s Disabled\n", opt->name); |
| 233 | return 0; | 233 | return 0; |
| 234 | } | 234 | } |
| 235 | break; | 235 | break; |
| 236 | case range_option: | 236 | case range_option: |
| 237 | if (*value >= opt->arg.r.min && *value <= opt->arg.r.max) { | 237 | if (*value >= opt->arg.r.min && *value <= opt->arg.r.max) { |
| 238 | DPRINTK(PROBE, INFO, | 238 | e_dev_info("%s set to %i\n", opt->name, *value); |
| 239 | "%s set to %i\n", opt->name, *value); | ||
| 240 | return 0; | 239 | return 0; |
| 241 | } | 240 | } |
| 242 | break; | 241 | break; |
| @@ -248,7 +247,7 @@ static int __devinit e1000_validate_option(unsigned int *value, | |||
| 248 | ent = &opt->arg.l.p[i]; | 247 | ent = &opt->arg.l.p[i]; |
| 249 | if (*value == ent->i) { | 248 | if (*value == ent->i) { |
| 250 | if (ent->str[0] != '\0') | 249 | if (ent->str[0] != '\0') |
| 251 | DPRINTK(PROBE, INFO, "%s\n", ent->str); | 250 | e_dev_info("%s\n", ent->str); |
| 252 | return 0; | 251 | return 0; |
| 253 | } | 252 | } |
| 254 | } | 253 | } |
| @@ -258,7 +257,7 @@ static int __devinit e1000_validate_option(unsigned int *value, | |||
| 258 | BUG(); | 257 | BUG(); |
| 259 | } | 258 | } |
| 260 | 259 | ||
| 261 | DPRINTK(PROBE, INFO, "Invalid %s value specified (%i) %s\n", | 260 | e_dev_info("Invalid %s value specified (%i) %s\n", |
| 262 | opt->name, *value, opt->err); | 261 | opt->name, *value, opt->err); |
| 263 | *value = opt->def; | 262 | *value = opt->def; |
| 264 | return -1; | 263 | return -1; |
| @@ -283,9 +282,8 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter) | |||
| 283 | int bd = adapter->bd_number; | 282 | int bd = adapter->bd_number; |
| 284 | 283 | ||
| 285 | if (bd >= E1000_MAX_NIC) { | 284 | if (bd >= E1000_MAX_NIC) { |
| 286 | DPRINTK(PROBE, NOTICE, | 285 | e_dev_warn("Warning: no configuration for board #%i " |
| 287 | "Warning: no configuration for board #%i\n", bd); | 286 | "using defaults for all values\n", bd); |
| 288 | DPRINTK(PROBE, NOTICE, "Using defaults for all values\n"); | ||
| 289 | } | 287 | } |
| 290 | 288 | ||
| 291 | { /* Transmit Descriptor Count */ | 289 | { /* Transmit Descriptor Count */ |
| @@ -472,27 +470,31 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter) | |||
| 472 | adapter->itr = InterruptThrottleRate[bd]; | 470 | adapter->itr = InterruptThrottleRate[bd]; |
| 473 | switch (adapter->itr) { | 471 | switch (adapter->itr) { |
| 474 | case 0: | 472 | case 0: |
| 475 | DPRINTK(PROBE, INFO, "%s turned off\n", | 473 | e_dev_info("%s turned off\n", opt.name); |
| 476 | opt.name); | ||
| 477 | break; | 474 | break; |
| 478 | case 1: | 475 | case 1: |
| 479 | DPRINTK(PROBE, INFO, "%s set to dynamic mode\n", | 476 | e_dev_info("%s set to dynamic mode\n", |
| 480 | opt.name); | 477 | opt.name); |
| 481 | adapter->itr_setting = adapter->itr; | 478 | adapter->itr_setting = adapter->itr; |
| 482 | adapter->itr = 20000; | 479 | adapter->itr = 20000; |
| 483 | break; | 480 | break; |
| 484 | case 3: | 481 | case 3: |
| 485 | DPRINTK(PROBE, INFO, | 482 | e_dev_info("%s set to dynamic conservative " |
| 486 | "%s set to dynamic conservative mode\n", | 483 | "mode\n", opt.name); |
| 487 | opt.name); | ||
| 488 | adapter->itr_setting = adapter->itr; | 484 | adapter->itr_setting = adapter->itr; |
| 489 | adapter->itr = 20000; | 485 | adapter->itr = 20000; |
| 490 | break; | 486 | break; |
| 487 | case 4: | ||
| 488 | e_dev_info("%s set to simplified " | ||
| 489 | "(2000-8000) ints mode\n", opt.name); | ||
| 490 | adapter->itr_setting = adapter->itr; | ||
| 491 | break; | ||
| 491 | default: | 492 | default: |
| 492 | e1000_validate_option(&adapter->itr, &opt, | 493 | e1000_validate_option(&adapter->itr, &opt, |
| 493 | adapter); | 494 | adapter); |
| 494 | /* save the setting, because the dynamic bits change itr */ | 495 | /* save the setting, because the dynamic bits |
| 495 | /* clear the lower two bits because they are | 496 | * change itr. |
| 497 | * clear the lower two bits because they are | ||
| 496 | * used as control */ | 498 | * used as control */ |
| 497 | adapter->itr_setting = adapter->itr & ~3; | 499 | adapter->itr_setting = adapter->itr & ~3; |
| 498 | break; | 500 | break; |
| @@ -543,19 +545,18 @@ static void __devinit e1000_check_fiber_options(struct e1000_adapter *adapter) | |||
| 543 | { | 545 | { |
| 544 | int bd = adapter->bd_number; | 546 | int bd = adapter->bd_number; |
| 545 | if (num_Speed > bd) { | 547 | if (num_Speed > bd) { |
| 546 | DPRINTK(PROBE, INFO, "Speed not valid for fiber adapters, " | 548 | e_dev_info("Speed not valid for fiber adapters, parameter " |
| 547 | "parameter ignored\n"); | 549 | "ignored\n"); |
| 548 | } | 550 | } |
| 549 | 551 | ||
| 550 | if (num_Duplex > bd) { | 552 | if (num_Duplex > bd) { |
| 551 | DPRINTK(PROBE, INFO, "Duplex not valid for fiber adapters, " | 553 | e_dev_info("Duplex not valid for fiber adapters, parameter " |
| 552 | "parameter ignored\n"); | 554 | "ignored\n"); |
| 553 | } | 555 | } |
| 554 | 556 | ||
| 555 | if ((num_AutoNeg > bd) && (AutoNeg[bd] != 0x20)) { | 557 | if ((num_AutoNeg > bd) && (AutoNeg[bd] != 0x20)) { |
| 556 | DPRINTK(PROBE, INFO, "AutoNeg other than 1000/Full is " | 558 | e_dev_info("AutoNeg other than 1000/Full is not valid for fiber" |
| 557 | "not valid for fiber adapters, " | 559 | "adapters, parameter ignored\n"); |
| 558 | "parameter ignored\n"); | ||
| 559 | } | 560 | } |
| 560 | } | 561 | } |
| 561 | 562 | ||
| @@ -619,9 +620,8 @@ static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter) | |||
| 619 | } | 620 | } |
| 620 | 621 | ||
| 621 | if ((num_AutoNeg > bd) && (speed != 0 || dplx != 0)) { | 622 | if ((num_AutoNeg > bd) && (speed != 0 || dplx != 0)) { |
| 622 | DPRINTK(PROBE, INFO, | 623 | e_dev_info("AutoNeg specified along with Speed or Duplex, " |
| 623 | "AutoNeg specified along with Speed or Duplex, " | 624 | "parameter ignored\n"); |
| 624 | "parameter ignored\n"); | ||
| 625 | adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT; | 625 | adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT; |
| 626 | } else { /* Autoneg */ | 626 | } else { /* Autoneg */ |
| 627 | static const struct e1000_opt_list an_list[] = | 627 | static const struct e1000_opt_list an_list[] = |
| @@ -680,79 +680,72 @@ static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter) | |||
| 680 | case 0: | 680 | case 0: |
| 681 | adapter->hw.autoneg = adapter->fc_autoneg = 1; | 681 | adapter->hw.autoneg = adapter->fc_autoneg = 1; |
| 682 | if ((num_Speed > bd) && (speed != 0 || dplx != 0)) | 682 | if ((num_Speed > bd) && (speed != 0 || dplx != 0)) |
| 683 | DPRINTK(PROBE, INFO, | 683 | e_dev_info("Speed and duplex autonegotiation " |
| 684 | "Speed and duplex autonegotiation enabled\n"); | 684 | "enabled\n"); |
| 685 | break; | 685 | break; |
| 686 | case HALF_DUPLEX: | 686 | case HALF_DUPLEX: |
| 687 | DPRINTK(PROBE, INFO, "Half Duplex specified without Speed\n"); | 687 | e_dev_info("Half Duplex specified without Speed\n"); |
| 688 | DPRINTK(PROBE, INFO, "Using Autonegotiation at " | 688 | e_dev_info("Using Autonegotiation at Half Duplex only\n"); |
| 689 | "Half Duplex only\n"); | ||
| 690 | adapter->hw.autoneg = adapter->fc_autoneg = 1; | 689 | adapter->hw.autoneg = adapter->fc_autoneg = 1; |
| 691 | adapter->hw.autoneg_advertised = ADVERTISE_10_HALF | | 690 | adapter->hw.autoneg_advertised = ADVERTISE_10_HALF | |
| 692 | ADVERTISE_100_HALF; | 691 | ADVERTISE_100_HALF; |
| 693 | break; | 692 | break; |
| 694 | case FULL_DUPLEX: | 693 | case FULL_DUPLEX: |
| 695 | DPRINTK(PROBE, INFO, "Full Duplex specified without Speed\n"); | 694 | e_dev_info("Full Duplex specified without Speed\n"); |
| 696 | DPRINTK(PROBE, INFO, "Using Autonegotiation at " | 695 | e_dev_info("Using Autonegotiation at Full Duplex only\n"); |
| 697 | "Full Duplex only\n"); | ||
| 698 | adapter->hw.autoneg = adapter->fc_autoneg = 1; | 696 | adapter->hw.autoneg = adapter->fc_autoneg = 1; |
| 699 | adapter->hw.autoneg_advertised = ADVERTISE_10_FULL | | 697 | adapter->hw.autoneg_advertised = ADVERTISE_10_FULL | |
| 700 | ADVERTISE_100_FULL | | 698 | ADVERTISE_100_FULL | |
| 701 | ADVERTISE_1000_FULL; | 699 | ADVERTISE_1000_FULL; |
| 702 | break; | 700 | break; |
| 703 | case SPEED_10: | 701 | case SPEED_10: |
| 704 | DPRINTK(PROBE, INFO, "10 Mbps Speed specified " | 702 | e_dev_info("10 Mbps Speed specified without Duplex\n"); |
| 705 | "without Duplex\n"); | 703 | e_dev_info("Using Autonegotiation at 10 Mbps only\n"); |
| 706 | DPRINTK(PROBE, INFO, "Using Autonegotiation at 10 Mbps only\n"); | ||
| 707 | adapter->hw.autoneg = adapter->fc_autoneg = 1; | 704 | adapter->hw.autoneg = adapter->fc_autoneg = 1; |
| 708 | adapter->hw.autoneg_advertised = ADVERTISE_10_HALF | | 705 | adapter->hw.autoneg_advertised = ADVERTISE_10_HALF | |
| 709 | ADVERTISE_10_FULL; | 706 | ADVERTISE_10_FULL; |
| 710 | break; | 707 | break; |
| 711 | case SPEED_10 + HALF_DUPLEX: | 708 | case SPEED_10 + HALF_DUPLEX: |
| 712 | DPRINTK(PROBE, INFO, "Forcing to 10 Mbps Half Duplex\n"); | 709 | e_dev_info("Forcing to 10 Mbps Half Duplex\n"); |
| 713 | adapter->hw.autoneg = adapter->fc_autoneg = 0; | 710 | adapter->hw.autoneg = adapter->fc_autoneg = 0; |
| 714 | adapter->hw.forced_speed_duplex = e1000_10_half; | 711 | adapter->hw.forced_speed_duplex = e1000_10_half; |
| 715 | adapter->hw.autoneg_advertised = 0; | 712 | adapter->hw.autoneg_advertised = 0; |
| 716 | break; | 713 | break; |
| 717 | case SPEED_10 + FULL_DUPLEX: | 714 | case SPEED_10 + FULL_DUPLEX: |
| 718 | DPRINTK(PROBE, INFO, "Forcing to 10 Mbps Full Duplex\n"); | 715 | e_dev_info("Forcing to 10 Mbps Full Duplex\n"); |
| 719 | adapter->hw.autoneg = adapter->fc_autoneg = 0; | 716 | adapter->hw.autoneg = adapter->fc_autoneg = 0; |
| 720 | adapter->hw.forced_speed_duplex = e1000_10_full; | 717 | adapter->hw.forced_speed_duplex = e1000_10_full; |
| 721 | adapter->hw.autoneg_advertised = 0; | 718 | adapter->hw.autoneg_advertised = 0; |
| 722 | break; | 719 | break; |
| 723 | case SPEED_100: | 720 | case SPEED_100: |
| 724 | DPRINTK(PROBE, INFO, "100 Mbps Speed specified " | 721 | e_dev_info("100 Mbps Speed specified without Duplex\n"); |
| 725 | "without Duplex\n"); | 722 | e_dev_info("Using Autonegotiation at 100 Mbps only\n"); |
| 726 | DPRINTK(PROBE, INFO, "Using Autonegotiation at " | ||
| 727 | "100 Mbps only\n"); | ||
| 728 | adapter->hw.autoneg = adapter->fc_autoneg = 1; | 723 | adapter->hw.autoneg = adapter->fc_autoneg = 1; |
| 729 | adapter->hw.autoneg_advertised = ADVERTISE_100_HALF | | 724 | adapter->hw.autoneg_advertised = ADVERTISE_100_HALF | |
| 730 | ADVERTISE_100_FULL; | 725 | ADVERTISE_100_FULL; |
| 731 | break; | 726 | break; |
| 732 | case SPEED_100 + HALF_DUPLEX: | 727 | case SPEED_100 + HALF_DUPLEX: |
| 733 | DPRINTK(PROBE, INFO, "Forcing to 100 Mbps Half Duplex\n"); | 728 | e_dev_info("Forcing to 100 Mbps Half Duplex\n"); |
| 734 | adapter->hw.autoneg = adapter->fc_autoneg = 0; | 729 | adapter->hw.autoneg = adapter->fc_autoneg = 0; |
| 735 | adapter->hw.forced_speed_duplex = e1000_100_half; | 730 | adapter->hw.forced_speed_duplex = e1000_100_half; |
| 736 | adapter->hw.autoneg_advertised = 0; | 731 | adapter->hw.autoneg_advertised = 0; |
| 737 | break; | 732 | break; |
| 738 | case SPEED_100 + FULL_DUPLEX: | 733 | case SPEED_100 + FULL_DUPLEX: |
| 739 | DPRINTK(PROBE, INFO, "Forcing to 100 Mbps Full Duplex\n"); | 734 | e_dev_info("Forcing to 100 Mbps Full Duplex\n"); |
| 740 | adapter->hw.autoneg = adapter->fc_autoneg = 0; | 735 | adapter->hw.autoneg = adapter->fc_autoneg = 0; |
| 741 | adapter->hw.forced_speed_duplex = e1000_100_full; | 736 | adapter->hw.forced_speed_duplex = e1000_100_full; |
| 742 | adapter->hw.autoneg_advertised = 0; | 737 | adapter->hw.autoneg_advertised = 0; |
| 743 | break; | 738 | break; |
| 744 | case SPEED_1000: | 739 | case SPEED_1000: |
| 745 | DPRINTK(PROBE, INFO, "1000 Mbps Speed specified without " | 740 | e_dev_info("1000 Mbps Speed specified without Duplex\n"); |
| 746 | "Duplex\n"); | ||
| 747 | goto full_duplex_only; | 741 | goto full_duplex_only; |
| 748 | case SPEED_1000 + HALF_DUPLEX: | 742 | case SPEED_1000 + HALF_DUPLEX: |
| 749 | DPRINTK(PROBE, INFO, | 743 | e_dev_info("Half Duplex is not supported at 1000 Mbps\n"); |
| 750 | "Half Duplex is not supported at 1000 Mbps\n"); | ||
| 751 | /* fall through */ | 744 | /* fall through */ |
| 752 | case SPEED_1000 + FULL_DUPLEX: | 745 | case SPEED_1000 + FULL_DUPLEX: |
| 753 | full_duplex_only: | 746 | full_duplex_only: |
| 754 | DPRINTK(PROBE, INFO, | 747 | e_dev_info("Using Autonegotiation at 1000 Mbps Full Duplex " |
| 755 | "Using Autonegotiation at 1000 Mbps Full Duplex only\n"); | 748 | "only\n"); |
| 756 | adapter->hw.autoneg = adapter->fc_autoneg = 1; | 749 | adapter->hw.autoneg = adapter->fc_autoneg = 1; |
| 757 | adapter->hw.autoneg_advertised = ADVERTISE_1000_FULL; | 750 | adapter->hw.autoneg_advertised = ADVERTISE_1000_FULL; |
| 758 | break; | 751 | break; |
| @@ -762,9 +755,8 @@ full_duplex_only: | |||
| 762 | 755 | ||
| 763 | /* Speed, AutoNeg and MDI/MDI-X must all play nice */ | 756 | /* Speed, AutoNeg and MDI/MDI-X must all play nice */ |
| 764 | if (e1000_validate_mdi_setting(&(adapter->hw)) < 0) { | 757 | if (e1000_validate_mdi_setting(&(adapter->hw)) < 0) { |
| 765 | DPRINTK(PROBE, INFO, | 758 | e_dev_info("Speed, AutoNeg and MDI-X specs are incompatible. " |
| 766 | "Speed, AutoNeg and MDI-X specifications are " | 759 | "Setting MDI-X to a compatible value.\n"); |
| 767 | "incompatible. Setting MDI-X to a compatible value.\n"); | ||
| 768 | } | 760 | } |
| 769 | } | 761 | } |
| 770 | 762 | ||
