qlcnic: fix memory leaks
[safe/jmp/linux-2.6] / drivers / net / e1000 / e1000_param.c
index f8862e2..10d8d98 100644 (file)
@@ -46,7 +46,7 @@
 #define E1000_PARAM_INIT { [0 ... E1000_MAX_NIC] = OPTION_UNSET }
 #define E1000_PARAM(X, desc) \
        static int __devinitdata X[E1000_MAX_NIC+1] = E1000_PARAM_INIT; \
-       static int num_##X = 0; \
+       static unsigned int num_##X; \
        module_param_array_named(X, X, int, &num_##X, 0); \
        MODULE_PARM_DESC(X, desc);
 
@@ -188,19 +188,11 @@ E1000_PARAM(InterruptThrottleRate, "Interrupt Throttling Rate");
  */
 E1000_PARAM(SmartPowerDownEnable, "Enable PHY smart power down");
 
-/* Enable Kumeran Lock Loss workaround
- *
- * Valid Range: 0, 1
- *
- * Default Value: 1 (enabled)
- */
-E1000_PARAM(KumeranLockLoss, "Enable Kumeran lock loss workaround");
-
 struct e1000_option {
        enum { enable_option, range_option, list_option } type;
-       char *name;
-       char *err;
-       int  def;
+       const char *name;
+       const char *err;
+       int def;
        union {
                struct { /* range_option info */
                        int min;
@@ -208,14 +200,14 @@ struct e1000_option {
                } r;
                struct { /* list_option info */
                        int nr;
-                       struct e1000_opt_list { int i; char *str; } *p;
+                       const struct e1000_opt_list { int i; char *str; } *p;
                } l;
        } arg;
 };
 
-static int __devinit
-e1000_validate_option(int *value, struct e1000_option *opt,
-               struct e1000_adapter *adapter)
+static int __devinit e1000_validate_option(unsigned int *value,
+                                          const struct e1000_option *opt,
+                                          struct e1000_adapter *adapter)
 {
        if (*value == OPTION_UNSET) {
                *value = opt->def;
@@ -226,29 +218,28 @@ e1000_validate_option(int *value, struct e1000_option *opt,
        case enable_option:
                switch (*value) {
                case OPTION_ENABLED:
-                       DPRINTK(PROBE, INFO, "%s Enabled\n", opt->name);
+                       e_dev_info("%s Enabled\n", opt->name);
                        return 0;
                case OPTION_DISABLED:
-                       DPRINTK(PROBE, INFO, "%s Disabled\n", opt->name);
+                       e_dev_info("%s Disabled\n", opt->name);
                        return 0;
                }
                break;
        case range_option:
                if (*value >= opt->arg.r.min && *value <= opt->arg.r.max) {
-                       DPRINTK(PROBE, INFO,
-                                       "%s set to %i\n", opt->name, *value);
+                       e_dev_info("%s set to %i\n", opt->name, *value);
                        return 0;
                }
                break;
        case list_option: {
                int i;
-               struct e1000_opt_list *ent;
+               const struct e1000_opt_list *ent;
 
                for (i = 0; i < opt->arg.l.nr; i++) {
                        ent = &opt->arg.l.p[i];
                        if (*value == ent->i) {
                                if (ent->str[0] != '\0')
-                                       DPRINTK(PROBE, INFO, "%s\n", ent->str);
+                                       e_dev_info("%s\n", ent->str);
                                return 0;
                        }
                }
@@ -258,7 +249,7 @@ e1000_validate_option(int *value, struct e1000_option *opt,
                BUG();
        }
 
-       DPRINTK(PROBE, INFO, "Invalid %s value specified (%i) %s\n",
+       e_dev_info("Invalid %s value specified (%i) %s\n",
               opt->name, *value, opt->err);
        *value = opt->def;
        return -1;
@@ -277,35 +268,37 @@ static void e1000_check_copper_options(struct e1000_adapter *adapter);
  * in a variable in the adapter structure.
  **/
 
-void __devinit
-e1000_check_options(struct e1000_adapter *adapter)
+void __devinit e1000_check_options(struct e1000_adapter *adapter)
 {
+       struct e1000_option opt;
        int bd = adapter->bd_number;
+
        if (bd >= E1000_MAX_NIC) {
-               DPRINTK(PROBE, NOTICE,
-                      "Warning: no configuration for board #%i\n", bd);
-               DPRINTK(PROBE, NOTICE, "Using defaults for all values\n");
+               e_dev_warn("Warning: no configuration for board #%i "
+                          "using defaults for all values\n", bd);
        }
 
        { /* Transmit Descriptor Count */
-               struct e1000_option opt = {
+               struct e1000_tx_ring *tx_ring = adapter->tx_ring;
+               int i;
+               e1000_mac_type mac_type = adapter->hw.mac_type;
+
+               opt = (struct e1000_option) {
                        .type = range_option,
                        .name = "Transmit Descriptors",
                        .err  = "using default of "
                                __MODULE_STRING(E1000_DEFAULT_TXD),
                        .def  = E1000_DEFAULT_TXD,
-                       .arg  = { .r = { .min = E1000_MIN_TXD }}
+                       .arg  = { .r = {
+                               .min = E1000_MIN_TXD,
+                               .max = mac_type < e1000_82544 ? E1000_MAX_TXD : E1000_MAX_82544_TXD
+                               }}
                };
-               struct e1000_tx_ring *tx_ring = adapter->tx_ring;
-               int i;
-               e1000_mac_type mac_type = adapter->hw.mac_type;
-               opt.arg.r.max = mac_type < e1000_82544 ?
-                       E1000_MAX_TXD : E1000_MAX_82544_TXD;
 
                if (num_TxDescriptors > bd) {
                        tx_ring->count = TxDescriptors[bd];
                        e1000_validate_option(&tx_ring->count, &opt, adapter);
-                       E1000_ROUNDUP(tx_ring->count,
+                       tx_ring->count = ALIGN(tx_ring->count,
                                                REQ_TX_DESCRIPTOR_MULTIPLE);
                } else {
                        tx_ring->count = opt.def;
@@ -314,24 +307,26 @@ e1000_check_options(struct e1000_adapter *adapter)
                        tx_ring[i].count = tx_ring->count;
        }
        { /* Receive Descriptor Count */
-               struct e1000_option opt = {
+               struct e1000_rx_ring *rx_ring = adapter->rx_ring;
+               int i;
+               e1000_mac_type mac_type = adapter->hw.mac_type;
+
+               opt = (struct e1000_option) {
                        .type = range_option,
                        .name = "Receive Descriptors",
                        .err  = "using default of "
                                __MODULE_STRING(E1000_DEFAULT_RXD),
                        .def  = E1000_DEFAULT_RXD,
-                       .arg  = { .r = { .min = E1000_MIN_RXD }}
+                       .arg  = { .r = {
+                               .min = E1000_MIN_RXD,
+                               .max = mac_type < e1000_82544 ? E1000_MAX_RXD : E1000_MAX_82544_RXD
+                       }}
                };
-               struct e1000_rx_ring *rx_ring = adapter->rx_ring;
-               int i;
-               e1000_mac_type mac_type = adapter->hw.mac_type;
-               opt.arg.r.max = mac_type < e1000_82544 ? E1000_MAX_RXD :
-                       E1000_MAX_82544_RXD;
 
                if (num_RxDescriptors > bd) {
                        rx_ring->count = RxDescriptors[bd];
                        e1000_validate_option(&rx_ring->count, &opt, adapter);
-                       E1000_ROUNDUP(rx_ring->count,
+                       rx_ring->count = ALIGN(rx_ring->count,
                                                REQ_RX_DESCRIPTOR_MULTIPLE);
                } else {
                        rx_ring->count = opt.def;
@@ -340,7 +335,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                        rx_ring[i].count = rx_ring->count;
        }
        { /* Checksum Offload Enable/Disable */
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = enable_option,
                        .name = "Checksum Offload",
                        .err  = "defaulting to Enabled",
@@ -348,7 +343,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                };
 
                if (num_XsumRX > bd) {
-                       int rx_csum = XsumRX[bd];
+                       unsigned int rx_csum = XsumRX[bd];
                        e1000_validate_option(&rx_csum, &opt, adapter);
                        adapter->rx_csum = rx_csum;
                } else {
@@ -364,7 +359,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                         { E1000_FC_FULL,    "Flow Control Enabled" },
                         { E1000_FC_DEFAULT, "Flow Control Hardware Default" }};
 
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = list_option,
                        .name = "Flow Control",
                        .err  = "reading default settings from EEPROM",
@@ -374,7 +369,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                };
 
                if (num_FlowControl > bd) {
-                       int fc = FlowControl[bd];
+                       unsigned int fc = FlowControl[bd];
                        e1000_validate_option(&fc, &opt, adapter);
                        adapter->hw.fc = adapter->hw.original_fc = fc;
                } else {
@@ -382,7 +377,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                }
        }
        { /* Transmit Interrupt Delay */
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = range_option,
                        .name = "Transmit Interrupt Delay",
                        .err  = "using default of " __MODULE_STRING(DEFAULT_TIDV),
@@ -400,7 +395,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                }
        }
        { /* Transmit Absolute Interrupt Delay */
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = range_option,
                        .name = "Transmit Absolute Interrupt Delay",
                        .err  = "using default of " __MODULE_STRING(DEFAULT_TADV),
@@ -418,7 +413,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                }
        }
        { /* Receive Interrupt Delay */
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = range_option,
                        .name = "Receive Interrupt Delay",
                        .err  = "using default of " __MODULE_STRING(DEFAULT_RDTR),
@@ -436,7 +431,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                }
        }
        { /* Receive Absolute Interrupt Delay */
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = range_option,
                        .name = "Receive Absolute Interrupt Delay",
                        .err  = "using default of " __MODULE_STRING(DEFAULT_RADV),
@@ -454,7 +449,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                }
        }
        { /* Interrupt Throttling Rate */
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = range_option,
                        .name = "Interrupt Throttling Rate (ints/sec)",
                        .err  = "using default of " __MODULE_STRING(DEFAULT_ITR),
@@ -467,27 +462,31 @@ e1000_check_options(struct e1000_adapter *adapter)
                        adapter->itr = InterruptThrottleRate[bd];
                        switch (adapter->itr) {
                        case 0:
-                               DPRINTK(PROBE, INFO, "%s turned off\n",
-                                       opt.name);
+                               e_dev_info("%s turned off\n", opt.name);
                                break;
                        case 1:
-                               DPRINTK(PROBE, INFO, "%s set to dynamic mode\n",
-                                       opt.name);
+                               e_dev_info("%s set to dynamic mode\n",
+                                          opt.name);
                                adapter->itr_setting = adapter->itr;
                                adapter->itr = 20000;
                                break;
                        case 3:
-                               DPRINTK(PROBE, INFO,
-                                       "%s set to dynamic conservative mode\n",
-                                       opt.name);
+                               e_dev_info("%s set to dynamic conservative "
+                                          "mode\n", opt.name);
                                adapter->itr_setting = adapter->itr;
                                adapter->itr = 20000;
                                break;
+                       case 4:
+                               e_dev_info("%s set to simplified "
+                                          "(2000-8000) ints mode\n", opt.name);
+                               adapter->itr_setting = adapter->itr;
+                               break;
                        default:
                                e1000_validate_option(&adapter->itr, &opt,
                                        adapter);
-                               /* save the setting, because the dynamic bits change itr */
-                               /* clear the lower two bits because they are
+                               /* save the setting, because the dynamic bits
+                                * change itr.
+                                * clear the lower two bits because they are
                                 * used as control */
                                adapter->itr_setting = adapter->itr & ~3;
                                break;
@@ -498,7 +497,7 @@ e1000_check_options(struct e1000_adapter *adapter)
                }
        }
        { /* Smart Power Down */
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = enable_option,
                        .name = "PHY Smart Power Down",
                        .err  = "defaulting to Disabled",
@@ -506,29 +505,13 @@ e1000_check_options(struct e1000_adapter *adapter)
                };
 
                if (num_SmartPowerDownEnable > bd) {
-                       int spd = SmartPowerDownEnable[bd];
+                       unsigned int spd = SmartPowerDownEnable[bd];
                        e1000_validate_option(&spd, &opt, adapter);
                        adapter->smart_power_down = spd;
                } else {
                        adapter->smart_power_down = opt.def;
                }
        }
-       { /* Kumeran Lock Loss Workaround */
-               struct e1000_option opt = {
-                       .type = enable_option,
-                       .name = "Kumeran Lock Loss Workaround",
-                       .err  = "defaulting to Enabled",
-                       .def  = OPTION_ENABLED
-               };
-
-               if (num_KumeranLockLoss > bd) {
-                       int kmrn_lock_loss = KumeranLockLoss[bd];
-                       e1000_validate_option(&kmrn_lock_loss, &opt, adapter);
-                       adapter->hw.kmrn_lock_loss_workaround_disabled = !kmrn_lock_loss;
-               } else {
-                       adapter->hw.kmrn_lock_loss_workaround_disabled = !opt.def;
-               }
-       }
 
        switch (adapter->hw.media_type) {
        case e1000_media_type_fiber:
@@ -550,24 +533,22 @@ e1000_check_options(struct e1000_adapter *adapter)
  * Handles speed and duplex options on fiber adapters
  **/
 
-static void __devinit
-e1000_check_fiber_options(struct e1000_adapter *adapter)
+static void __devinit e1000_check_fiber_options(struct e1000_adapter *adapter)
 {
        int bd = adapter->bd_number;
        if (num_Speed > bd) {
-               DPRINTK(PROBE, INFO, "Speed not valid for fiber adapters, "
-                      "parameter ignored\n");
+               e_dev_info("Speed not valid for fiber adapters, parameter "
+                          "ignored\n");
        }
 
        if (num_Duplex > bd) {
-               DPRINTK(PROBE, INFO, "Duplex not valid for fiber adapters, "
-                      "parameter ignored\n");
+               e_dev_info("Duplex not valid for fiber adapters, parameter "
+                          "ignored\n");
        }
 
        if ((num_AutoNeg > bd) && (AutoNeg[bd] != 0x20)) {
-               DPRINTK(PROBE, INFO, "AutoNeg other than 1000/Full is "
-                                "not valid for fiber adapters, "
-                                "parameter ignored\n");
+               e_dev_info("AutoNeg other than 1000/Full is not valid for fiber"
+                          "adapters, parameter ignored\n");
        }
 }
 
@@ -578,19 +559,20 @@ e1000_check_fiber_options(struct e1000_adapter *adapter)
  * Handles speed and duplex options on copper adapters
  **/
 
-static void __devinit
-e1000_check_copper_options(struct e1000_adapter *adapter)
+static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter)
 {
-       int speed, dplx, an;
+       struct e1000_option opt;
+       unsigned int speed, dplx, an;
        int bd = adapter->bd_number;
 
        { /* Speed */
-               struct e1000_opt_list speed_list[] = {{          0, "" },
-                                                     {   SPEED_10, "" },
-                                                     {  SPEED_100, "" },
-                                                     { SPEED_1000, "" }};
+               static const struct e1000_opt_list speed_list[] = {
+                       {          0, "" },
+                       {   SPEED_10, "" },
+                       {  SPEED_100, "" },
+                       { SPEED_1000, "" }};
 
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = list_option,
                        .name = "Speed",
                        .err  = "parameter ignored",
@@ -607,11 +589,12 @@ e1000_check_copper_options(struct e1000_adapter *adapter)
                }
        }
        { /* Duplex */
-               struct e1000_opt_list dplx_list[] = {{           0, "" },
-                                                    { HALF_DUPLEX, "" },
-                                                    { FULL_DUPLEX, "" }};
+               static const struct e1000_opt_list dplx_list[] = {
+                       {           0, "" },
+                       { HALF_DUPLEX, "" },
+                       { FULL_DUPLEX, "" }};
 
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = list_option,
                        .name = "Duplex",
                        .err  = "parameter ignored",
@@ -620,12 +603,6 @@ e1000_check_copper_options(struct e1000_adapter *adapter)
                                         .p = dplx_list }}
                };
 
-               if (e1000_check_phy_reset_block(&adapter->hw)) {
-                       DPRINTK(PROBE, INFO,
-                               "Link active due to SoL/IDER Session. "
-                               "Speed/Duplex/AutoNeg parameter ignored.\n");
-                       return;
-               }
                if (num_Duplex > bd) {
                        dplx = Duplex[bd];
                        e1000_validate_option(&dplx, &opt, adapter);
@@ -635,12 +612,11 @@ e1000_check_copper_options(struct e1000_adapter *adapter)
        }
 
        if ((num_AutoNeg > bd) && (speed != 0 || dplx != 0)) {
-               DPRINTK(PROBE, INFO,
-                      "AutoNeg specified along with Speed or Duplex, "
-                      "parameter ignored\n");
+               e_dev_info("AutoNeg specified along with Speed or Duplex, "
+                          "parameter ignored\n");
                adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT;
        } else { /* Autoneg */
-               struct e1000_opt_list an_list[] =
+               static const struct e1000_opt_list an_list[] =
                        #define AA "AutoNeg advertising "
                        {{ 0x01, AA "10/HD" },
                         { 0x02, AA "10/FD" },
@@ -674,7 +650,7 @@ e1000_check_copper_options(struct e1000_adapter *adapter)
                         { 0x2e, AA "1000/FD, 100/FD, 100/HD, 10/FD" },
                         { 0x2f, AA "1000/FD, 100/FD, 100/HD, 10/FD, 10/HD" }};
 
-               struct e1000_option opt = {
+               opt = (struct e1000_option) {
                        .type = list_option,
                        .name = "AutoNeg",
                        .err  = "parameter ignored",
@@ -696,79 +672,72 @@ e1000_check_copper_options(struct e1000_adapter *adapter)
        case 0:
                adapter->hw.autoneg = adapter->fc_autoneg = 1;
                if ((num_Speed > bd) && (speed != 0 || dplx != 0))
-                       DPRINTK(PROBE, INFO,
-                              "Speed and duplex autonegotiation enabled\n");
+                       e_dev_info("Speed and duplex autonegotiation "
+                                  "enabled\n");
                break;
        case HALF_DUPLEX:
-               DPRINTK(PROBE, INFO, "Half Duplex specified without Speed\n");
-               DPRINTK(PROBE, INFO, "Using Autonegotiation at "
-                       "Half Duplex only\n");
+               e_dev_info("Half Duplex specified without Speed\n");
+               e_dev_info("Using Autonegotiation at Half Duplex only\n");
                adapter->hw.autoneg = adapter->fc_autoneg = 1;
                adapter->hw.autoneg_advertised = ADVERTISE_10_HALF |
                                                 ADVERTISE_100_HALF;
                break;
        case FULL_DUPLEX:
-               DPRINTK(PROBE, INFO, "Full Duplex specified without Speed\n");
-               DPRINTK(PROBE, INFO, "Using Autonegotiation at "
-                       "Full Duplex only\n");
+               e_dev_info("Full Duplex specified without Speed\n");
+               e_dev_info("Using Autonegotiation at Full Duplex only\n");
                adapter->hw.autoneg = adapter->fc_autoneg = 1;
                adapter->hw.autoneg_advertised = ADVERTISE_10_FULL |
                                                 ADVERTISE_100_FULL |
                                                 ADVERTISE_1000_FULL;
                break;
        case SPEED_10:
-               DPRINTK(PROBE, INFO, "10 Mbps Speed specified "
-                       "without Duplex\n");
-               DPRINTK(PROBE, INFO, "Using Autonegotiation at 10 Mbps only\n");
+               e_dev_info("10 Mbps Speed specified without Duplex\n");
+               e_dev_info("Using Autonegotiation at 10 Mbps only\n");
                adapter->hw.autoneg = adapter->fc_autoneg = 1;
                adapter->hw.autoneg_advertised = ADVERTISE_10_HALF |
                                                 ADVERTISE_10_FULL;
                break;
        case SPEED_10 + HALF_DUPLEX:
-               DPRINTK(PROBE, INFO, "Forcing to 10 Mbps Half Duplex\n");
+               e_dev_info("Forcing to 10 Mbps Half Duplex\n");
                adapter->hw.autoneg = adapter->fc_autoneg = 0;
                adapter->hw.forced_speed_duplex = e1000_10_half;
                adapter->hw.autoneg_advertised = 0;
                break;
        case SPEED_10 + FULL_DUPLEX:
-               DPRINTK(PROBE, INFO, "Forcing to 10 Mbps Full Duplex\n");
+               e_dev_info("Forcing to 10 Mbps Full Duplex\n");
                adapter->hw.autoneg = adapter->fc_autoneg = 0;
                adapter->hw.forced_speed_duplex = e1000_10_full;
                adapter->hw.autoneg_advertised = 0;
                break;
        case SPEED_100:
-               DPRINTK(PROBE, INFO, "100 Mbps Speed specified "
-                       "without Duplex\n");
-               DPRINTK(PROBE, INFO, "Using Autonegotiation at "
-                       "100 Mbps only\n");
+               e_dev_info("100 Mbps Speed specified without Duplex\n");
+               e_dev_info("Using Autonegotiation at 100 Mbps only\n");
                adapter->hw.autoneg = adapter->fc_autoneg = 1;
                adapter->hw.autoneg_advertised = ADVERTISE_100_HALF |
                                                 ADVERTISE_100_FULL;
                break;
        case SPEED_100 + HALF_DUPLEX:
-               DPRINTK(PROBE, INFO, "Forcing to 100 Mbps Half Duplex\n");
+               e_dev_info("Forcing to 100 Mbps Half Duplex\n");
                adapter->hw.autoneg = adapter->fc_autoneg = 0;
                adapter->hw.forced_speed_duplex = e1000_100_half;
                adapter->hw.autoneg_advertised = 0;
                break;
        case SPEED_100 + FULL_DUPLEX:
-               DPRINTK(PROBE, INFO, "Forcing to 100 Mbps Full Duplex\n");
+               e_dev_info("Forcing to 100 Mbps Full Duplex\n");
                adapter->hw.autoneg = adapter->fc_autoneg = 0;
                adapter->hw.forced_speed_duplex = e1000_100_full;
                adapter->hw.autoneg_advertised = 0;
                break;
        case SPEED_1000:
-               DPRINTK(PROBE, INFO, "1000 Mbps Speed specified without "
-                       "Duplex\n");
+               e_dev_info("1000 Mbps Speed specified without Duplex\n");
                goto full_duplex_only;
        case SPEED_1000 + HALF_DUPLEX:
-               DPRINTK(PROBE, INFO,
-                       "Half Duplex is not supported at 1000 Mbps\n");
+               e_dev_info("Half Duplex is not supported at 1000 Mbps\n");
                /* fall through */
        case SPEED_1000 + FULL_DUPLEX:
 full_duplex_only:
-               DPRINTK(PROBE, INFO,
-                      "Using Autonegotiation at 1000 Mbps Full Duplex only\n");
+               e_dev_info("Using Autonegotiation at 1000 Mbps Full Duplex "
+                          "only\n");
                adapter->hw.autoneg = adapter->fc_autoneg = 1;
                adapter->hw.autoneg_advertised = ADVERTISE_1000_FULL;
                break;
@@ -778,9 +747,8 @@ full_duplex_only:
 
        /* Speed, AutoNeg and MDI/MDI-X must all play nice */
        if (e1000_validate_mdi_setting(&(adapter->hw)) < 0) {
-               DPRINTK(PROBE, INFO,
-                       "Speed, AutoNeg and MDI-X specifications are "
-                       "incompatible. Setting MDI-X to a compatible value.\n");
+               e_dev_info("Speed, AutoNeg and MDI-X specs are incompatible. "
+                          "Setting MDI-X to a compatible value.\n");
        }
 }