|
@@ -73,17 +73,25 @@ E1000_PARAM(TxAbsIntDelay, "Transmit Absolute Interrupt Delay");
|
|
/* Receive Interrupt Delay in units of 1.024 microseconds
|
|
/* Receive Interrupt Delay in units of 1.024 microseconds
|
|
* hardware will likely hang if you set this to anything but zero.
|
|
* hardware will likely hang if you set this to anything but zero.
|
|
*
|
|
*
|
|
|
|
+ * Burst variant is used as default if device has FLAG2_DMA_BURST.
|
|
|
|
+ *
|
|
* Valid Range: 0-65535
|
|
* Valid Range: 0-65535
|
|
*/
|
|
*/
|
|
E1000_PARAM(RxIntDelay, "Receive Interrupt Delay");
|
|
E1000_PARAM(RxIntDelay, "Receive Interrupt Delay");
|
|
|
|
+#define DEFAULT_RDTR 0
|
|
|
|
+#define BURST_RDTR 0x20
|
|
#define MAX_RXDELAY 0xFFFF
|
|
#define MAX_RXDELAY 0xFFFF
|
|
#define MIN_RXDELAY 0
|
|
#define MIN_RXDELAY 0
|
|
|
|
|
|
/* Receive Absolute Interrupt Delay in units of 1.024 microseconds
|
|
/* Receive Absolute Interrupt Delay in units of 1.024 microseconds
|
|
|
|
+ *
|
|
|
|
+ * Burst variant is used as default if device has FLAG2_DMA_BURST.
|
|
*
|
|
*
|
|
* Valid Range: 0-65535
|
|
* Valid Range: 0-65535
|
|
*/
|
|
*/
|
|
E1000_PARAM(RxAbsIntDelay, "Receive Absolute Interrupt Delay");
|
|
E1000_PARAM(RxAbsIntDelay, "Receive Absolute Interrupt Delay");
|
|
|
|
+#define DEFAULT_RADV 8
|
|
|
|
+#define BURST_RADV 0x20
|
|
#define MAX_RXABSDELAY 0xFFFF
|
|
#define MAX_RXABSDELAY 0xFFFF
|
|
#define MIN_RXABSDELAY 0
|
|
#define MIN_RXABSDELAY 0
|
|
|
|
|
|
@@ -297,6 +305,9 @@ void e1000e_check_options(struct e1000_adapter *adapter)
|
|
.max = MAX_RXDELAY } }
|
|
.max = MAX_RXDELAY } }
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ if (adapter->flags2 & FLAG2_DMA_BURST)
|
|
|
|
+ opt.def = BURST_RDTR;
|
|
|
|
+
|
|
if (num_RxIntDelay > bd) {
|
|
if (num_RxIntDelay > bd) {
|
|
adapter->rx_int_delay = RxIntDelay[bd];
|
|
adapter->rx_int_delay = RxIntDelay[bd];
|
|
e1000_validate_option(&adapter->rx_int_delay, &opt,
|
|
e1000_validate_option(&adapter->rx_int_delay, &opt,
|
|
@@ -307,7 +318,7 @@ void e1000e_check_options(struct e1000_adapter *adapter)
|
|
}
|
|
}
|
|
/* Receive Absolute Interrupt Delay */
|
|
/* Receive Absolute Interrupt Delay */
|
|
{
|
|
{
|
|
- static const struct e1000_option opt = {
|
|
|
|
|
|
+ static struct e1000_option opt = {
|
|
.type = range_option,
|
|
.type = range_option,
|
|
.name = "Receive Absolute Interrupt Delay",
|
|
.name = "Receive Absolute Interrupt Delay",
|
|
.err = "using default of "
|
|
.err = "using default of "
|
|
@@ -317,6 +328,9 @@ void e1000e_check_options(struct e1000_adapter *adapter)
|
|
.max = MAX_RXABSDELAY } }
|
|
.max = MAX_RXABSDELAY } }
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ if (adapter->flags2 & FLAG2_DMA_BURST)
|
|
|
|
+ opt.def = BURST_RADV;
|
|
|
|
+
|
|
if (num_RxAbsIntDelay > bd) {
|
|
if (num_RxAbsIntDelay > bd) {
|
|
adapter->rx_abs_int_delay = RxAbsIntDelay[bd];
|
|
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,
|