|
@@ -635,10 +635,23 @@ void intel_empty_rx ( struct intel_nic *intel ) {
|
635
|
635
|
static int intel_open ( struct net_device *netdev ) {
|
636
|
636
|
struct intel_nic *intel = netdev->priv;
|
637
|
637
|
union intel_receive_address mac;
|
|
638
|
+ uint32_t fextnvm11;
|
638
|
639
|
uint32_t tctl;
|
639
|
640
|
uint32_t rctl;
|
640
|
641
|
int rc;
|
641
|
642
|
|
|
643
|
+ /* Set undocumented bit in FEXTNVM11 to work around an errata
|
|
644
|
+ * in i219 devices that will otherwise cause a complete
|
|
645
|
+ * datapath hang at the next device reset.
|
|
646
|
+ */
|
|
647
|
+ if ( intel->flags & INTEL_RST_HANG ) {
|
|
648
|
+ DBGC ( intel, "INTEL %p WARNING: applying reset hang "
|
|
649
|
+ "workaround\n", intel );
|
|
650
|
+ fextnvm11 = readl ( intel->regs + INTEL_FEXTNVM11 );
|
|
651
|
+ fextnvm11 |= INTEL_FEXTNVM11_WTF;
|
|
652
|
+ writel ( fextnvm11, intel->regs + INTEL_FEXTNVM11 );
|
|
653
|
+ }
|
|
654
|
+
|
642
|
655
|
/* Create transmit descriptor ring */
|
643
|
656
|
if ( ( rc = intel_create_ring ( intel, &intel->tx ) ) != 0 )
|
644
|
657
|
goto err_create_tx;
|
|
@@ -1123,20 +1136,20 @@ static struct pci_device_id intel_nics[] = {
|
1123
|
1136
|
PCI_ROM ( 0x8086, 0x153b, "i217v", "I217-V", 0 ),
|
1124
|
1137
|
PCI_ROM ( 0x8086, 0x1559, "i218v", "I218-V", 0),
|
1125
|
1138
|
PCI_ROM ( 0x8086, 0x155a, "i218lm", "I218-LM", 0),
|
1126
|
|
- PCI_ROM ( 0x8086, 0x156f, "i219lm", "I219-LM", 0 ),
|
1127
|
|
- PCI_ROM ( 0x8086, 0x1570, "i219v", "I219-V", INTEL_NO_PHY_RST ),
|
|
1139
|
+ PCI_ROM ( 0x8086, 0x156f, "i219lm", "I219-LM", INTEL_I219 ),
|
|
1140
|
+ PCI_ROM ( 0x8086, 0x1570, "i219v", "I219-V", INTEL_I219 ),
|
1128
|
1141
|
PCI_ROM ( 0x8086, 0x157b, "i210-2", "I210", 0 ),
|
1129
|
1142
|
PCI_ROM ( 0x8086, 0x15a0, "i218lm-2", "I218-LM", INTEL_NO_PHY_RST ),
|
1130
|
1143
|
PCI_ROM ( 0x8086, 0x15a1, "i218v-2", "I218-V", 0 ),
|
1131
|
1144
|
PCI_ROM ( 0x8086, 0x15a2, "i218lm-3", "I218-LM", INTEL_NO_PHY_RST ),
|
1132
|
1145
|
PCI_ROM ( 0x8086, 0x15a3, "i218v-3", "I218-V", INTEL_NO_PHY_RST ),
|
1133
|
|
- PCI_ROM ( 0x8086, 0x15b7, "i219lm-2", "I219-LM (2)", INTEL_NO_PHY_RST ),
|
1134
|
|
- PCI_ROM ( 0x8086, 0x15b8, "i219v-2", "I219-V (2)", 0 ),
|
1135
|
|
- PCI_ROM ( 0x8086, 0x15b9, "i219lm-3", "I219-LM (3)", INTEL_NO_PHY_RST ),
|
1136
|
|
- PCI_ROM ( 0x8086, 0x15d6, "i219v-5", "I219-V (5)", INTEL_NO_PHY_RST ),
|
1137
|
|
- PCI_ROM ( 0x8086, 0x15d7, "i219lm-4", "I219-LM (4)", INTEL_NO_PHY_RST ),
|
1138
|
|
- PCI_ROM ( 0x8086, 0x15d8, "i219v-4", "I219-V (4)", INTEL_NO_PHY_RST ),
|
1139
|
|
- PCI_ROM ( 0x8086, 0x15e3, "i219lm-5", "I219-LM (5)", INTEL_NO_PHY_RST ),
|
|
1146
|
+ PCI_ROM ( 0x8086, 0x15b7, "i219lm-2", "I219-LM (2)", INTEL_I219 ),
|
|
1147
|
+ PCI_ROM ( 0x8086, 0x15b8, "i219v-2", "I219-V (2)", INTEL_I219 ),
|
|
1148
|
+ PCI_ROM ( 0x8086, 0x15b9, "i219lm-3", "I219-LM (3)", INTEL_I219 ),
|
|
1149
|
+ PCI_ROM ( 0x8086, 0x15d6, "i219v-5", "I219-V (5)", INTEL_I219 ),
|
|
1150
|
+ PCI_ROM ( 0x8086, 0x15d7, "i219lm-4", "I219-LM (4)", INTEL_I219 ),
|
|
1151
|
+ PCI_ROM ( 0x8086, 0x15d8, "i219v-4", "I219-V (4)", INTEL_I219 ),
|
|
1152
|
+ PCI_ROM ( 0x8086, 0x15e3, "i219lm-5", "I219-LM (5)", INTEL_I219 ),
|
1140
|
1153
|
PCI_ROM ( 0x8086, 0x294c, "82566dc-2", "82566DC-2", 0 ),
|
1141
|
1154
|
PCI_ROM ( 0x8086, 0x2e6e, "cemedia", "CE Media Processor", 0 ),
|
1142
|
1155
|
};
|