diff options
Diffstat (limited to 'drivers/net/e1000e/param.c')
-rw-r--r-- | drivers/net/e1000e/param.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/net/e1000e/param.c b/drivers/net/e1000e/param.c index ed912e023a72..f46db6cda487 100644 --- a/drivers/net/e1000e/param.c +++ b/drivers/net/e1000e/param.c | |||
@@ -114,6 +114,15 @@ E1000_PARAM(InterruptThrottleRate, "Interrupt Throttling Rate"); | |||
114 | #define DEFAULT_ITR 3 | 114 | #define DEFAULT_ITR 3 |
115 | #define MAX_ITR 100000 | 115 | #define MAX_ITR 100000 |
116 | #define MIN_ITR 100 | 116 | #define MIN_ITR 100 |
117 | /* IntMode (Interrupt Mode) | ||
118 | * | ||
119 | * Valid Range: 0 - 2 | ||
120 | * | ||
121 | * Default Value: 2 (MSI-X) | ||
122 | */ | ||
123 | E1000_PARAM(IntMode, "Interrupt Mode"); | ||
124 | #define MAX_INTMODE 2 | ||
125 | #define MIN_INTMODE 0 | ||
117 | 126 | ||
118 | /* | 127 | /* |
119 | * Enable Smart Power Down of the PHY | 128 | * Enable Smart Power Down of the PHY |
@@ -352,6 +361,24 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) | |||
352 | adapter->itr = 20000; | 361 | adapter->itr = 20000; |
353 | } | 362 | } |
354 | } | 363 | } |
364 | { /* Interrupt Mode */ | ||
365 | struct e1000_option opt = { | ||
366 | .type = range_option, | ||
367 | .name = "Interrupt Mode", | ||
368 | .err = "defaulting to 2 (MSI-X)", | ||
369 | .def = E1000E_INT_MODE_MSIX, | ||
370 | .arg = { .r = { .min = MIN_INTMODE, | ||
371 | .max = MAX_INTMODE } } | ||
372 | }; | ||
373 | |||
374 | if (num_IntMode > bd) { | ||
375 | unsigned int int_mode = IntMode[bd]; | ||
376 | e1000_validate_option(&int_mode, &opt, adapter); | ||
377 | adapter->int_mode = int_mode; | ||
378 | } else { | ||
379 | adapter->int_mode = opt.def; | ||
380 | } | ||
381 | } | ||
355 | { /* Smart Power Down */ | 382 | { /* Smart Power Down */ |
356 | const struct e1000_option opt = { | 383 | const struct e1000_option opt = { |
357 | .type = enable_option, | 384 | .type = enable_option, |