patch-2.4.27 linux-2.4.27/drivers/net/e1000/e1000_param.c
Next file: linux-2.4.27/drivers/net/eql.c
Previous file: linux-2.4.27/drivers/net/e1000/e1000_osdep.h
Back to the patch index
Back to the overall index
- Lines: 334
- Date:
2004-08-07 16:26:05.109365473 -0700
- Orig file:
linux-2.4.26/drivers/net/e1000/e1000_param.c
- Orig date:
2004-04-14 06:05:30.000000000 -0700
diff -urN linux-2.4.26/drivers/net/e1000/e1000_param.c linux-2.4.27/drivers/net/e1000/e1000_param.c
@@ -107,7 +107,7 @@
/* Auto-negotiation Advertisement Override
*
- * Valid Range: 0x01-0x0F, 0x20-0x2F
+ * Valid Range: 0x01-0x0F, 0x20-0x2F (copper); 0x20 (fiber)
*
* The AutoNeg value is a bit mask describing which speed and duplex
* combinations should be advertised during auto-negotiation.
@@ -117,7 +117,7 @@
* Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10
* Duplex Full Full Half Full Half
*
- * Default Value: 0x2F
+ * Default Value: 0x2F (copper); 0x20 (fiber)
*/
E1000_PARAM(AutoNeg, "Advertised auto-negotiation setting");
@@ -234,7 +234,8 @@
};
static int __devinit
-e1000_validate_option(int *value, struct e1000_option *opt)
+e1000_validate_option(int *value, struct e1000_option *opt,
+ struct e1000_adapter *adapter)
{
if(*value == OPTION_UNSET) {
*value = opt->def;
@@ -245,16 +246,17 @@
case enable_option:
switch (*value) {
case OPTION_ENABLED:
- printk(KERN_INFO "%s Enabled\n", opt->name);
+ DPRINTK(PROBE, INFO, "%s Enabled\n", opt->name);
return 0;
case OPTION_DISABLED:
- printk(KERN_INFO "%s Disabled\n", opt->name);
+ DPRINTK(PROBE, INFO, "%s Disabled\n", opt->name);
return 0;
}
break;
case range_option:
if(*value >= opt->arg.r.min && *value <= opt->arg.r.max) {
- printk(KERN_INFO "%s set to %i\n", opt->name, *value);
+ DPRINTK(PROBE, INFO,
+ "%s set to %i\n", opt->name, *value);
return 0;
}
break;
@@ -266,7 +268,7 @@
ent = &opt->arg.l.p[i];
if(*value == ent->i) {
if(ent->str[0] != '\0')
- printk(KERN_INFO "%s\n", ent->str);
+ DPRINTK(PROBE, INFO, "%s\n", ent->str);
return 0;
}
}
@@ -276,7 +278,7 @@
BUG();
}
- printk(KERN_INFO "Invalid %s specified (%i) %s\n",
+ DPRINTK(PROBE, INFO, "Invalid %s specified (%i) %s\n",
opt->name, *value, opt->err);
*value = opt->def;
return -1;
@@ -300,9 +302,9 @@
{
int bd = adapter->bd_number;
if(bd >= E1000_MAX_NIC) {
- printk(KERN_NOTICE
+ DPRINTK(PROBE, NOTICE,
"Warning: no configuration for board #%i\n", bd);
- printk(KERN_NOTICE "Using defaults for all values\n");
+ DPRINTK(PROBE, NOTICE, "Using defaults for all values\n");
bd = E1000_MAX_NIC;
}
@@ -321,7 +323,7 @@
E1000_MAX_TXD : E1000_MAX_82544_TXD;
tx_ring->count = TxDescriptors[bd];
- e1000_validate_option(&tx_ring->count, &opt);
+ e1000_validate_option(&tx_ring->count, &opt, adapter);
E1000_ROUNDUP(tx_ring->count, REQ_TX_DESCRIPTOR_MULTIPLE);
}
{ /* Receive Descriptor Count */
@@ -339,7 +341,7 @@
E1000_MAX_82544_RXD;
rx_ring->count = RxDescriptors[bd];
- e1000_validate_option(&rx_ring->count, &opt);
+ e1000_validate_option(&rx_ring->count, &opt, adapter);
E1000_ROUNDUP(rx_ring->count, REQ_RX_DESCRIPTOR_MULTIPLE);
}
{ /* Checksum Offload Enable/Disable */
@@ -351,7 +353,7 @@
};
int rx_csum = XsumRX[bd];
- e1000_validate_option(&rx_csum, &opt);
+ e1000_validate_option(&rx_csum, &opt, adapter);
adapter->rx_csum = rx_csum;
}
{ /* Flow Control */
@@ -373,7 +375,7 @@
};
int fc = FlowControl[bd];
- e1000_validate_option(&fc, &opt);
+ e1000_validate_option(&fc, &opt, adapter);
adapter->hw.fc = adapter->hw.original_fc = fc;
}
{ /* Transmit Interrupt Delay */
@@ -387,7 +389,7 @@
};
adapter->tx_int_delay = TxIntDelay[bd];
- e1000_validate_option(&adapter->tx_int_delay, &opt);
+ e1000_validate_option(&adapter->tx_int_delay, &opt, adapter);
}
{ /* Transmit Absolute Interrupt Delay */
struct e1000_option opt = {
@@ -400,7 +402,7 @@
};
adapter->tx_abs_int_delay = TxAbsIntDelay[bd];
- e1000_validate_option(&adapter->tx_abs_int_delay, &opt);
+ e1000_validate_option(&adapter->tx_abs_int_delay, &opt, adapter);
}
{ /* Receive Interrupt Delay */
struct e1000_option opt = {
@@ -413,7 +415,7 @@
};
adapter->rx_int_delay = RxIntDelay[bd];
- e1000_validate_option(&adapter->rx_int_delay, &opt);
+ e1000_validate_option(&adapter->rx_int_delay, &opt, adapter);
}
{ /* Receive Absolute Interrupt Delay */
struct e1000_option opt = {
@@ -426,7 +428,7 @@
};
adapter->rx_abs_int_delay = RxAbsIntDelay[bd];
- e1000_validate_option(&adapter->rx_abs_int_delay, &opt);
+ e1000_validate_option(&adapter->rx_abs_int_delay, &opt, adapter);
}
{ /* Interrupt Throttling Rate */
struct e1000_option opt = {
@@ -444,13 +446,14 @@
adapter->itr = 1;
break;
case 0:
- printk(KERN_INFO "%s turned off\n", opt.name);
+ DPRINTK(PROBE, INFO, "%s turned off\n", opt.name);
break;
case 1:
- printk(KERN_INFO "%s set to dynamic mode\n", opt.name);
+ DPRINTK(PROBE, INFO,
+ "%s set to dynamic mode\n", opt.name);
break;
default:
- e1000_validate_option(&adapter->itr, &opt);
+ e1000_validate_option(&adapter->itr, &opt, adapter);
break;
}
}
@@ -482,15 +485,15 @@
bd = bd > E1000_MAX_NIC ? E1000_MAX_NIC : bd;
if((Speed[bd] != OPTION_UNSET)) {
- printk(KERN_INFO "Speed not valid for fiber adapters, "
+ DPRINTK(PROBE, INFO, "Speed not valid for fiber adapters, "
"parameter ignored\n");
}
if((Duplex[bd] != OPTION_UNSET)) {
- printk(KERN_INFO "Duplex not valid for fiber adapters, "
+ DPRINTK(PROBE, INFO, "Duplex not valid for fiber adapters, "
"parameter ignored\n");
}
if((AutoNeg[bd] != OPTION_UNSET) && (AutoNeg[bd] != 0x20)) {
- printk(KERN_INFO "AutoNeg other than Full/1000 is "
+ DPRINTK(PROBE, INFO, "AutoNeg other than Full/1000 is "
"not valid for fiber adapters, parameter ignored\n");
}
}
@@ -525,7 +528,7 @@
};
speed = Speed[bd];
- e1000_validate_option(&speed, &opt);
+ e1000_validate_option(&speed, &opt, adapter);
}
{ /* Duplex */
struct e1000_opt_list dplx_list[] = {{ 0, "" },
@@ -542,11 +545,11 @@
};
dplx = Duplex[bd];
- e1000_validate_option(&dplx, &opt);
+ e1000_validate_option(&dplx, &opt, adapter);
}
if(AutoNeg[bd] != OPTION_UNSET && (speed != 0 || dplx != 0)) {
- printk(KERN_INFO
+ DPRINTK(PROBE, INFO,
"AutoNeg specified along with Speed or Duplex, "
"parameter ignored\n");
adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT;
@@ -595,7 +598,7 @@
};
int an = AutoNeg[bd];
- e1000_validate_option(&an, &opt);
+ e1000_validate_option(&an, &opt, adapter);
adapter->hw.autoneg_advertised = an;
}
@@ -603,78 +606,85 @@
case 0:
adapter->hw.autoneg = adapter->fc_autoneg = 1;
if(Speed[bd] != OPTION_UNSET || Duplex[bd] != OPTION_UNSET)
- printk(KERN_INFO
+ DPRINTK(PROBE, INFO,
"Speed and duplex autonegotiation enabled\n");
break;
case HALF_DUPLEX:
- printk(KERN_INFO "Half Duplex specified without Speed\n");
- printk(KERN_INFO "Using Autonegotiation at Half Duplex only\n");
+ DPRINTK(PROBE, INFO, "Half Duplex specified without Speed\n");
+ DPRINTK(PROBE, 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:
- printk(KERN_INFO "Full Duplex specified without Speed\n");
- printk(KERN_INFO "Using Autonegotiation at Full Duplex only\n");
+ DPRINTK(PROBE, INFO, "Full Duplex specified without Speed\n");
+ DPRINTK(PROBE, 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:
- printk(KERN_INFO "10 Mbps Speed specified without Duplex\n");
- printk(KERN_INFO "Using Autonegotiation at 10 Mbps only\n");
+ DPRINTK(PROBE, INFO,
+ "10 Mbps Speed specified without Duplex\n");
+ DPRINTK(PROBE, 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:
- printk(KERN_INFO "Forcing to 10 Mbps Half Duplex\n");
+ DPRINTK(PROBE, 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:
- printk(KERN_INFO "Forcing to 10 Mbps Full Duplex\n");
+ DPRINTK(PROBE, 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:
- printk(KERN_INFO "100 Mbps Speed specified without Duplex\n");
- printk(KERN_INFO "Using Autonegotiation at 100 Mbps only\n");
+ DPRINTK(PROBE, INFO,
+ "100 Mbps Speed specified without Duplex\n");
+ DPRINTK(PROBE, 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:
- printk(KERN_INFO "Forcing to 100 Mbps Half Duplex\n");
+ DPRINTK(PROBE, 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:
- printk(KERN_INFO "Forcing to 100 Mbps Full Duplex\n");
+ DPRINTK(PROBE, 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:
- printk(KERN_INFO "1000 Mbps Speed specified without Duplex\n");
- printk(KERN_INFO
+ DPRINTK(PROBE, INFO,
+ "1000 Mbps Speed specified without Duplex\n");
+ DPRINTK(PROBE, 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;
case SPEED_1000 + HALF_DUPLEX:
- printk(KERN_INFO "Half Duplex is not supported at 1000 Mbps\n");
- printk(KERN_INFO
+ DPRINTK(PROBE, INFO,
+ "Half Duplex is not supported at 1000 Mbps\n");
+ DPRINTK(PROBE, 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;
case SPEED_1000 + FULL_DUPLEX:
- printk(KERN_INFO
+ DPRINTK(PROBE, INFO,
"Using Autonegotiation at 1000 Mbps Full Duplex only\n");
adapter->hw.autoneg = adapter->fc_autoneg = 1;
adapter->hw.autoneg_advertised = ADVERTISE_1000_FULL;
@@ -685,7 +695,8 @@
/* Speed, AutoNeg and MDI/MDI-X must all play nice */
if (e1000_validate_mdi_setting(&(adapter->hw)) < 0) {
- printk(KERN_INFO "Speed, AutoNeg and MDI-X specifications are "
+ DPRINTK(PROBE, INFO,
+ "Speed, AutoNeg and MDI-X specifications are "
"incompatible. Setting MDI-X to a compatible value.\n");
}
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)